機器學習之從數學知識到線性回歸

2021-09-26 04:01:34 字數 3111 閱讀 5358

基本的數學知識:線性回歸、最小二乘法

維基百科之中將線性回歸解釋如下:在統計學中,線性回歸(英語:linear regression)是利用稱為線性回歸方程的最小二乘函式對乙個或多個自變數和因變數之間關係進行建模的一種回歸分析。這種函式是乙個或多個稱為回歸係數的模型引數的線性組合。只有乙個自變數的情況稱為簡單回歸,大於乙個自變數情況的叫做多元回歸(multivariate linear regression)。

**性回歸中,資料使用線性**函式來建模,並且未知的模型引數也是通過資料來估計。這些模型被叫做線性模型。最常用的線性回歸建模是給定x值的y的條件均值是x的仿射函式。不太一般的情況,線性回歸模型可以是乙個中位數或一些其他的給定x的條件下y的條件分布的分位數作為x的線性函式表示。像所有形式的回歸分析一樣,線性回歸也把焦點放在給定x值的y的條件概率分布,而不是x和y的聯合概率分布(多元分析領域)。

線性回歸是回歸分析中第一種經過嚴格研究並在實際應用中廣泛使用的型別。這是因為線性依賴於其未知引數的模型比非線性依賴於其未知引數的模型更容易擬合,而且產生的估計的統計特性也更容易確定。

線性回歸有很多實際用途,分為以下兩大類:

如果目標是**或者對映,線性回歸可以用來對觀測資料集的和x的值擬合出乙個**模型。當完成這樣乙個模型以後,對於乙個新增的x值,在沒有給定與它相配對的y的情況下,可以用這個擬合過的模型**出乙個y值。

給定乙個變數y和一些變數x1, x2, x3, ,xn,這些變數有可能與y相關,線性回歸分析可以用來量化y與xj之間相關性的強度,評估出與y不相關的 xj 並識別出哪些 xj 的子集包含了關於y的冗餘資訊。

線性回歸模型經常用最小二乘逼近來擬合,但他們也可能用別的方法來擬合,比如用最小化「擬合缺陷」在一些其他規範裡(比如最小絕對誤差回歸),或者在橋回歸中最小化最小二乘損失函式的懲罰。相反,最小二乘逼近可以用來擬合那些非線性的模型。因此,儘管「最小二乘法」和「線性模型」是緊密相連的,但他們是不能劃等號的。

利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小。

「最小二乘法」是對超定方程組,即其中存在比未知數更多的方程組,以回歸分析求得近似解的標準方法。在這整個解決方案中,最小二乘法演算為每一方程式的結果中,將殘差平方和的總和最小化。

最重要的應用是在曲線擬合上。最小平方所涵義的最佳擬合,即殘差(殘差為:觀測值與模型提供的擬合值之間的差距)平方總和的最小化。當問題在自變數(x變數)有重大不確定性時,那麼使用簡易回歸和最小二乘法會發生問題;在這種情況下,須另外考慮變數-誤差-擬合模型所需的方法,而不是最小二乘法。

最小平方問題分為兩種:線性或普通的最小二乘法,和非線性的最小二乘法,取決於在所有未知數中的殘差是否為線性。線性的最小平方問題發生在統計回歸分析中;它有乙個封閉形式的解決方案。非線性的問題通常經由迭代細緻化來解決;在每次迭代中,系統由線性近似,因此在這兩種情況下核心演算是相同的。

最小二乘法所得出的多項式,即以擬合曲線的函式來描述自變數與預計應變數的變異數關係。

當觀測值來自指數族且滿足輕度條件時,最小平方估計和最大似然估計是相同的。最小二乘法也能從動差法得出。

對於最小二乘法,我們給出乙個示例:如果讀者擁有初等數學的基礎,看懂這個問題應該不是難事。

示例:我們現在由有四個資料點 (x,y):(1,6), (2,5),(3,7),(4,10),我們希望找出一條和這四個點最匹配的直線y = kx + b(k為斜率,b為截距)。

解:由題意我們可以得到下列四個式子:k + b = 6、2k + b = 5、3k + b = 7、4k + b = 10利用最小二乘法的規則:盡量使得等號兩邊的方差最小,也就是找出下面這個函式的最小值。s = [6 - (k + b)] ^ 2 + [5 - (2k + b)] ^ 2 + [7 - (3k + b)] ^ 2 + [10 - (4k + b)] ^ 2,最小值我們可以通過對 k 和 b 求偏導數並且令偏導數為零,我們可以得到如下圖所示的公式:

我們通過對圖中方程組的求解可以得出:b = 3.5,,k = 1.4,因此我們就得到了最佳的匹配直線方程為:y = 1.4x + 3.56。

下面我們就開始線性回歸的基本知識介紹:

import matplotlib.pyplot as plt

import numpy as np

#基本的資料集

x = np.array([1, 2, 3, 4])

y = np.array([4, 5, 10, 8])

#建模from sklearn.linear_model import linearregression

model = linearregression() #建立線性回歸模型

#訓練(要求格式輸入為一行乙個資料)

x = x.reshape(-1, 1) #進行格式變換

y = y.reshape(-1, 1) #-1表示基於另乙個確定值比如這裡的1進行維度計算,可以得到乙個n維1列的資料集

model.fit(x, y) #用來訓練模型的演算法(梯度下降演算法在這一步就會自動實現)

train_score = model.score(x, y) #計算得分(可以理解為模型再資料集上的準確率)

plt.scatter(x, y)

plt.plot(x, model.predict(x), 'r-') #畫線

plt.show() #顯示圖形

print(train_score) #列印的得分(沒有換算成百分制)

由上面的**我們可以得到下面的這樣一條紅色的線,那麼他對應的就是最佳擬合的直線,並且他的得分輸出為0.6351…(也就是63.5%)

機器學習 數學 機器學習涉及的數學知識

簡單總結 機器學習涉及的數學知識有 線性代數,概率論和統計學,多變數微積分,演算法和複雜優化,以及其他等。原文 在過去幾個月裡,有幾個人聯絡過我,說他們渴望進軍資料科學領域,使用機器學習 ml 技術探索統計規律,並打造資料驅動的完美產品。但是,據我觀察,一些人缺乏必要的數學直覺和框架,無法獲得有用的...

機器學習中的數學知識 線性代數

1 矩陣叉乘 內積 矩陣的乘法就是矩陣a的第一行乘以矩陣b的第一列,各個元素對應相乘然後求和作為第一元素的值。矩陣只有當左邊矩陣的列數等於右邊矩陣的行數時,它們才可以相乘,乘積矩陣的行數等於左邊矩陣的行數,乘積矩陣的列數等於右邊矩陣的列數 2.矩陣點乘 外積 矩陣點乘是對應位置相乘,表徵向量的對映。...

機器學習及其數學知識 知識星球

為什麼要加入付費知識星球?每一條都是精心篩選,用心編輯,為您節約時間 邀請了在各個領域比較優秀的朋友做嘉賓 利物浦博士,gdg組織者,ibm資料科學家,前阿里演算法工程師 阿里nlp演算法工程師,美國前十理工院校碩士,實現物理到cs的華麗轉身 十年經驗的c 資深工程師,方向是計算機視覺,人體姿態 付...