gpt4 book ai didi

python - Sklearn DecisionTreeclassifier 返回不可能的分割值

转载 作者:行者123 更新时间:2023-12-01 01:49:28 24 4
gpt4 key购买 nike

我正在尝试使用 DataFrame(pandas)从 sklearn 实现 DecisionTreeClassifier,但在分割数据时它返回一些奇怪的值。我的数据集包含 3 列,其 PIL 逊相关系数只能在 -1.0 到 1.0 之间。然而,根节点已开始在 Pearsons <= 1.0 处按这些列之一进行拆分,并显示 True 和 False 的两个子节点。但是这是不可能的!!所有值均 <= 1.0。那里不可能发生 split 。有谁知道这里发生了什么吗?

在我的代码中,我尝试了基尼系数和熵标准、拆分器和可能参数的其他不同组合。现在或多或少是我的代码,但我仍在使用参数:

newtable = table_of_pickle_ptptnew.loc[:,('Pearsons Ratio', 'Pearsons 330nm', 'Pearsons 350nm', 'Ratio Space', '330nm Similarity', '350nm Similarity')]

x = newtable.values
y = table_of_pickle_ptptnew['Binding Known'].values

dtree=DecisionTreeClassifier(max_features='auto',
max_depth=3,
criterion ='entropy',
min_impurity_decrease=0.09
)
fittree = dtree.fit(x, y.astype('str'))

dot_data = tree.export_graphviz(fittree, out_file=None,
class_names=['No Interaction', 'Interaction'],
feature_names=['Pearsons Ratio', 'Pearsons 330nm', 'Pearsons 350nm', 'Ratio Space', '330nm Similarity', '350nm Similarity'],
filled=True)
graph = graphviz.Source(dot_data)
graph



Pearsons Ratio Pearsons 330nm Pearsons 350nm Ratio Space 330nm Similarity 350nm Similarity
Elem a 0.94856 0.99999 0.99999 0.000725507 0.157209 0.0572688
Elem b 0.99234 1 0.99999 0.00657003 0.0568281 0.0465139
Elem c 0.98525 0.99999 0.99999 0.0114932 0.0226809 0.133452
Elem d 0.99793 0.99999 0.99999 0.000643209 0.154585 0.0914759
Elem e 0.99849 0.99999 0.99999 0.00128532 0.0932893 0.0464462

这是树的第一个节点的样子。所以,我的意思是,在根节点(Pearson 350nm <= 1.0)的条件下,False的子节点是不可能存在的,因为所有样本都是< = 1.0(真)。

Condition tree piece.

最佳答案

好的。我发现问题出在哪里了。树的 graphviz 可视化对小数有限制,如果太大则进行四舍五入。我使用一种算法自动为我的决策树提供伪代码,并在代码输出中显示“真实值”。在 graphviz 的图形树中,根节点的 1.0 实际上是“0.9999749660491943”。

我认为对于每个使用包含大量数字的科学数字的人来说,了解这一点很重要。 :) 如果您使用这样的数字,请记住从您的树中获取决策代码,而不要只选择漂亮的彩色树。

感谢所有花时间尝试帮助我解决问题的人。 :)

关于python - Sklearn DecisionTreeclassifier 返回不可能的分割值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50875274/

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