빅데이터 분석기사 66

help, dir 사용법 시험때 추천하는 알고리즘

help import pandas as pd from scipy.stats import shapiro # function의 사용법은 help print(type(shapiro)) print(help(shapiro)) # module이 가지고 있는 function 사용법도 help print(type(pd)) # module print(type(pd.get_dummies)) # module print(help(pd.get_dummies)) print(type(scipy)) # module numpy의 array 사용 import numpy as np import scipy # 목록이 보여짐 # 넘파이로 더 예쁘게 하기 # 근데 걍 암기하자.. print(np.array(dir(scipy.stats))) [..

사후검정 이론 및 실습 - 시험 안나올 가능성 높음

사후검정? ANOVA분석의 문제 : 다르다는 것은 알지만 어떤 집단간의 차이가 있는지 알 수 없음 사후검정을 통해 어떤 것에 차이가 있는지 알 수 있음 모수 통계 사후 검정의 종류 Tukey Duncan : 통계적 유의성 도출하기 쉬움 - 1종 오류 발생확률 통제 안 함 scheffe : 가장 보수적, 엄격한 사후검정 방식, 통계적 유의한 차이 도출 쉽지 않음 fisher : 가장 엄격하지 않은 사후 검정 방법, 최근 연구에서 선호되지 않음 - 1종 통제 x games howell :이분산, 동일하지 않은 표본의 크기, 표본수 6개 미만시 1종오류 발생률 높음 15개 이상 권장 민감도로 구분 엄격하지 않아서 유의성을 도출하기 쉬움 : 세페 < 터키 < 던칸,피셔 던칸 : 작은 차이에도 차이가 난다 but..

ANOVA 이론 및 실습

anova 독립변수 - 범주형 종속변수 - 연속형 으로 하는 3개 이상의 집단 평균을 비교 2개는 t검정 집단간분산/분단내분산 기반의 f분포를 이용해 가설 검정을 함 -> 정규성, 등분산성, 독립성을 가정 집단 간 분산, 집단 내 분산을 이용 -> 분산분석 귀무가설 기각 시 구체적인 차이를 파악하기 위해 사후검정(post hoc test)이 필요함 등분산,동일크기 표본 -> tukey검정 등분산, 다른 크기 표본 -> scheffe 검정, fisher's lsd 검정 분산 분석은 , 의 분산을 분석함!! 일원분산분석 one-way anova 범주형 독립 변수가 한 개인 경우 사용 계절별 아이스크림 판매량 평균이 동일하다 귀무 : 모든 집단의 평균이 같다. 대립 : 하나 이상의 집단의 평균이 다르다 이원산..

t-test 실습, 분류모델에서 t-test 활용 함수

t-test 실시전에 정규성 및 등분산성이 만족되어야 함 One sample t-test 20대 평균 수면시간에 대한 one samle t-test 유의수준 0.05 사용 숫자 소수점 아래 4번째 자리까지 표시 one sample이기 때문에 등분산성 검정 생략 가능 # 정규성 검정 from scipy.stats import shapiro statistic, pvalue = shapiro(pd['stime20s']) print(round(statistic, 4), round(pvalue, 4)) print('기각' if pvalue 같다. 채택 -> 같다. 가설 3 alternative='greater' 귀무 : 20대는 평균 수면시간이 작거나 같다. 대립 : 크다 기각 -> 작거나 같다. 채택 -> 크다..

T-test 이론

