回归分析结果未出现在预期数字范围内

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 Regressionpredict_proba() 函数将输出介于 0 和 1 之间的概率(尽管此模型完全适用于不同的目标)。

正如@VivekKumar 所说,除非我们有具体信息,否则我们几乎无法帮助您。

【讨论】:

@vivekKumar 感谢一个简单的疑问,在线性回归的情况下,reg.coeff_ 值是否加到 1? 不,他们没有。它们是不受该约束约束的无单位权重 非常感谢!已经给出了我的示例元组和代码,请您帮助我提供有关如何为多项式回归实现 sigmoid 的链接/代码。尝试对数据进行归一化以进行线性回归,但模型的 Rsquared 值仍然很糟糕,没有运气?

以上是关于回归分析结果未出现在预期数字范围内的主要内容,如果未能解决你的问题,请参考以下文章

Matlab:数模13-多元回归分析模型

spss线性回归分析操作步骤

spss多元线性回归中P值的范围应该是多少 爱说篇

单因素统计和多因素回归分析有啥区别

spss 多元非线性回归分析

用微表格能做回归分析?