Machine Learning/파이썬_데이터사이언스

3. Feature Selection [파이썬으로 배우는 데이터 사이언스]

Minwoo 2020. 1. 30.

Data-Learning.tistory.com - 머신러닝 오픈소스 무료 강좌


 

 

Feature Selection

 

Contents: 

 

1. Feature selection이란? 

2. Univariate Selection 

3. Recursive Feature Elimination 

4. PCA(Principal Component Analysis) 

5. Feature Importance 

6. Bivariate / Univariate / Multivariate 의미

 

 


 

 

1. Feature selection이란?

 

  • 불분명한 관계없는 feature를 머신러닝 모델 트레이닝에 쓰면 negative impact를 준다.
  • 사이킷런 라이브러리를 활용함으로 feature selection을 automatic하게 찾을 수 있다. 
  • Feature selection을 써서 오버 피팅(Overfitting)문제를 낮춘다. 불필요한 데이터를 적게(Less Redundant data)사용하여 적은 확률로 노이즈에 관한 판단. 

 

· Feature selection로 정확도를 올릴 수 있다.  

 

· Feature selection로 트레이닝 시간을 줄일 수 있다. 

 

 

 

 


 

 

 

2. Univariate Selection 

 

  • Statistical test들을 통하여 피쳐들 간의 관계를 이해할 수 있다.
  • 사이킷런의 SelectKBest를 통해 다른 statistical test들로부터 피쳐들을 선택할 수 있다. 
from sklearn.feature_selection import SelectKBest,chi2 
test=SelectKBest(score_func=chi2,k=4) 
fit=test.fit(X,Y) 
features=fit.transform(X) 

 

 

 

 


 

 

 

3. RFE(Recursive Feature Elimination)

 

  • 반복적으로 피쳐를 지움으로써 남겨진 피쳐를 사용한다.  

 

from sklearn.feature_Selection import RFE 
from sklearn.linear_model import LogisticRegression 
model=LogisticRegression(solver='liblinear') 
rfe=RFE(model,3)
fit=rfe.fit(X,Y) 
print (fit.n_features_, fit.support_, fit.ranking_) 

 

 

 

 


 

 

 

4. PCA(Principal Component Analysis) 

 

  • Linear algebra를 사용하여 데이터에서 주요 데이터만을 뽑아온다. (reduction) 

 

from sklearn.decomposition import PCA 
pca=PCA(n_components=3) 
fit=pca.fit(X) 
print(fit.explained_variance_ratio_, fit.components_) 

 

 


 

 

 

5. Feature Importance

 

  • Random Forest / Extra Tress 와 같이 Bagged 트리들은 피쳐 중요도를 확인할 수 있다. 

 

from sklearn.ensemble import ExtraTreeClassifier 
model=ExtraTreeClassifier(n_estimators=100) 
model.fit(X,Y) 
print( model.feature_importances_ ) 

 

 

 


 

 

 6. Bivariate / Univariate  / Multivariate 의미 

 

 

1) Bivariate는 변수가 2개라는 뜻입니다. 그중에서도 주로 대등한 변수가 2개 있을 때 사용하는 용어입니다. 대표적인 예가 상관분석입니다. 상관분석은 두 변수 사이의 관계를 규명하는 분석이죠. 

 

2) Univariate는 변수가 여러개라는 뜻입니다. 그 중에서도 독립변수를 말합니다. 즉, 독립변수가 여러 개인 경우의 분석 기법일 때에 univaite 라는 말을 사용하게 됩니다. 

 

3) Multivariate도 역시 변수가 여러개라는 뜻입니다. 그러나, univariate 와 차이점은 종속변수가 여러개라는 것입니다. 이때 독립변수는 하나여도 상관이 없고 여러개 이어도 상관이 없습니다. 단지, 종속변수만 하나가 아니라 2개 이상인 경우에 쓰이는 말이죠. 

 

 

출처: <http://www.statedu.com/QnA/79573>  

 

 


 * 해당 개시물은 첫번째 배너 및 출처를 첨부하면 상업적 용도를 제외하고 사용하실수 있습니다.

 

밑바닥부터 시작하는 데이터 러닝

데이터 사이언스, 머신 러닝 오픈소스 무료 강좌.

data-learning.tistory.com

* 해당 게시물은 첫번째 배너 및 출처를 첨부하면 상업적 용도를 제외하고 사용하실수 있습니다.

 

댓글