關于線性回歸的數學原理本文不作贅述(懶得敲公式。。。),各種機器學習入門的書籍和帖子里應該都有,直接上在Python里面的使用方法。
首先構建一個隨機訓練數據集,需要符合線性關系。
import numpy as np
from numpy import random
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
import matplotlib.pyplot as plt
plt.plot(X, y, "b.")

訓練數據
第二步即需要使用scikit-learning的工具來做線性回歸。
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(X, y)
來看一下擬合后的模型:
lin_reg.intercept_, lin_reg.coef_
(array([4.02040005]), array([[3.04161372]]))
可以看到與我們構建的模型參數吻合度很高。
接下來我們來做一個預測,構建測試數據(0和2):
X_new = np.array([[0], [2]])
y_predict = lin_reg.predict(X_new)
最后我們將訓練數據和模型做一個可視化:
plt.plot(X, y, "b.")
plt.plot(X_new, y_predict, "r-")

預測結果
本節(jié)需要記憶的語法:
1. random.rand(d0, d1, ..., dn) #生成[0, 1)之間的隨機數
2. random.randn(d0, d1, ..., dn) #生成正態(tài)分布隨機數
3. lin_reg = LinearRegression() #新建一個線性回歸模型
4. lin_reg.fit(X, y) #擬合線性回歸模型
5. y_predict = lin_reg.predict(X_new) #對測試數據進行預測
6. plt.plot(X, y, "b.") #畫圖,橫坐標X,縱坐標y,顏色blue,形狀點