В последнее время я возился с моделями Random Forest
, и они действительно полезны с атрибутом feature_importance_
!Как получить прогностические атрибуты каждой цели в «Случайном лесу»?
Было бы полезно узнать, какие переменные являются более прогнозирующими для конкретных целей.
Например, что если 1st and 2nd attributes
были более предиктором distringuishing target 0
но 3rd and 4th attributes
были более предиктором target 1
?
Есть ли способ получить массив feature_importance_
для каждой цели отдельно? С sklearn
, scipy
, pandas
, или numpy
предпочтительно.
# Iris dataset
DF_iris = pd.DataFrame(load_iris().data,
index = ["iris_%d" % i for i in range(load_iris().data.shape[0])],
columns = load_iris().feature_names)
Se_iris = pd.Series(load_iris().target,
index = ["iris_%d" % i for i in range(load_iris().data.shape[0])],
name = "Species")
# Import modules
from sklearn.ensemble import RandomForestClassifier
from sklearn.cross_validation import train_test_split
# Split Data
X_tr, X_te, y_tr, y_te = train_test_split(DF_iris, Se_iris, test_size=0.3, random_state=0)
# Create model
Mod_rf = RandomForestClassifier(random_state=0)
Mod_rf.fit(X_tr,y_tr)
# Variable Importance
Mod_rf.feature_importances_
# array([ 0.14334485, 0.0264803 , 0.40058315, 0.42959169])
# Target groups
Se_iris.unique()
# array([0, 1, 2])
Я не уверен в конкретных целях, но если вы еще не отметили, что xgboost имеет общий атрибут значимости. –