【发布时间】:2016-02-16 02:27:16
【问题描述】:
我最近一直在研究机器学习,现在开始使用 scikit 和线性回归。
这是我的第一个示例
from sklearn import linear_model
import numpy as np
X = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]
y = [2,4,6,8,10,12,14,16,18,20]
clf = linear_model.LinearRegression()
clf.fit (X, y)
print(clf.predict([11]))
==> 22
输出与预期的一样22(显然 scikit 提出了2x 作为假设函数)。但是当我使用y = [1,4,9,16,25,36,49,64,81,100] 创建一个稍微复杂一点的示例时,我的代码只会创建疯狂的输出。我假设线性回归会得出一个二次函数(x^2),但我不知道发生了什么。 11 的输出现在是:99。所以我想我的代码试图找到某种线性函数来映射所有示例。
在我所做的线性回归教程中,有多项式项的示例,因此我认为 scikits 实现会提出正确的解决方案。我错了吗?如果是这样,我如何教 scikit 考虑二次、三次等函数?
【问题讨论】:
-
@lejlot,你必须仔细阅读。第一句话是:
This example demonstrates how to approximate a function with a polynomial of degree n_degree by using ridge regression.本章不是关于经典插值,而是关于线性回归。
标签: python machine-learning scikit-learn linear-regression