Python / Scikit-Learn - 无法处理多类和连续的混合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python / Scikit-Learn - 无法处理多类和连续的混合相关的知识,希望对你有一定的参考价值。

我正在尝试将SGDRegressor放入我的数据中,然后检查准确性。拟合工作正常,但是预测与原始目标数据的数据类型(?)不同,我得到了错误

ValueError: Can't handle mix of multiclass and continuous

在致电print "Accuracy:", ms.accuracy_score(y_test,predictions)时。

数据看起来像这样(只有20万+行):

Product_id/Date/product_group1/Price/Net price/Purchase price/Hour/Quantity/product_group2
0   107 12/31/2012  10  300 236 220 10  1   108

代码如下:

from sklearn.preprocessing import StandardScaler
import numpy as np
from sklearn.linear_model import SGDRegressor
import numpy as np
from sklearn import metrics as ms

msk = np.random.rand(len(beers)) < 0.8

train = beers[msk]
test = beers[~msk]

X = train [['Price', 'Net price', 'Purchase price','Hour','Product_id','product_group2']]
y = train[['Quantity']]
y = y.as_matrix().ravel()

X_test = test [['Price', 'Net price', 'Purchase price','Hour','Product_id','product_group2']]
y_test = test[['Quantity']]
y_test = y_test.as_matrix().ravel()

clf = SGDRegressor(n_iter=2000)
clf.fit(X, y)
predictions = clf.predict(X_test)
print "Accuracy:", ms.accuracy_score(y_test,predictions)

我该怎么办?谢谢!

答案

准确度是一种分类指标。您不能将其与回归一起使用。有关各种指标的信息,请参阅the documentation

另一答案

准确度分数仅适用于分类问题。对于回归问题,您可以使用:R2 Score,MSE(Mean Squared Error),RMSE(Root均方误差)。

以上是关于Python / Scikit-Learn - 无法处理多类和连续的混合的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn Quick Start

scikit-learn库的安装及使用,以支持向量机svm为例

[机器学习与scikit-learn-22]:算法-聚类-无监督学习与聚类基本原理

交叉验证:来自 scikit-learn 参数的 cross_val_score 函数

无互联网情况下安装python第三方库

在 scikit-learn 中拟合数据与转换数据