機器學習 機器學習入門04 線性回歸

2022-09-13 07:18:10 字數 2905 閱讀 3926

總的來說,分類(classification)和回歸(regression)是機器學習中的兩大類問題。它們其實都是在做同一件事情——將輸入轉化為輸出。區別在於,分類得到的輸出是離散值,例如之前的癌症問題中的良性(0)和惡性(1);而回歸的得到的輸出是連續值。

本篇文章,將開始討論回歸問題。我們從最簡單的線性回歸開始。

所謂線性回歸,就是用自變數的線性函式來給出任意給定自變數下的**值。它非常簡單,並且在特定問題背景下可以起到很好的回歸效果。

我們先來試著考慮一元的線性回歸(也稱為簡單線性回歸)。

我們知道,一般的一元線性函式的表示式是:

而對於機器學習,資料自然不可能完全屬於一條直線。在這樣的前提下,假如資料的分布近似於線性,我們是否可以用這樣一條直線來進行擬合,從而進行**呢?答案當然是肯定的,於是我們需要考慮的是,如何確定這條用於擬合的直線。

事實上,很容易想到,給定一組近似線性的資料點,我們有無數條直線可以逼近這些點。那麼,我們該如何對它們進行評估,並且選出我們認為最合適的一條呢?

直觀地說,我們希望資料點盡可能均勻地分布在直線兩側。更深一步來分析,這麼做的目的,是為了盡可能減小資料點與直線之間的距離。因為距離越大,意味著誤差可能越大。所以,我們考慮利用所有資料點與直線之間的距離來衡量回歸直線的優劣。

第1部分中,我們構造了乙個函式

。我們把這個函式稱為上述線性回歸的平方損失函式

什麼叫損失函式

損失函式描述了單個樣本**值和真實值之間誤差的程度。用來度量模型一次**的好壞。

常用的四種損失函式:

0-1損失函式(用於分類問題,分類正確取0,分類錯誤取1)

平方損失函式(即所有**值與真實值之差的平方和)

絕對損失函式(即所有**值與真實值之差的絕對值之和)

對數損失函式(利用了極大似然估計思想,具體見

損失函式通常記作

,針對的是單個資料點。那麼,由區域性到整體,就引出了風險函式的概念。

風險函式又稱為期望風險,是指損失函式的期望。

在特定的訓練資料集之下,我們不知道資料集的分布,沒有辦法計算期望,我們能計算的只有平均值。我們將這個平均值稱為經驗風險

經驗風險最小的模型,稱為最優模型

概率論與數理統計告訴我們,可以用樣本均值來近似估計分布期望。然而,樣本容量不大時,有可能出現過擬合的狀況。因此,我們在經驗風險後加上乙個正則化項(罰項),稱之為結構風險。用結構風險代替經驗風險,可以很好地避免過擬合的問題。

接下來,就可以正式介紹最小二乘法了。

所謂最小二乘法,就是一種求

的最小值的方法。(二乘即平方之意)

對a和b求偏導數,偏導函式的零點即為上式的極值點,也就是我們需要的a和b的最優值的可能值。最終結果如下:

具體推導過程較為複雜,這裡不再展開,可參考

第二部分中,我們已經利用最小二乘法推導出了簡單線性回歸係數的最優值的公式。這樣一來,我們的**實現就非常簡單了。

1 x_mean =np.mean(x)

2 y_mean =np.mean(y)

34 num = 0.0

5 d = 0.0

6for x_i,y_i in

zip(x,y):

7 num = num + (x_i - x_mean) * (y_i -y_mean)

8 d = d + (x_i - x_mean) ** 2

9 a = num /d

10 b = y_mean - a * x_mean

我們利用乙個迴圈,計算出了a和b的值。這樣,對於任意符合要求的x值,我們都可以利用y=ax+b對y值進行回歸**了。

然而,我們上面所做的運算,實際上可以表達成兩個向量的數量積。用數量積進行運算,可以大大縮短運算時間。因此,我們可以構造向量,然後利用numpy庫中的dot函式優化我們的運算過程。

雖然在我們看來,直接迴圈相加和利用向量的數量積計算似乎是完全相同的運算過程,但事實上,數量積運算並不是我們想象的這樣迴圈相加,而是利用了矩陣的特性優化運算。因此,效率會遠高於我們直接構造的for迴圈(特別是當資料集特別大時)。

上面講的是每個資料點只有乙個輸入變數的線性回歸,也就是一元線性回歸。

事實上,當有多個變數輸入(比如癌症的發現時間、癌症的大小)時,我們同樣可以進行線性回歸。這就是多元線性回歸

為了形式簡潔,我們直接使用矩陣記號來表示資料集。用矩陣xb

表示資料集的輸入,每個行向量表示乙個資料點的各指標,每個列向量表示所有資料點的某一指標值。用向量θ=(θ1, θ2, θ3, ..., θn) 表示我們所需要的線性回歸函式的係數。我們構造線性回歸函式 y=θ·x的過程就是其實就是找到使風險函式 |(y-θ·xb

)t·(θ·xb

)| 最小的向量θ

結果如下:

我們沒有必要了解其推導過程。直接使用這一結果,就可以得到我們需要的回歸方程。

機器學習 機器學習目錄

注 後期有時間的話會對每乙個演算法進行講解。1 普通線性回歸 2 廣義線性模型 3 邏輯回歸 4 線性判定分析1 決策樹基本原理與構建 2 cart演算法 3 回歸決策樹 4 分類決策樹1 貝葉斯定理與樸素貝葉斯 2 高斯貝葉斯分類器 3 多項式貝葉斯分類器 4 伯努利貝葉斯分類器 5 遞增式學習1...

機器學習 機器學習概論

3 模型評估與模型選擇 4.具體應用 統計學習 是關於計算機基於 資料 構建概率統計模型並運用模型對資料進行 分析 統計學習的三要素 模型在監督學習中,模型就是所要學習的條件概率分布或決策函式。這在後面的章節中會重點介紹。策略 評價模型的標準 用損失函式和代價函式來度量 錯誤的程度。1 幾種損失函式...

機器學習 機器學習基礎

資料集劃分的api 返回值 訓練特徵,測試特徵,訓練目標,測試目標 方式1 獲取小規模的資料集 importsklearn.datasets as datasets iris datasets.load iris 提取樣本資料 feature iris data target iris target...