如何避免回归模型中的浮点值
Posted
技术标签:
【中文标题】如何避免回归模型中的浮点值【英文标题】:How to avoid float values in regression models 【发布时间】:2015-09-04 02:49:02 【问题描述】:我正在尝试使用线性、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)
线性回归的预测值 数组([ 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])
这里我无法将输出值转换为整数。
谁能告诉我使用这些回归模型预测葡萄酒质量的最佳方法。
【问题讨论】:
你有没有对 0 到 1 之间的数据进行归一化处理?或者有时取决于 -1 和 1 之间的回归 也许这是一个分类问题? 作为学术作业的一部分,我们必须同时使用分类(根据质量对葡萄酒进行分类)和回归模型(预测葡萄酒的质量)@Chung-YenHung 你认为是还有其他选择吗?还是我错过了任何其他措施? @pbu 我还没有标准化数据。您认为将数据归一化会导致输出质量为整数形式吗? SGDRegressor 结果似乎完全没有价值,为什么它预测为负数和~1e12 的葡萄酒分数?!我没有看它的文档,你确定不需要传入一些参数吗?或者,也许将您的输入特征标准化为零均值单位方差(或类似的东西)将对此有所帮助。 【参考方案1】:您正在进行回归,因此输出本质上是连续的。
您应该注意的是,您关于预测葡萄酒质量的小项目不是分类问题。响应变量 y(葡萄酒质量)具有内在顺序,这意味着 6 分绝对优于 5 分。它不是分类变量,不同的数字仅代表不同的组,而组是不可比较的。
【讨论】:
以上是关于如何避免回归模型中的浮点值的主要内容,如果未能解决你的问题,请参考以下文章
在回归模型中使用 Keras ImageDataGenerator