决策树的准确性评分返回“ValueError: 发现输入变量的样本数量不一致”

我在尝试使用给定数据创建决策树,但不知为何 accuracy_score 返回了

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

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

这是我拆分数据的方式:

from sklearn.utils import shufflefrom sklearn.model_selection import train_test_split# stDt 是打乱后的训练集stDt = shuffle(tDt) # 将打乱后的训练集拆分为训练集和验证集stDt, vtDt = train_test_split(stDt,train_size=0.8, shuffle=False)print(tDt.shape)print(stDt.shape)print(vtDt.shape)

这是我训练数据的方式:

# 训练集的属性和标签attributesT =  stDt.valueslabelsT = stDt.label# 训练决策树分类器from sklearn.tree import DecisionTreeClassifierdtree1 = 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_scoreret1 = fited1.predict(stDt)ret2 = fited2.predict(stDt)ret3 = fited3.predict(stDt)print(accuracy_score(vtDt.label,ret1))

回答:

您得到的错误是预期的,因为您试图将从训练集(ret1 = fited1.predict(stDt))生成的预测与验证集的标签(vtDt.label)进行比较。

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

# 在训练集上的预测:ret1 = fitted1.predict(stDt)# 训练准确性:accuracy_score(stDt.label,ret1)# 在验证集上的预测:pred1 = fitted1.predict(vtDt)# 验证准确性:accuracy_score(vtDt.label,pred1)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注