【问题标题】:Selecting classification model that reflect contributing factors for each outcome class in python选择反映python中每个结果类的影响因素的分类模型
【发布时间】:2019-11-10 18:34:41
【问题描述】:

我正在研究具有多个分类预测变量的多项响应数据集。

我选择在 Python 上运行分类随机森林,效果很好。我能够获得最重要的影响因素及其部分图。

我无法确定哪些预测变量对哪个结果的贡献最大,并意识到 RF 可能不是了解预测变量和多个结果之间动态关系的最合适模型。 我希望你能提出其他模型来反映结果和预测变量之间的动态。 谢谢

【问题讨论】:

    标签: python-3.x machine-learning scikit-learn random-forest multilabel-classification


    【解决方案1】:

    您可以很好地使用 RF,并且仍然可以通过使用包 eli5 来了解每个功能对做出预测的正面/负面贡献。我已经解释了如何通过获取 iris 数据集来利用包来做同样的事情。

    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-setosawidth 是预测为Iris-setosa 的主要原因。同样,当您查看其他两列时,您也会了解为什么数据点没有被归类为其他类别。如果您想要更通用的解释,请使用show_weights,如下所示

    show_weights(clf, feature_names = X.columns.values)
    

    eli5 不仅适用于射频,还适用于一大堆其他型号,请参阅eli5 documentation 了解更多详情。

    希望这会有所帮助!

    【讨论】:

    • 我会检查并回复您。 x.loc[1] 的一个小问题是针对特定数据点的结果或一般结果。我可以概括我的整个数据集或有一个完整的摘要吗?谢谢
    • 这里我只是解释了一个例子的预测,如果你想要一个通用的总结,我建议你使用show_weights而不是show_prediction,我已经修改了代码以显示也是。
    • 嗨@jaber,如果您对我的回答感到满意,如果您能接受它作为经过验证的答案并投票赞成,那就太好了。提前致谢。
    • 我还在探索它。偏见是什么意思?
    猜你喜欢
    • 2023-01-07
    • 2022-01-05
    • 2015-12-25
    • 1970-01-01
    • 2022-01-14
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多