决策树 accuracy_score 给出“ValueError:发现样本数量不一致的输入变量”

Posted

技术标签:

【中文标题】决策树 accuracy_score 给出“ValueError:发现样本数量不一致的输入变量”【英文标题】:Decision tree accuracy_score gives "ValueError: Found input variables with inconsistent numbers of samples" 【发布时间】:2019-03-18 10:19:28 【问题描述】:

我正在尝试使用给定数据创建决策树。但出于某种原因accuracy_score 给了

ValueError: 发现样本数量不一致的输入变量:

当我将训练数据拆分为验证(%20)和训练(%80)时。

这是我拆分数据的方式:

from sklearn.utils import shuffle

from sklearn.model_selection import train_test_split

# stDt shuffled training set

stDt = shuffle(tDt) 

#divide shuffled training set to training and validation set

stDt, vtDt = train_test_split(stDt,train_size=0.8, shuffle=False)

print(tDt.shape)
print(stDt.shape)
print(vtDt.shape)

这是我训练数据的方式:

#attibutes and labels of training set

attributesT =  stDt.values

labelsT = stDt.label


# Train Decision tree classifiers
from sklearn.tree import DecisionTreeClassifier


dtree1 = DecisionTreeClassifier(min_samples_split = 1.0)

dtree2 = DecisionTreeClassifier(min_samples_split = 3)

dtree3 = DecisionTreeClassifier(min_samples_split = 5)



fited1 = dtree1.fit(attributesT,labelsT)

fited2 = dtree2.fit(attributesT,labelsT)

fited3 = dtree3.fit(attributesT,labelsT)

这里是测试和准确度分数部分:

from sklearn.metrics import accuracy_score

ret1 = fited1.predict(stDt)

ret2 = fited2.predict(stDt)

ret3 = fited3.predict(stDt)

print(accuracy_score(vtDt.label,ret1))

【问题讨论】:

包含形状的打印命令而不显示它们的输出到底是什么意思?此处发布的代码应该是最小,在other things 中。符号“%20”和“%80”也非常不幸,实际上您使用的是scikit-learn 而不是sklearn-pandas(标签已更正)... 【参考方案1】:

您得到的错误是意料之中的,因为您正试图将 training 集 (ret1 = fited1.predict(stDt)) 产生的预测与 validation 集的标签进行比较( vtDt.label)。

这是获得fitted1 模型的训练和验证准确性的正确方法(其他模型类似):

# predictions on the training set:
ret1 = fitted1.predict(stDt)

# training accuracy:
accuracy_score(stDt.label,ret1)

# predictions on the validation set:
pred1 = fitted1.predict(vtDt)

# validation accuracy:
accuracy_score(vtDt.label,pred1)

【讨论】:

以上是关于决策树 accuracy_score 给出“ValueError:发现样本数量不一致的输入变量”的主要内容,如果未能解决你的问题,请参考以下文章

机器学习 sklearn 监督学习 分类算法 决策树 DecisionTree

机器学习 sklearn 监督学习 分类算法 决策树 DecisionTree

机器学习 sklearn 监督学习 分类算法 决策树 DecisionTree

在给出错误的决策树期间导出 graphviz

python机器学习入门模型优化(以决策树为例),来自kaggle竞赛

机器学习实战Ch03: 决策树