决策树 Sklearn 的 export_text 错误

Error on export_text for decision tree Sklearn

我正在尝试使用 sklearn.tree(版本 1.0.2)中的函数 export_text,但是当我使用参数 feature_names 时出现错误,这是我正在尝试的

# decision_tree is the fitted algorithm
text_representation = export_text(decision_tree=decision_tree, feature_names=decision_tree.feature_names_in_)

如果我在不使用 feature_names 参数的情况下调用函数,我已经检查过 decision_tree.feature_names_in_ returns 正确的名称,与我用作算法输入的名称相同

如果我使用具有相同参数的其他类似函数,它工作正常

plot_tree(decision_tree=decision_tree, feature_names=decision_tree.feature_names_in_)

知道哪里出了问题吗?

看起来像是 export_text 代码中的一个小错误。尝试强制 features_names_in_ 成为 python 列表。

# decision_tree is the fitted algorithm
text_representation = export_text(decision_tree=decision_tree, feature_names=decision_tree.feature_names_in_.tolist())

我假设您在生成 DecisionTree 时使用了 pandas.DataFrame 以便您得到 feature_names_in_?

如果是这样,那么 feature_names_in_ 将是 numpy.ndarray

export_text 代码做了一个简单的:if feature_names: 测试来检查特征,但是 numpy 会引发你看到的错误。

这看起来像是 export_text 特有的,所以您看不到 plot_tree