如何避免回归模型中的浮点值

时间:2015-06-18 12:47:58

标签: python numpy scikit-learn regression linear-regression

我试图使用回归模型(如线性,SGDRegressor,脊,套索)来预测葡萄酒质量(范围从1到10)。

数据集:http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv

独立值:挥发性酸度,残糖,游离二氧化硫,总二氧化硫,酒精 依赖性:质量

线性模型

regr = linear_model.LinearRegression(n_jobs=3)
regr.fit(x_train, y_train)
predicted = regr.predict(x_test)

预测LinearRegression的值 数组([5.33560542,5.47347404,6.09337194,...,5.67566813,         5.43609198,6.08189])

预测值是浮点而不是(1,2,3 ... 10) 我尝试使用numpy

来舍入预测值
predicted = np.round(regr.predict(x_test))` but my accuracy gone down with this attempt.

SGDRegressor模型。

from sklearn import linear_model
np.random.seed(0)
clf = linear_model.SGDRegressor()
clf.fit(x_train, y_train)
redicted = np.floor(clf.predict(x_test))

预测SGDRegressor的输出值:

array([ -2.77685458e+12,   3.26826414e+12,   4.18655713e+11, ...,
     4.72375220e+12,  -7.08866307e+11,   3.95571514e+12])

这里我无法将输出值转换为整数。

有人可以告诉我使用这些回归模型预测葡萄酒质量的最佳方法。

1 个答案:

答案 0 :(得分:3)

您正在进行回归,因此输出本质上是连续的。

你应该注意的是,你的预测葡萄酒质量的迷你项目不是分类问题。响应变量y,葡萄酒质量,具有内在顺序,这意味着得分6严格优于得分5.它不是分类变量,其中不同的数字仅代表不同组的不同组。