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]])