发现输入变量样本数量不一致的错误

我编写了以下代码来学习机器学习方法中的得分,但出现了以下错误。原因是什么?

veri = pd.read_csv("deneme2.csv")veri = veri.drop(['id'], axis=1)y = veri[['Rating']]x = veri.drop(['Rating','Genres'], axis=1)X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.33)DTR = DecisionTreeRegressor()DTR.fit(X_train,y_train)ytahmin = DTR.predict(x)DTR.fit(veri[['Reviews','Size','Installs','Type','Price','Content Rating','Category_c']],veri.Rating)basari_DTR = DTR.score(X_test,y_test)#print("DecisionTreeRegressor: Yüzde",basari_DTR*100," oranında:" )a = np.array([159,19000000.0,10000,0,0.0,0,0]).reshape(1, -1)predict_DTR = DTR.predict(a)print(f1_score(y_train, y_test, average='macro')) 

错误:发现输入变量样本数量不一致:[6271, 3089]


回答:

你的代码至少有两个问题。

你报告的第一个错误

print(f1_score(y_train, y_test, average='macro')) 错误:发现输入变量样本数量不一致:[6271, 3089]

是因为你的y_trainy_test长度不同,正如另一个回答中已经指出的那样。

但这并不是这里的主要问题,因为即使你按照建议将y_train改为y_pred,你也会得到一个新的错误:

print(f1_score(y_pred, y_test, average='macro')) 错误:不支持连续值

这是因为你处于一个回归设置中,而f1分数是一个分类指标,因此它不适用于连续预测。

换句话说,f1分数对于你的(回归)问题来说是不合适的,因此出现了错误。

请查看scikit-learn中可用的指标列表,你可以确认f1分数仅用于分类,并选择适合回归问题的其他指标。

关于在scikit-learn中选择不合适的指标会发生什么的更详细说明,请参见准确度分数ValueError:无法处理二元和连续目标的混合

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中创建了一个多类分类项目。该项目可以对…

发表回复

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