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

How to avoid float values in regression models

我正在尝试使用线性、SGDRegressor、ridge、lasso 等回归模型来预测葡萄酒质量(范围从 1 到 10)。

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

独立values:volatile酸度、残糖、游离二氧化硫、总二氧化硫、酒精度 Dependent:Quality

线性模型

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

线性回归的预测值 阵列([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.

SGD回归模型。

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])

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

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

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

您应该注意的是,您关于预测葡萄酒质量的小项目不是分类问题。响应变量 y,即葡萄酒质量,具有内在顺序,这意味着 6 分严格优于 5 分。它不是分类变量,不同的数字只代表不同的组,组之间没有可比性。