t-test 스튜던트 t-테스트(Student's t-test)라고 함 귀무가설 하에서 t-분포를 따르는 통계적 가설 검정 표본을 사용한 모평균 3종류 one sample t-test 표본을 사용ㅇ한 모평균 검정방법 귀무가설 : s사의 usb 평균 수명은 20000 시간이다. paired t-test 대응표본 t검정 동일 개체에 어떤 처리를 하긴 전, 후의 자료를 얻을 때 차이 값에 대한 평균 검정을 위한 방법 매일 1시간 한달 걸으면 2kg이 빠진다.(걷기 수행 전/ 수행 후 ) 가능한 동일한 특성을 갖는 두 그룹에 서로 다른 처리를 해서 그 처리의 효과를 비교하는 방법 x질병 환자들을 두 집단으로 나눠 a, b 약을 투약해 약의 효과 비교 two sample t-test 독립표본 t-검정 서로 다른 ..

고객 구매 데이터로 성별예측 모형

1. 데이터 불러오기 x_train import pandas as pd X = pd.read_csv('X_train', encoding='cp949') print(X.head(2)) cust_id 총구매액 최대구매액 환불금액 주구매상품 주구매지점 내점일수 내점당구매건수 \ 0 0 68282840 11264000 6860000.0000 기타 강남점 19 3.8947 1 1 2136000 2136000 300000.0000 스포츠 잠실점 2 1.5000 주말방문비율 구매주기 0 0.5270 17 1 0.0000 1 y_train Y = pd.read_csv('y_train.csv') print(Y.hear(2)) cust_id gender 0 0 0 1 1 0 x_test X_submission = pd.r..

이항분류 성능평가, 예측값 저장

성능 좋은 rf, xgb로 모델 생성 data = make_sample(seedno=1234, size=50000) model_rf = RandomForestClassifier(n_estimators=500) ModelTrain(model_rf, data) [(65243, 3), (16311, 3), (65243,), (16311,)] train 성능: 1.0 test 성능: 0.9983446753724481 model_xgb = XGBClassifier(n_estimators=500) ModelTrain(model_xgb, data) train 성능: 1.0 test 성능: 0.9984084231145935 오분류표 sklearn.metrics.confusion_matrix(y_treu, y_pred,..

이항분류 모델링(lr, knn, dt, rf, xgb)

# 학습용 데이터 data = make_sample(seedno=1234, size=20000) # 평가용 데이터 all = make_all() X = all.iloc[:, :3] Y = all['합격여부'] 1. LogisticRegression - 독립 변수의 선형 결합을 이용해 사건 발생 가능성을 예측하는 데 사용되는 통계 기법 - 반복하면서 기울기 값 갱신, 기울기 미분값이 0이 되는 지점 찾음 - max_itst, tol 변경해 성능 개선 - max_iter : 반복 횟수 - tol : 허용오차, 반복을 중단하는 조건으로 사용됨 - panalty : 종류 - C : panalty 세기 - 그 외 파라미터 (penalty='l2', *, dual=False, tol=0.0001, C=1.0, fi..

이항분류 파생변수 생성, 스캐일링

합격/불합격 여부를 결정하는 평균, 과락에 관한 파생변수 추가 # 파생변수 생성/추가 data['평균'] = data[['국어','영어','수학']].mean(axis=1) data['최저'] = data[['국어', '영어', '수학']].min(axis=1) 파생변수 추가시 성능 개 # 파생변수 생성시 성능 개선됨 # 항상 그런 것은 아님 for no in [1234, 1225, 1245] : model5 = LogisticRegression(max_iter=1000) data = make_sample(seedno=no, size=20000) data['평균'] = data[['국어', '영어', '수학']].mean(axis=1) data['최저'] = data[['국어', '영어', '수학']]...

충분한 데이터의 중요성

데이터 성능 비슷함 0.94 정도 # 균형 데이터 # 1234, 1225, 1245 # 3개의 데이터가 비슷한 성능 for no in [1234, 1225, 1245] : model1 = LogisticRegression(max_iter=1000) data = make_sample(seedno=no, size=20000) ModelTrain(model1, data) [(25961, 3), (6491, 3), (25961,), (6491,)] train 성능: 0.9448403374292208 test 성능: 0.9440764134956093 [(26113, 3), (6529, 3), (26113,), (6529,)] train 성능: 0.9466932179374258 test 성능: 0.948384132..