-
Logistic regression 에서 통계적으로유의한 독립변수 찾는법 in pythondata-science-summary/summary 2020. 9. 19. 16:00반응형
<엔지니어는 구현을 못하면 모르는것이다>
로지스틱 회귀분석에서 통계적으로 유의한 독립변수는 statsmodels 에서 변수의 p_value 찾은뒤 유의수준(보통 0.05) 이하인 변수를 찾으면 된다.
# 통계적으로 유의한 독립변수 찾는법 => statsmodels 사용 from sklearn import datasets import statsmodels.api as sm from sklearn.model_selection import train_test_split import pandas as pd import numpy as np breast_cancer = datasets.load_breast_cancer() X = breast_cancer.data y = breast_cancer.target cols = [i.replace(' ' , '_') for i in breast_cancer.feature_names] + ['y'] train_x, test_x, train_y, test_y = train_test_split(X, y, test_size=0.4, random_state=7777) train = np.hstack((train_x, train_y.reshape(-1,1))) test = np.hstack((test_x, test_y.reshape(-1,1))) train = pd.DataFrame(train, columns=cols) test = pd.DataFrame(test, columns=cols) # 20 개 넘어가면 잘안됨 formula = 'y ~ mean_radius + mean_texture + mean_perimeter + mean_area + mean_smoothness + mean_compactness + mean_concavity' # train lor = sm.Logit.from_formula(formula, train).fit() # 요약 print(lor.summary()) # p_value 확인 => 0.05 이하이면 의미있는 변수 lor.pvalues # 계수확인 lor.params # 또 다른 방법. 일반선형 모델인 GLM(Generalize linear Model) 에서 이진 분류 하면 link function이 Logit 되어 Logistic regression 됨 import statsmodels.formula.api as smf smf.glm(formula, train, family=sm.families.Binomial()).fit().summary()
반응형'data-science-summary > summary' 카테고리의 다른 글
문자형을 인트형로 바꾸는법 label encoder in python (0) 2020.09.19 one-hot encoding 하는법 in python (0) 2020.09.19 로지스틱 회귀(logistic regression) in python (0) 2020.09.19 회귀 (연속형 변수) 측정하는법 MSE, RMSE, MAE, MPE, MAPE in python (1) 2020.09.18 VIF(Variance Inflation Factor) 분산팽창지수 in python (0) 2020.09.18