回归分析结果未出现在预期数字范围内
Posted
技术标签:
【中文标题】回归分析结果未出现在预期数字范围内【英文标题】:Regression analysis results not coming in Range of numbers expected 【发布时间】:2018-07-24 20:11:49 【问题描述】:我正在尝试对 25 维数据进行回归分析。 我的数据在数据框中。 我的最终目标是预测一个分数值(0,99,70,22 等)
1.我需要对数据进行归一化/缩放还是线性/多项式回归分析来处理这个问题?
-
我应用多项式回归虽然它给了我一个很好的 r 平方值,但我看到它返回的 id 结果为负值 -342.54 其他高范围值,如 252(根本不在我给训练的分数范围内) 如何我纠正这个?
还有其他我想预测值的技术吗?
所以继承人的链接数据类型:
https://docs.google.com/spreadsheets/d/1swkRwLXklrWEDV3bKic5uxl_uHLjzU0QDHJ2JLSP8zQ/edit?usp=sharing
代码如下:
X= colum[D:AC] of spreadsheet
Y= column['Score'] or column ['Match'] in case of logistic regression
poly = PolynomialFeatures(degree=2)
X_ = poly.fit_transform(X)
X_test_ = poly.fit_transform(X_test)
# Instantiate
lg = LinearRegression()
# Fit
lg.fit(X_, y)
# Obtain coefficients
lg.coef_
【问题讨论】:
没有你的代码和数据,我们什么都做不了。 @vivek kumar 提供了一个示例元组和代码,请帮助对代码/方法进行任何更改? 【参考方案1】:1.我需要对数据进行归一化/缩放还是线性/多项式回归分析来处理这个问题?
这是“通常”的好习惯。模型收敛更快。如果您使用sklearn
,则Linear Regression 模块有一个名为normalize
的参数,当设置为True
时,将在拟合模型之前对所有变量进行归一化
2。我应用了多项式回归,尽管它给了我一个很好的 r 平方值,我看到它返回的 id 导致负值 -342.54 其他高范围值,如 252(根本不在我给训练的分数范围内)我该如何纠正这个?还有其他我想预测值的技术吗?
多项式回归旨在提供介于-inf
和+inf
之间的值。如果您需要百分比值,请通过 sigmoid
之类的函数缩放这些变量。您也可以使用Logistic Regression
,predict_proba()
函数将输出介于 0 和 1 之间的概率(尽管此模型完全适用于不同的目标)。
正如@VivekKumar 所说,除非我们有具体信息,否则我们几乎无法帮助您。
【讨论】:
@vivekKumar 感谢一个简单的疑问,在线性回归的情况下,reg.coeff_ 值是否加到 1? 不,他们没有。它们是不受该约束约束的无单位权重 非常感谢!已经给出了我的示例元组和代码,请您帮助我提供有关如何为多项式回归实现 sigmoid 的链接/代码。尝试对数据进行归一化以进行线性回归,但模型的 Rsquared 值仍然很糟糕,没有运气?以上是关于回归分析结果未出现在预期数字范围内的主要内容,如果未能解决你的问题,请参考以下文章