機器學習入門01——線性迴歸簡介 殘差平方 代碼例程

一、線性迴歸定義

線性迴歸,就是能夠用一個直線較爲精確地描述數據之間的關係。這樣當出現新的數據的時候,就能夠預測出一個簡單的值。線性迴歸中最常見的就是房價的問題。一直存在很多房屋面積和房價的數據。

如下圖所示:
房面積和房價關係
在這種情況下,就可以利用線性迴歸構造出一條直線來近似地描述放假與房屋面積之間的關係,從而就可以根據房屋面積推測出房價。

迴歸:根據訓練樣本𝒟,學習一個從輸入𝐱到輸出𝑦的映射𝑓
• 對新的測試數據𝐱 ,用學習到的映射𝑓對其進行預測:𝑦2 = 𝑓(𝐱)

二、常見的線性迴歸舉例:

在這裏插入圖片描述

三、線性迴歸的數學模型

• 最簡單的迴歸模型:線性迴歸
• 假設輸出𝑦與輸入𝐱之間的關係爲線性關係,即
在這裏插入圖片描述

四、線性迴歸案例-廣告與銷量

• 根據在線廣告投入費用預測每月電子商務銷售量
在這裏插入圖片描述
利用matplotlib的pyplot模塊描繪出散點圖
並用Scikit-Learn做模型預測

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

y_train = np.array([368, 340, 376, 954,331, 556])  #輸入數據集
X_train = np.array([1.7, 1.5, 1.3, 5, 1.3, 2.2])  #輸出數據集
plt.scatter(X_train, y_train, label= 'Train Samples')  #描繪數據

X_train = X_train.reshape(-1, 1)  #改變輸入數據維度
lr = LinearRegression()  #學習預測
lr.fit(X_train, y_train)  #訓練數據

a=range(6)    #利用預測出的斜率和截距繪製直線
b=[lr.intercept_+lr.coef_[0]*i for i in a]

plt.plot(a,b, 'r')

print(lr.intercept_)#打印出截距
print(lr.coef_)  #打印出斜率

plt.show()

程序運行效果:
在這裏插入圖片描述

123.94211903204723
[167.79594506]

• 預測當𝑥 = 2.8時的銷量:𝑦 = 123.94 + 167.80 ∗ 2.8 = 593.78

五、預測殘差

如何判斷預測的好壞?
預測殘差(Residual):真實值和預測值之間的差異
在這裏插入圖片描述
• 綠色直線在訓練集上的預測殘差:-41.20, -35.64, 33.92, -8.92, -11.08, 62.91
• 藍色直線在訓練集上的預測殘差:14, 10, 70, 204, 25, 142

由於殘差有正負之分,不好判斷,所以引入殘差平方
• 忽略預測殘差的符號:殘差的平方
在這裏插入圖片描述

• 最佳直線:殘差平方和(Residual Sum of Squares, RSS )最小

在這裏插入圖片描述

所以綠色的預測直線更佳!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章