- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一些使用 scikit-learn 的 DecisionTreeClassifier 的旧代码。我想根据这个分类器制作部分图。
到目前为止我看到的所有示例(例如 http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.partial_dependence.plot_partial_dependence.html)都使用“GradientBoostingRegressor”作为分类器。
我的问题是,是否可以为其他分类器制作部分图?(例如 DecisionTreeClassifier)。我尝试了以下代码:
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble.partial_dependence import plot_partial_dependence
from sklearn.datasets import make_friedman1
X, y = make_friedman1()
clf = DecisionTreeClassifier(max_features='auto').fit(X,y)
fig, axs = plot_partial_dependence(clf, X, [0, (0, 1)])
它不起作用。
ValueError: gbrt has to be an instance of BaseGradientBoosting
我在互联网上找到了一些评论(Quora):
Partial dependence plots don't depend on the particular choice of classifier at all. The partial dependence plot module used for the gradient boosting example would work fine if you swapped in a random forest classifier.
但是,我仍然不知道它是如何工作的。
同样对于 R,我似乎可以为 randomForest 包制作部分图。但是,我不确定随机森林是如何实现的,在 R 手册中,作者 Andy Liaw 引用了引用文献“Friedman, J. (2001). Greedy function approximation: the gradient boosting machine, Ann. of Stat”。
这是否意味着我必须使用梯度提升才能获得部分图?
感谢任何帮助。非常感谢!
最佳答案
如您的错误消息所述,您必须使用基类为 BaseGradientBoosting
的分类器。
来自您发布的文档:
gbrt : BaseGradientBoosting
A fitted gradient boosting model
GradientBoostingClassifier
和 GradientBoostingRegressor
都继承自 BaseGradientBoosting
( source ),因此理论上,这些类中的任何一个都应该可以工作。至于其余的分类器,它们似乎不受 plot_partial_dependence
函数的支持。
关于python - 我可以在 scikit-learn(和 R)中为 DecisionTreeClassifier 绘制部分图吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21788735/
我正在制作一个交互式建模工具。这个想法是用决策树生成变量。然而,这个变量需要具有经济意义(我希望能够删除理论上没有意义的分割)。因此,我用plotly绘制了一棵树,以便能够监听用户点击的位置。我在下面
我正在尝试对具有多个级别的对象进行分类。我解释它的最好方法是用一个例子: 我可以做到这一点: from sklearn import tree features = ['Hip Hop','Bosto
我正在使用 scikit-learn 中的 DecisionTreeClassifier 对一些数据进行分类。我还使用其他算法,并使用精确召回指标下的面积来比较它们。问题是 DecisionTreeC
有没有办法计算 decision tree 中两片叶子之间的距离? . 距离是指从一片叶子到另一片叶子的节点数。 例如,在此示例图中: distance(leaf1, leaf2) == 1 dist
我有两个学习过的sklearn.tree.tree.DecisionTreeClassifier。两者都使用相同的训练数据进行训练。两者都为决策树学习了不同的最大深度。 decision_tree_m
我正在使用 sklearn.tree.DecisionTreeClassifier 来训练 3-class 分类问题。 3个类的记录数如下: A: 122038 B: 43626 C: 6678 当我
我正在使用 python sklearn RandomForestClassifier 并尝试导出决策树。 基本代码如下: from sklearn import tree with open(dot
我正在尝试使用 DataFrame(pandas)从 sklearn 实现 DecisionTreeClassifier,但在分割数据时它返回一些奇怪的值。我的数据集包含 3 列,其 PIL 逊相关系
我一直在玩 sklearn 并使用虹膜数据在线遵循一些简单的示例。 我现在开始使用一些其他数据。我不确定这种行为是否正确,而且我有误解,但每次我调用 fit(x,y) 时,我都会得到完全不同的树数据。
使用 DecisionTreeClassifier I visualized it using graphviz 时,我不得不说,令我惊讶的是,它似乎采用分类数据并将其用作连续数据。 我的所有特征都是
我正在训练一个 sklearn.tree.DecisionTreeClassifier。我从 pandas.core.frame.DataFrame 开始。这个数据框的一些列是真正应该是分类的字符串。
我正在尝试使用字符串中的参数的 DecisionTreeClassifier。 print d # d= 'max_depth=100' clf = DecisionTreeClassifi
我有一个数据集,其中的类是不平衡的。这些类是 0、1 或 2。 如何计算每个类别的预测误差,然后在 scikit-learn 中相应地重新平衡权重? 最佳答案 如果你想完全平衡(将每个类视为同等重要)
我是机器学习新手 - 特别是分类技术。 我已经在线阅读了一些教程,并且正在使用 iris data set 。我尝试使用 将数据集拆分为训练和测试 train, test = train_test_s
如何告诉 ml.DecisionTreeClassifier 对连续特征而不是分类特征进行评分,而无需使用 Bucketizer 或 QuantileDiscretizer 方法? 下面是我将连续特征
我正在使用这个数据集Weath Based on age并且文档指出准确度应在 84% 左右。不幸的是,我的程序的准确率是 25% 为了处理数据,我执行了以下操作: 1. Loaded the .tx
假设我有一个数据集: X y 20 0 22 0 24 1 27 0 30 1 40 1 20
我有一个来自 sklearn 的决策树分类器,我使用 pydotplus 来展示它。然而,当我的演示文稿(熵、样本和值)的每个节点上有很多信息时,我真的不喜欢。 为了更容易向人们解释,我只想保留决定和
我已经安装了 DecisionTreeClassifier 的实例,并且正在尝试提取每个节点的预测概率。我需要这个来创建类似于下面所示的自定义决策树可视化。 我可以导出每个节点的特征和阈值。 dtc.
我使用 sklearn.tree.DecisionTreeClassifier 构建决策树。通过最佳参数设置,我得到了一棵有不必要叶子的树(参见下面的示例图片 - 我不需要概率,所以用红色标记的叶子节
我是一名优秀的程序员,十分优秀!