sklearn里怎么做多项式回归?

  统计/机器学习 回归分析 Python
1

sklearn里怎么做多项式回归?搜了一下,感觉里面没有现成的多项式回归。


 

曾经是科比   2017-11-30 11:55



   3个回答 
3

可以参考numpy.polyfit

下面就是个用polyfit做三次多项式回归的例子

>>> x = np.array([0.0, 1.0, 2.0, 3.0,  4.0,  5.0])
>>> y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
>>> coef = np.polyfit(x, y, 3)
>>> coef
array([ 0.08703704, -0.81349206,  1.69312169, -0.03968254])

coef是回归系数,按照幂次先高后低排列。


染盘   2017-12-10 14:08

2

sklearn里没有多项式回归,只能靠自己造轮子了。你需要人工生成那些高次项,比如说你要做一个像

$$Y= a_0 + a_1x + a_2x^2 + a_3x^3$$

的三次多项式回归。那么你就需要人工制造出$x^2$和$x^3$这两个特征,然后再做sklearn里的回归。

可以参考如下

from sklearn.linear_model import LinearRegression
X_new = pd.DataFrame()
X_new['x'] = x
X_new['x2'] = X_new['x'] ** 2
X_new['x2'] = X_new['x'] ** 3
reg = LinearRegression()
reg.fit(X_new, y)


AlphaCat   2017-12-08 13:49

0

这个问题不是编程的问题,而是统计学中的本质问题,在统计理论中,对非线性回归模型,比如多项式、logsitic回归、对数回归等等,都可以转化为线性回归模型来求解的

所以,这个不是现有程序的问题,而是基本思想的问题

博观   2017-12-08 15:51

同意,广义线性模型,本质上都是线性模型 - AlphaCat   2017-12-08 23:12


相关问题

当训练集只有一个特征的时候,sklearn的LinearRegression报错   1回答

sklearn里LogisticRegressionCV中的参量Cs什么意思   1回答

python sklearn模型中random_state参数的意义   2回答

sklearn的模型如何保存下来?   2回答

查看sklearn版本   1回答

sklearn.linear_model.SGDClassifier中的参数n_iter设置问题   2回答

sklearn实现adaboost算法了吗?   1回答

sklearn predict的默认阈值   2回答

sklearn SGDClassifier的partial_fit是什么意思?   2回答

sklearn里learning_rate什么意思?   2回答

sklearn中的predict_proba方法的返回值的意义   2回答

python里怎么做分位数回归(quantile regression)?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!