【发布时间】: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(标签已更正)...
标签: python-3.x machine-learning scikit-learn decision-tree