Veritabanımdaki her özelliğin önemlerini anlamaya çalışıyorum.RandomClassifier Scikit ile Özelliklerin Önemi Başlarken
names=['Class label', 'Alcohol',
'Malic acid', 'Ash',
'Alcalinity of ash', 'Magnesium',
'Total phenols', 'Flavanoids',
'Nonflavanoid phenols',
'Proanthocyanins',
'Color intensity', 'Hue',
'OD280/OD315 of diluted wines',
'Proline']
df_wine = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data', header=None,names=names)
from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier(n_estimators=10000,
random_state=0,
n_jobs=-1)
forest.fit(X_train, y_train)
feat_labels = df_wine.columns[1:]
importances = forest.feature_importances_
indices = np.argsort(importances)[::-1]
for f in range(X_train.shape[1]):
print("%2d) %-*s %f" % (f + 1, 30,feat_labels[f], importances[indices[f]]))
ama np.argsort yöntemi anlamak rağmen, hala döngü İÇİN bunu idrak yoktur: Ben scikit belgelerinden bu kodu kullanın. Neden "importances" dizisini indekslemek için "indices" kullanıyoruz? "Durumunda
1) Alcohol 0.182483
2) Malic acid 0.158610
3) Ash 0.150948
4) Alcalinity of ash 0.131987
5) Magnesium 0.106589
Çıktı: "sahasını ABD'ye [endeksleri [] f]"(ilk 5 satır) kullanarak durumunda
for f in range(X_train.shape[1]):
print("%2d) %-*s %f" % (f + 1, 30,feat_labels[f], importances[f]))
Çıktı: Ve neden biz sadece böyle bir kod kullanamazsınız önemleri [f] "(ilk 5 satır):
1) Alcohol 0.106589
2) Malic acid 0.025400
3) Ash 0.013916
4) Alcalinity of ash 0.032033
5) Magnesium 0.022078
Lütfen başvuruda bulunduğunuz örneğe bir bağlantı ekleyin. –
http://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_importances.html – mokebe