Reference: 用scikit-learn和pandas学习线性回归
- 首先获取数据存储在 pandas.DataFrame 中,获取途径(CSV 文件、Numpy 创建)
- 将数据分成 X 和 y,X 可以含有多列,也就是多个参数
- 通过 Linear Regression 计算
- 获取 intercept 和 coefficient
实现步骤如下:
>>> import numpy as np
>>> import pandas as pd
>>> from sklearn import datasets, linear_model
>>> from sklearn.linear_model import LinearRegression
>>> data = np.array([
['X', 'y'],
[2.0, 2.2],
[3.0, 3.8],
[4.0, 5.5],
[5.0, 6.5],
[6.0, 7.0]])
>>> lr = pd.DataFrame(data=data[1:,:],
columns=data[0,:])
>>> lr
X y
0 2.0 2.2
1 3.0 3.8
2 4.0 5.5
3 5.0 6.5
4 6.0 7.0
>>> X = lr[['X']]
>>> X
X
0 2.0
1 3.0
2 4.0
3 5.0
4 6.0
>>> y = lr[['y']]
>>> y
y
0 2.2
1 3.8
2 5.5
3 6.5
4 7.0
>>> linreg = LinearRegression()
>>> linreg.fit(X, y)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
normalize=False)
>>> linreg.intercept_
array([0.08])
>>> linreg.coef_
array([[1.23]])
代码如下:
>>> data = np.array([[3,2.5],[4,3],[5,4],[6,4.5]])
>>> lr = pd.DataFrame(data)
>>> X = lr[[0]]
>>> y = lr[[1]]
>>> linReg = LinearRegression()
>>> linReg.fit(X, y)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
normalize=False)
>>> linReg.intercept_
array([0.35])
>>> linReg.coef_
array([[0.7]])