1. 程式人生 > >CSDN機器學習筆記一 概述、線性迴歸

CSDN機器學習筆記一 概述、線性迴歸

一、課程知識點

講師:唐宇迪

本次課程
1.系列課程環境配置
2.機器學習概述
3.線性迴歸演算法原理推導
4.邏輯迴歸演算法原理
5.最優化問題求解
6.案例實戰梯度下降

一、機器學習處理問題過程及常用庫

1. 機器學習的處理問題過程 :

如:網頁中內容的分類,有體育類和非體育類,現在需要對它們區分分類。
這裡寫圖片描述

  1. 首先需要訓練樣本,然後把原始資料進行轉換,進行特徵抽取。
  2. 特徵抽取在整個過程中非常重要。
  3. 然後指定一個學習函式,即機器學習演算法。如學習函式:y*=argmaxf(X)。
  4. 預測

2. 包含的一些機器學習庫

  • Numpy:科學計算庫
  • Pandas:資料分析處理庫
  • Matplotlib:資料視覺化庫
  • Scikit-learn:機器學習庫,最常用的是建模

二、線性迴歸演算法

1. 定義

在統計學中,線性迴歸(Linear Regression)是利用稱為“線性迴歸方程”的最小二乘函式對一個或多個自變數和因變數之間關係進行建模的一種迴歸分析。
這種函式是一個或多個稱為迴歸係數的模型引數的線性組合。

  • 只有一個自變數的情況稱為簡單迴歸
  • 大於一個自變數情況的叫做多元迴歸。

一個帶有一個自變數的線性迴歸方程代表一條直線。我們需要對線性迴歸結果進行統計分析。

線性迴歸利用數理統計中迴歸分析,來確定兩種或兩種以上變數間相互依賴的定量關係的一種統計方法運用十分廣泛。其表達形式為y=x’x+e,e為誤差服從均值為0的正態分佈。

線性迴歸假設物證和結果滿足線性關係。其實線性關係的表達能力非常強大,每個特徵對結果的影響強弱可以由前面的引數體現,而且每個特徵變數可以首先對映到一個函式,然後再參與線性計算。這樣就可以表達特徵與結果之間的非線性關係。

迴歸屬於有監督學習中的一種方法。該方法的核心思想是從連續型統計資料中得到數學模型,然後將該數學模型用於預測或者分類。

該方法處理的資料可以是多維的。

2. 迴歸與梯度下降

迴歸在數學上來說是給定一個點集,能夠用一條曲線去擬合之。
如果這個曲線是一條直線,那就被稱為線性迴歸;
如果曲線是一條二次曲線,就被稱為二次迴歸。

迴歸還有很多變種,如:locally weighted 迴歸、logistic迴歸等。

舉例,weka,做一個房屋價值的評估系統。相關變數可能有:

  • 面積
  • 房間數量
  • 地段
  • 朝向

等。
這些影響房屋價值的變數被稱為特徵(feature)。
為簡單起見,假設我們的房屋feature只有一個——房屋的面積。

準備資料如下:

面積(m^2) 銷售價錢(萬元)
123 250
150 320
87 160
102 220

x軸表示面積,y表示售價,則出來一個圖:
這裡寫圖片描述

如果再給定一個面積,要計算售價,可以用一條曲線去儘量擬合這些資料。
這裡寫圖片描述

一些概念

  • 房屋銷售記錄表 - 訓練集(training set)或者訓練資料(training data),是我們流程中輸入資料,一般稱為x
  • 房屋銷售價格 - 輸出資料,一般稱為y
  • 擬合的函式(或者稱為假設、模型),一般寫做y=h(x)
  • 訓練資料的條目數(#training set),一條訓練資料是由一對輸入資料和輸出資料組成的。
  • 輸入資料的維度(特徵的個數,#features),n

典型的機器學習的過程
這裡寫圖片描述
我們用X1,X2…Xn去描述feature裡面的分量,比如x1=面積,x2=朝向等等,可以做出一個估計函式:

h(x)=hθ(x)=θ0+θ1x1+θ2x2

θ 稱為引數,在這兒的意思是調整feature中每個分量的影響力,就是到底是房屋的面積更重要兩袖清風是房屋的地段更重要。如果令X0=1,就可以用向量的方式來表示了:

hθ(x)=θTX

我們程式也需要一個機制去評估θ是否比較好,所以說需要對ℎ函式進行評估,一般這個函式稱為損失函式(loss function)或者錯誤函式(error function),描述ℎ函式不好的程度。在下面,做出一個錯誤函式:

這裡寫圖片描述
這個錯誤估計函式是去對x(i)的估計值與真實值y(i)差的平方和作為錯誤估計函式,前面乘上1/2是為了在求導的時候,這個係數就不見了。
如何調整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一種完全是數學描述的方法,在stanford機器學習開放課最後的部分會推導最小二乘法的公式的來源,這個來很多的機器學習和數學書上都可以找到,下面介紹梯度下降法。

3. 梯度下降法

梯度下降法是按下面的流程來進行的:
1. 首先對θ賦值,這個值可以是隨機的,也可以讓θ是一個全零的向量
2. 改變θ的值,使得J(θ)按梯度下降的方向進行減少。

這裡寫圖片描述

4. 線性迴歸推導過程

這裡寫圖片描述
問題:去銀行貸款,銀行會進行評估。假設有兩個指標:x1工資 x2年齡,用這兩個屬性來預測貸款額度。
h(x) 是最終結果,x1指定了權重引數θ1,x2指定了權重引數θ2
這裡寫圖片描述

變化的過程中,多了一個x0,在這裡假設x0都等於1。
這裡寫圖片描述

θTx 為轉置格式。
實際值與預測值是有差異的。
這裡寫圖片描述
y(i)Tx(i)(i)
假設誤差是高斯分佈。
這裡寫圖片描述
原因是比較常見的值取到概率大,比較少見的值取到的概率小。
誤差ε(i)是獨立並且具有相同的分佈通常認為服從均值為0方差為θ2的高斯分佈。即每個樣本與其它樣本之間是獨立的。銀行是有規律可循,它對每個樣本的規律是一樣的。
這裡寫圖片描述
找到最好的一組權重引數。
計算權重是從誤差入手。
其中p(y(i))是可能性。
L(θ) 自然函式,目標讓它越大越好。
這裡寫圖片描述
累乘計算。

現在為了計算累乘,使用變換:
這裡寫圖片描述
為什麼用log?
因為:loga*b=loga + logb。
而且加log以後,我們的目標仍然是求最大值。

exp含義是e的多少次冪。
σ是高斯分佈。
最後求的J(θ)希望是越小越好。

這裡寫圖片描述
為了求最小值,要求偏導。
這裡寫圖片描述
結果得出我們想要的公式:
θ=(XTX)-1XTy

5. 迴歸的一般方法

  • 收集資料
  • 準備資料
  • 分析資料
  • 訓練演算法
  • 測試演算法
  • 使用演算法

三、OLS

ordinary least sequares 普通最小二乘法