전체 702

파이썬 zip함수

파이썬 zip함수 여러 iterable한 자료형을 순서대로 묶어준다 예시 1 a=[1,2,3,4,5,6,7,8,9] b=[10,20,30,40,50,60,70,80,90] c=[100,200,300,400,500,600,700,800,900] list(zip(a,b,c)) 예시 2 : 묶을 데이터의 길이가 다르면 같은 거 까지만 묵어준다 a=[1,2,3,4,5,6,7,8,9] b=[10,20,30,40,50,60,70,80,90,10,20] c=[100,200,300,400,500,600,700,800,900,100,200] list(zip(a,b,c)) 예시 3 : 자료형이 달라도 묶인다 a=[1,2,3,4,5,6,7,8,9] b={10,20,30,40,50,60,70,80,90,10,20} c=(10..

나이브 베이즈 확률

나이브베이즈 우리가 구하고자 하는 확률을 사후확률이라고 칭할 뿐 우도와 사후확률은 변수만 반대일 뿐 계산식은 같다 나이브베이즈 예시 양성으로 예측된 사람이 실제로 양성일 확률? - 우도 P(양성예측 | 실제양성) = P(양성예측 n 실제양성) / P(실제양성) = (370/1085) / (385/1085) = 0.9610 - 사전확률 P(실제양성) = 385 / 1085 = 0.354 - 증거(혹은 주변우도) P(양성예측) = 380 / 1085 = 0.350 - 사후확률 P(실제양성 | 양성예측) = (P(양성예측 | 실제양성) * P(실제양성)) / P(양성예측) = 0.961 * 0.354 / 0.350 = 0.971 * 그냥 쉽게 양성으로 예측된 사람 중 실제 양성인 사람(370)에서 양성으로 예..

범주형 변수가 있을 때 다중회귀분석 파이썬 코드

범주형 변수가 있는 회귀분석 x1이 범주형 변수로서 A혹은 B값을 갖을 때, 회귀식을 다음과 같이 변환한다. 이때 더미변수를 처리하는 방식은 풀랭크 방식과 축소 방식이 있다. 각각의 방식을 알아본다. 테스트용 데이터는 보스턴 집값 데이터를 사용한다 풀랭크 방식 풀랭크 방식은 범주형 변수 x1의 값에 정해짐에 따라 다음과 같이 더미값을 설정한다. 그러면 회귀식은 다음과 같다. 위 데이터 중 RAD를 범주형 변수로 간주하고 나이(AGE)와 함께 풀랭크로 표시한다. 코드로 구현하면 다음과 같다. (C로 범주형 변수를 더미화하고, 쿼리에 0을 붙여 풀랭크임을 표시한다.) import pandas as pd from sklearn.datasets import load_boston import statsmodels..

파이썬 단순,다중 선형회귀분석 코드 및 해석

단순선형회귀분석 코드 import numpy as np import pandas as pd import statsmodels.formula.api as smf x=np.array([1,1,2,3,4]) y=np.array([1,2,2,3,4]) data = pd.DataFrame({'x':x, 'y':y}) my_fit = smf.ols('y~x', data=data).fit() print(my_fit.summary()) 통계값 해석 1. R-squared(결정계수) : 모델의 적합도. 2. Adj. R-squared(수정된 결정계수) : 결정계수는 변수가 많아질수록 커지므로 변수의 중요성을 설명하지 못한다. 분모에 변수의 개수가 들어가있는 수정된 결정계수를 사용하면, 변수의 중요도를 알 수 있다(변수..

모평균 구간추정(모 표준편차를 알때(z), 모를때(t)) 파이썬 코드

모평균 구간추정 모평균의 구간추정을 한다. 이때 모 표준편차를 아는 상태(z검정)와 모르는 상태(t검정)로 나누어서 모평균의 구간을 추정한다. 데이터는 아래와 같이 생성하였다. data = np.random.randint(1,100,size=(100)) 모 표준편차를 알 때 모평균 구간 추정(Z검정) 1. 계산식 * 이때 모표준편차의 식은 다음과 같다 2. 코드(직접계산) import numpy as np import pandas as pd from scipy.stats import norm,sem # 평균, 표준편차, 표본수 sample_mean = np.mean(data) sample_std = np.std(data) size = len(data) # z통계량 z_95_left = norm(0, 1)..

카이제곱 검정 (적합도 검정, 독립성 검정, 동질성 검정)

카이제곱 검정 카이제곱 검정은 두 범주형 변수에 대한 분석 방법이다. 다음의 세가지 검증 방법이 있다. 1. 적합도 검정 : 한 범주형 변수의 각 그룹 별 비율과 특정 상수비가 같은지 검증하는 것 2. 독립성 검정 : 두 범주형 변수가 서로 독립인지 검정하는 것 3. 동질성 검정 : 각 집단이 서로 유사한 성향을 갖는지 분석하는 것 적합도 검정 1. 정의 : 어떤 자료가 주어진 분포를 따른다고 할 수 있는가를 검정하는 것. 2. 예시 2.1 주사위의 각 눈금이 나올 확률이 1/6인가 귀무가설 : 주사위의 각 눈금이 나올 확률이 1/6이다. 대립가설 : 주사위 중 적어도 눈금 하나는 나올 확률이 1/6이 아니다. 2.2 (A,B,C,D,E) 각각의 자동차 선호도 확률이 (0.3, 0.15, 0.1, 0...

분산분석 ANOVA (일원, 이원, 다원)

검정 종류 다음과 같은 가설검정 들 중 모집단의 개수가 3개이상일 때 사용하는 분산분석(ANOVA)분석에 대해서 알아 본다 일원분산분석(one-way ANOVA) 1. 정의 : 종속변인 1개, 독립변인 1개인 상황에서 3개이상의 모집단의 평균이 다른지 검증하는 것 2. 예시 2.1 A,B,C 반은 30명으로 구성되어 있다. 반별 수학점수는 같은가 다른가 귀무가설 : 세 반의 수학점수는 모두 같다. (독립변수 : 반) 대립가설 : 적어도 한 반의 수학점수가 다르다. 2.2 제약회사에서 세 종류의 두통약을 개발했다. 두통약 별 효과의 차이가 있는가? 귀무가설 : 두통약의 효과에 차이가 없다. (독립변수 : 약) 대립가설 : 두통약에 효과가 있는 약이 적어도 하나 있다. 2.3 (3,4,5,6)월에 생산된 티..

같은 모집단의 사건 전후를 비교할 때 가설검정(대응표본 t검정)

검정 종류 다음과 같은 가설검정들 중 같은 모집단의 사건 전후를 비교하는(짝을 지을 수 있는) 대응표본 t검정에 대해 알아본다 대응표본 t검정 1. 정의 : 실험 전후에 데이터를 수집한 두 데이터 간 평균 차이를 검증하는 것 2. 기본 가정사항 : 정규성만족 3. 예시 3.1 50명의 부모들이 "부모가 달라졌어요" 시청했을때 시청 전후 양육방식의 변화가 있는가? 귀무가설 : "부모가 달라졌어요" 시청 후 양육방식의 차이가 없다 대립가설 : "부모가 달라졌어요" 시청 후 양육방식의 차이가 있다 3.2 10명의 사격자가 1차 2차 사격을 했을 떄 차수의 평균 변화가 있는가? 귀무가설 : 1차 2차 사격의 평균이 같다. 대립가설 : 1차 2차 사격의 평균이 다르다. 4. 분석과정 4.1 정규성 검정(샤피로..

서로다른 모집단이 두개일때 가설검정(독립표본 t검정)

검정 종류 다음과 같은 가설검정들 중 모집단의 개수가 두개인 단일표본 t검정에 대해 알아본다 독립 표본 t검정 1. 정의 : 두 집단 간의 평균치의 차이를 비교하는 통계 검정 방법 2. 기본 가정사항 : 독립성, 정규성, 등분산성 3. 예시 3.1 A반의 학생 30명의 평균성적은 70, 표준편차는 15, B반 학생의 평균성적은 75, 표준편차는 13일때 두 반의 성적차이가 있는가? 귀무가설 : A반의 학생의 평균성적과 B반의 학생의 평균성적은 차이가 없다. 대립가설 : A반의 학생의 평균성적과 B반의 학생의 평균성적은 차이가 있다. 3.2 20대여자의 휴대폰 사용량은 3시간 표준편차는 25분, 20대남자의 휴대폰사용량은 2시간 45분, 표준편차는 32분일때 남녀별 휴대폰 사용량은 차이가 있는가? 귀..

모집단이 한개일때 가설검정 (단일표본 t검정)

검정 종류 다음과 같은 가설검정들 중 모집단의 개수가 한개인 단일표본 t검정에 대해 알아본다 단일표본 t검정(one sample t-test) 1. 정의 : 모집단의 평균을 알때, 해당 모집단으로 부터 추출한 표본의 평균이 알고있는 모집단의 평균과 차이가 있는지 검정하는 것 2. 기본 가정사항 : 정규성을 만족해야 함. (표본이 30개이상이면 중심극한정리에 의해 정규성 만족) 3. 예시 3.1 국내 개인 피폭선량 평균은 0.67일때, K 병원의 영상의학과 직원의 평균피폭량 0.75는 국내평균과 차이가 있는가? 귀무가설 : K병원의 평균 피폭선량과 국내 개인 피폭선량의 평균값은 차이가 없다. 대립가설 : K병원의 평균 피폭선량과 국내 개인 피폭선량의 평균값은 차이가 있다. 3.2 서울대학교 학생의 수업만족..

pip이용하여 requirements.txt 만들기

1. requirements.txt 현재 가상환경에 설치된 python 패키지를 버전과 함께 작성하여 requirements.txt 파일에 저장한다 2. requiremnets.txt 생성 커맨드 다음 커맨드를 이용하여 자동으로 requirements.txt파일을 생성할 수 있다. pip freeze > requirements.txt * 가끔 다음과 같이 @ file 형식으로 버전이 저장되는 경우가 있다. aioredis @ file:///home/conda/feedstock_root/build_artifacts/aioredis_1591809643295/work amqp @ file:///home/conda/feedstock_root/build_artifacts/amqp_1591005859311/work..

소트 오퍼레이션

1. sort aggregate - 전체 로우를 대상으로 집계를 수행할 때 - sort라는 표현을 썼지만 실제로 정렬하진 않는다 - sum, max, min, avg 등의 값을 구할 때 사용 - 집계당(sum, max, min, count 등) 변수를 만들고 데이터를 하나씩 넣으면서 집어 넣으면서 집계를 수행 ex) 값을 하나씩 넣으면서 sum은 더하고, max는 큰게 나오면 교치하고, min은 작은게 나오면 교체하고, count는 1씩 더해준다 2.sort order by - sort order by : 데이터를 정렬할 때 발생 - ex select colA from tableA order by colB 3. sort group by - 그룹별 집계를 수행할 때 나타난다. - ex) select c..

DB/SQL 2022.08.16

소트 수행 과정

메모리 공간 종류 1. 메모리 소트(in memory sort) : 전체 데이터의 정렬 작업을 메모리 내에서 완료하는 것 2. 디스크 소트(to-dist sort) : 할당받은 sort area내에서 정렬을 완료하지 못해 디스크 공간까지 사용하는 경우 과정 [SGA] -> [PGA] -> [temp tablespace] --(merge)--> [PGA] 1. 소트할 대상 집합을 SGA버퍼캐시를 통해 읽어들인다. 2. sort area에서 정렬을 시도한다. 3. 양이 많을 때는 정렬된 중간집합을 temp 태이블스페이스에 임시 세그먼트로 저장한다. 4. 최종 결과집합을 얻기 위해 merge한다

DB/SQL 2022.08.15

인덱스 엑세스 조건, 인덱스 필터 조건

인덱스 엑세스 조건 - 인덱스 스캔 범위를 결정하는 조건절 - 수직적 탐색을 통해 스캔 시작점을 결정하는 데 영향을 미치는 조건절 - 또한 인덱스 리프 블록을 스캔하다가 어디서 멈출지 결정하는데 영향을 미치는 조건절 - 첫번째 범위검색 조건절 이전까지 조건절이 인덱스 엑세스 조건이다 인덱스 필터 조건 - 테이블로 엑세스를 할지 결정하는 조건절 - 첫번째 범위검색 조건절 이후부터가 인덱스 필터 조건이다 그림

DB/SQL 2022.08.11

인덱스 탐색과정

인덱스 탐색과정 - 인덱스 tree가 위와 같고, 조건절이 where c1='B' and c2=3이라고 가정하자 - 루트 블록에서 조건에 맞는건 (B,3)이지만 그 직전 데이터인 (A,3)의 리프블록에서 부터 스캔을 시작 해야 조건에 맞는 모든 데이터를 찾을 수 있다. - 스캔시작구간은 리프블록2의 네번째 데이터(B,3), 종료구간은 리프블록3의 두번째(B,3) - 루트블록속 데이터들의 하위블록들은, 루트블록속 데이터들보다 항상 크거나 같다. - 루트블록속 가장 왼쪽 레코드를 LMC(LeftMost Child)라고 한다.

DB/SQL 2022.08.11

인덱스 손익 분기점

인덱스 손익 분기점이란 - index range scan이 table full scan보다 느려지는 시점 - table full scan은 추출 건수와 상관없이 어차피 테이블을 전체 스캔하는 것이기 때문에 소요 시간이 항상 같다 - index range scan은 추출 건수가 많아짐에 따라 소요시간이 늘어난다.(인덱스 스캔 + 테이블 랜덤 엑세스, 테이블 랜덤엑세스로 인한 시간 소요가 주요원인) - 이때 CF(clustering factor)가 나쁘면 손익분기점이 빨리 오고, 좋으면 손익분기점이 늦게 온다

DB/SQL 2022.08.10