Ağaç tabanlı özellik seçimi

Python'da Boyut Azaltma

Jeroen Boeye

Head of Machine Learning, Faktion

Rastgele orman sınıflandırıcısı

rastgele orman şeması

Python'da Boyut Azaltma

Rastgele orman sınıflandırıcısı

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

rf = RandomForestClassifier()

rf.fit(X_train, y_train)

print(accuracy_score(y_test, rf.predict(X_test)))
0.99
Python'da Boyut Azaltma

Rastgele orman sınıflandırıcısı

açıklamalı rastgele orman şeması

Python'da Boyut Azaltma

Özellik önem değerleri

rf = RandomForestClassifier()

rf.fit(X_train, y_train)

print(rf.feature_importances_)
array([0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.  , 0.04, 0.  , 0.01, 0.01,
       0.  , 0.  , 0.  , 0.  , 0.01, 0.01, 0.  , 0.  , 0.  , 0.  , 0.05,
       ...
       0.  , 0.14, 0.  , 0.  , 0.  , 0.06, 0.  , 0.  , 0.  , 0.  , 0.  ,
       0.  , 0.07, 0.  , 0.  , 0.01, 0.  ])
print(sum(rf.feature_importances_))
1.0
Python'da Boyut Azaltma

Özellik önemi ile özellik seçimi

mask = rf.feature_importances_ > 0.1

print(mask)
array([False, False, ..., True, False])
X_reduced = X.loc[:, mask]

print(X_reduced.columns)
Index(['chestheight', 'neckcircumference', 'neckcircumferencebase',
       'shouldercircumference'], dtype='object')
Python'da Boyut Azaltma

Rastgele ormanlarla RFE

from sklearn.feature_selection import RFE

rfe = RFE(estimator=RandomForestClassifier(), 
          n_features_to_select=6, verbose=1)

rfe.fit(X_train,y_train)
94 özellik ile tahmin edici eğitiliyor.
93 özellik ile tahmin edici eğitiliyor
...
8 özellik ile tahmin edici eğitiliyor.
7 özellik ile tahmin edici eğitiliyor.
print(accuracy_score(y_test, rfe.predict(X_test))
0.99
Python'da Boyut Azaltma

Rastgele ormanlarla RFE

from sklearn.feature_selection import RFE

rfe = RFE(estimator=RandomForestClassifier(), 
          n_features_to_select=6, step=10, verbose=1)

rfe.fit(X_train,y_train)
94 özellik ile tahmin edici eğitiliyor.
84 özellik ile tahmin edici eğitiliyor.
...
24 özellik ile tahmin edici eğitiliyor.
14 özellik ile tahmin edici eğitiliyor.
print(X.columns[rfe.support_])
Index(['biacromialbreadth', 'handbreadth', 'handcircumference', 
       'neckcircumference', 'neckcircumferencebase', 'shouldercircumference'], dtype='object')
Python'da Boyut Azaltma

Hadi pratik yapalım

Python'da Boyut Azaltma

Preparing Video For Download...