線性迴歸是一種找到最適合一組點的直線或超平面的方法。本模塊會先直觀介紹線性迴歸,爲介紹線性迴歸的機器學習方法奠基基礎。算法
人們早就知曉,相比涼爽的天氣,蟋蟀在較爲炎熱的天氣裏鳴叫更爲頻繁。數十年來,專業和業餘昆蟲學者已將每分鐘的鳴叫聲和溫度方面的數據編入目錄。Ruth 阿姨將她喜好的蟋蟀數據庫做爲生日禮物送給您,並邀請您本身利用該數據庫訓練一個模型,從而預測鳴叫聲與溫度的關係。數據庫
首先建議您將數據繪製成圖表,瞭解下數據的分佈狀況:機器學習
圖 1. 每分鐘的鳴叫聲與溫度(攝氏度)的關係。函數
毫無疑問,此曲線圖代表溫度隨着鳴叫聲次數的增長而上升。鳴叫聲與溫度之間的關係是線性關係嗎?是的,您能夠繪製一條直線來近似地表示這種關係,以下所示:學習
圖 2. 線性關係。google
事實上,雖然該直線並未精確無誤地通過每一個點,但針對咱們擁有的數據,清楚地顯示了鳴叫聲與溫度之間的關係。只需運用一點代數知識,您就能夠將這種關係寫下來,以下所示:3d
y=mx+bcode
其中:blog
按照機器學習的慣例,您須要寫一個存在細微差異的模型方程式:ip
y′=b+w1x1
其中:
要根據新的每分鐘的鳴叫聲值 x1 推斷(預測)溫度 y′,只需將 x1 值代入此模型便可。
下標(例如 w1 和 x1)預示着能夠用多個特徵來表示更復雜的模型。例如,具備三個特徵的模型能夠採用如下方程式:
y′=b+w1x1+w2x2+w3x3
關鍵字詞
簡單來講,訓練模型表示經過有標籤樣原本學習(肯定)全部權重和誤差的理想值。在監督式學習中,機器學習算法經過如下方式構建模型:檢查多個樣本並嘗試找出可最大限度地減小損失的模型;這一過程稱爲經驗風險最小化。
損失是對糟糕預測的懲罰。也就是說,損失是一個數值,表示對於單個樣本而言模型預測的準確程度。若是模型的預測徹底準確,則損失爲零,不然損失會較大。訓練模型的目標是從全部樣本中找到一組平均損失「較小」的權重和誤差。例如,圖 3 左側顯示的是損失較大的模型,右側顯示的是損失較小的模型。關於此圖,請注意如下幾點:
圖 3. 左側模型的損失較大;右側模型的損失較小。
請注意,左側曲線圖中的紅色箭頭比右側曲線圖中的對應紅色箭頭長得多。顯然,相較於左側曲線圖中的藍線,右側曲線圖中的藍線表明的是預測效果更好的模型。
您可能想知道本身可否建立一個數學函數(損失函數),以有意義的方式彙總各個損失。
接下來咱們要看的線性迴歸模型使用的是一種稱爲平方損失(又稱爲 L2 損失)的損失函數。單個樣本的平方損失以下:
= the square of the difference between the label and the prediction
= (observation - prediction(x))2
= (y - y')2
均方偏差 (MSE) 指的是每一個樣本的平均平方損失。要計算 MSE,請求出各個樣本的全部平方損失之和,而後除以樣本數量:
MSE=1N∑(x,y)∈D(y−prediction(x))2
其中:
(x,y)
指的是樣本,其中
y 指的是樣本的標籤(例如,每分鐘的鳴叫次數)。
prediction(x) 指的是權重和誤差與特徵集 x 結合的函數。
D 指的是包含多個有標籤樣本(即 (x,y))的數據集。
雖然 MSE 經常使用於機器學習,但它既不是惟一實用的損失函數,也不是適用於全部情形的最佳損失函數。