gpt4 book ai didi

python - 如何在 scikit-learn DecisionTreeRegressor 中使用实际的特征名称而不是 "X"?

转载 作者:太空狗 更新时间:2023-10-29 22:09:27 25 4
gpt4 key购买 nike

我想这是可能的,因为在 fit 函数的定义中 it says :

X : array-like, shape = [n_samples, n_features]

现在我有,

enter image description here

我当然可以生成决策树的字符串表示,然后将 X[] 替换为实际的特征名称。但是我想知道 fit 函数是否可以直接将特征名称作为输入的一部分?我为每个样本尝试了以下格式

  • [1, 2, "feature_1", "feature_2"]

  • [[1, 2], ["feature_1", "feature_2"]]

但都没有用。 shape 是什么意思?能举个例子吗?

最佳答案

fit 函数本身不支持类似的东西。但是,您可以使用 export_graphviz 绘制决策树,包括特征标签。成员函数。 (这不是你生成上面树的方式吗?)。本质上,你会做这样的事情:

iris = load_iris()
t = tree.DecisionTreeClassifier()
fitted_tree = t.fit(iris.data, iris.targets)
outfile = tree.export_graphviz(fitted_tree, out_file='filename.dot', feature_names=iris.feature_names)
outfile.close()

这将生成一个“点”文件,graphviz(必须单独安装)然后可以将其“呈现”为传统图像格式(postscript、png 等)。例如,要制作 png 文件,您d 运行:

dot -Tpng filename.dot > filename.png

点文件本身是一种纯文本格式,并且相当不言自明。如果您想调整文本,可以在您选择的文本编辑器中进行简单的查找替换。还有用于直接与 graphviz 及其文件交互的 python 模块。 PyDot似乎很受欢迎,但也有其他人。


fit 文档中的shape 引用仅指训练数据矩阵X 的布局。具体来说,它期望第一个索引随训练示例而变化,而第二个索引指的是特征。例如,假设您的数据的 shape 是 (150, 4),iris.data 就是这种情况。 fit 函数会将其解释为包含 150 个训练示例,每个训练示例包含四个值。

关于python - 如何在 scikit-learn DecisionTreeRegressor 中使用实际的特征名称而不是 "X"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21420225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com