let us not love with words or tongue but actions and truth.

파이썬 23

Dummy Classifier

기본적으로 dummy classifier는 모델 성능을 비교할 때, base line을 명시해 줌으로써 어느 정도의 성능이 나오는지 비교하기 위해 사용합니다. DummyClassifier 라이브러리를 import 하기 전에, 우선 설명력을 쉽게 print할 수 있는 코드를 먼저 함수로 정의해 볼게요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 from sklearn.model_selection import cross_val_score def cv_recall(model, x, y): scores = cross_val_score(model, x, y, cv=5, scoring='recall'); scores #print("Mean:..

IT/파이썬 2020.12.23

Lasso regression(라쏘 회귀분석)

Lasso regression에 대한 것이나 Ridge랑 비교 분석 해놓은 사이트가 많으니 꼭 참고해서 읽어보셔요. 여기서는 어떻게 파이썬으로 쓸것인지에 대해서만 간략하게 소개드리려고합니다. 우선 우리가 처음 가지고 있다고 가정할 x변수에 대해서 보겠습니다. 1 x.shape cs > (847, 56) 즉, 56개의 x변수를 가지고 있는데, 이 변수들을 그대로 쓰기에는 너무 많기 때문에 축소하기 위해서 쓰려고 합니다. 그때 사용할 로직이 Lasso regression입니다. PCA차원축소와는 조금 다르게, 여기서는 원변수를 그대로 쓰는데요. 상대적 변수의 중요도를 판단하여, 의미가 없다고 생각되는 변수들의 coefficient값을 0으로 만들어주어 중요도가 높은 변수만 select할수 있게 해줍니다. 코..

IT/파이썬 2020.12.22

GridSearchCV 그리드서치 1탄

모델별로 best성능을 만들어 줄수있는 hyper parameter값을 찾아야 될 경우가 있을텐데요. 그때 유용하게 사용되는 Grid Search CV에 대해서 알아보도록 할게요. 우선 각 모델별로 가장 기본적인 모델을 선언해줄게요. 1 2 3 4 5 6 7 8 9 10 11 from sklearn.ensemble import RandomForestClassifier from sklearn.ensemble import GradientBoostingClassifier import xgboost from xgboost import XGBClassifier def clf3(): rfc = RandomForestClassifier() gb = GradientBoostingClassifier() xg = XGBC..

IT/파이썬 2020.12.21

Imbalanced Dataset에서의 over sampling과 cross validation

지금 분석 하려고 하는 내용은 복잡하니, 개괄적인 내용만 미리 정리해보겠습니다. 우선 Imbalanced Dataset를 모델링시키기 위해서는 아래와 같은 순서로 진행합니다. StratifiedKFold기법을 적용하여, train과 test dataset으로 쪼개고 Train dataset의 Minority class를 over sampling하고 over sampling 된 traing dataset으로 모델을 Traning 시킨 후 원래 데이터의 test dataset을 통해 test한 후 모델설명력을 평균 내는 것 (cross validation의 원리) 왜 imbalanced dataset에서는 위와 같이 복잡하게 진행할까라고 하시는 분들은 아래 설명을 보시면 조금 이해가 될거 같습니다. www...

IT/파이썬 2020.12.09

ANOVA분석 & POST-HOC (사후검정)

그룹간 차이가 있는지 볼 수 있는 ANOVA검정과 사후검정 관련 포스팅을 해보겠습니다. ANOVA분석 우선 분석할 내용은, 4개의 A,B,C,D라는 학급별 수학/영어/과학 점수의 차이가 있는지 분석하는 것입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 score_list=['math','eng','science'] from scipy import stats fstat_list=[] p_list=[] for i in lg_cat_list: fstat, p = stats.f_oneway(class_A[i], class_B[i], class_C[i], class_D[i]) fstat_list.append(fstat) p_list.append(p) Colored by Color Scripter c..

IT/파이썬 2020.12.04

Chi-square test, Fisher's exact 검정 & post-hoc

Chi-square test category형 변수별 target 과의 유의차가 있는지 검정할 때, Category변수가 많다면 아래와 같이 for문으로 작성하는 것이 더 편합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from scipy.stats import chi2_contingency chi_list=['cat1', 'cat2', 'cat3'] chi_val_list=[] chi_p_list=[] for i in chi_list: # contingency: 관측도수 contingency= pd.crosstab(df[i], df['target']) # dof: degree of freedom # expected: chi, p, dof, expected =chi2_conti..

IT/파이썬 2020.12.04

T-Test, levene test, 맨-휘트니 U 검정(Mann-Whitney U test)

검정해야할 컬럼들이 많을 때, 아래와 같이 for문으로 작성하면 훨씬 편하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 from scipy import stats col_list=['col1', 'col2', 'col3'] t_list=[] p_list=[] lp_list=[] up_list=[] for i in col_list: t, p = stats.ttest_ind(df[(df['target']==1)][i],df[(df['target']==0)][i]) lt, lp = stats.levene(df[(df['target']==1)][i],df[(df['target']==0)][i]) # 비모수검정 mann whitney u 검정 u, up = stats...

IT/파이썬 2020.12.04