一个热编码数据的决策树直觉

时间:2017-11-03 22:26:49

标签: python scikit-learn decision-tree

在尝试理解scikit决策树对单一编码数据的行为方式时,我有以下几点:

X = [[1,0,1] , [1,1,1]]
Y = [1,2]

clf = tree.DecisionTreeClassifier(criterion='entropy')
clf = clf.fit(X, Y)

print(clf.predict([1,0,1]))
print(clf.predict([1,1,1]))

print(clf.predict_proba([1,0,1]))
print(clf.predict_proba([1,1,1]))

返回:

[1]
[2]
[[ 1.  0.]]
[[ 0.  1.]]

应该返回以下的predict_proba http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier.predict_proba状态读取文档:

  

p:shape = [n_samples,n_classes]数组或n_outputs列表   如果n_outputs>这样的数组1.输入的类概率   样本。类的顺序对应于属性中的顺序   类_

应返回给定输入值的正确性概率吗? 返回值[[1. 0.]],[[0. 1.]]如何对应于输入样本的类概率?

1 个答案:

答案 0 :(得分:1)

例如clf.predict_proba([1,0,1])给出以下内容:

[[         1.                          0.        ]]                # sample 1
#          ^                           ^
# probability for class 1     probability for class 2

因此预测称此样本[1,0,1]为1级的概率为1,而2级为0。所以预测应该是1,这与clf.predict([1,0,1])给出的相同。这也可以是例如[[0.8, 0.2]]的其他值,因此具有最大概率的类被视为预测值。