我正在处理具有多个分类预测变量的多项式响应数据集。
我选择在Python上运行分类随机森林,效果很好。我能够获得最重要的影响因素及其局部图。
我无法弄清楚哪个预测因素对哪个结果贡献最大,并意识到RF可能不是理解预测因素和多个结果之间动态的最合适模型。 我希望您可以提出其他可以反映结果和预测因素之间动态关系的模型。 谢谢
答案 0 :(得分:0)
您可以很好地使用RF,并且仍然可以通过使用软件包SELECT CAST('2019-01-31 09:00:00.000' AS date);
来了解每个功能在做出预测中的正面/负面影响。我已经解释了如何通过获取虹膜数据集来利用程序包执行相同的操作。
eli5
现在让我们使用import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from eli5 import show_prediction, show_weights
df = pd.read_csv("./Data/iris.csv")
df.head()
Sepal Petal Width Height Class
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa
x = df.drop("Class", axis=1)
Y = df["Class"]
clf = RandomForestClassifier(n_estimators=100, max_depth=2,
random_state=0)
clf.fit(x,Y)
来完成技巧。假设我想获取数据点eli5
x.loc[1]
这就是你得到的
此示例的预测标签为show_prediction(clf, x.loc[1], show_feature_values=True)
,而Iris-setosa
是预测为width
的主要原因。同样,当您查看其他两列时,您还将了解为什么数据点未归为其他类别。如果您想要更一般的解释,请使用Iris-setosa
,如下所示
show_weights
show_weights(clf, feature_names = X.columns.values)
不仅适用于RF,还适用于其他许多型号,请参阅eli5 documentation了解更多详细信息。
希望这会有所帮助!