Я сравниваю мульти-классификацию со случайными лесами и CART в scikit-learn.
Две мои функции (функция 4 и функция 6) не имеют отношения к классификации, поскольку все значения одинаковы.
Но выходные данные feature_importances для RandomForestClassifier следующие:
Рейтинг функций:
- функция 3 (0.437165)
- функция 2 (0.216415)
- функция 6 (0.102238)
- функция 5 (0,084897)
- функция 1 (0.064624)
- функция 4 (0,059332)
- функция 0 (0.035328)
Вывод функции CART feature_importance:
Рейтинг функций:
- функция 3 (0,954666)
- функция 6 (0,014117)
- функция 0 (0,011529)
- функция 1 (0,010586)
- функция 2 (0,006785)
- функция 4 (0,002204)
- функция 5 (0,000112)
В каждом ряду функция 4 имеет одинаковое значение. То же самое для функции 6.
Вот код
Случайный лес
importances = rfclf.feature_importances_
std = np.std([tree.feature_importances_ for tree in rfclf.estimators_],
axis=0)
indices = np.argsort(importances)[::-1]
# Print the feature ranking
print("Feature ranking:")
for f in range(x.shape[1]):
print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))
CART
importances = clf.feature_importances_
std = np.std([tree.feature_importances_ for tree in rfclf.estimators_],
axis=0)
indices = np.argsort(importances)[::-1]
# Print the feature ranking
print("Feature ranking:")
for f in range(x.shape[1]):
print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))
Я бы, за исключением того, что важность как:
- функция 6 (0,000000)
- функция 4 (0,000000)
Когда я просто не использую эти две функции, мои модели переодеваются.