1. 程式人生 > >機器學習之——多變數線性迴歸

機器學習之——多變數線性迴歸

在之前的部落格中,描述過單變數線性迴歸(Linear Regression with One Variables)的模型,這次來分享一下多變數線性迴歸模型(Linear Regression with Multiple Variables)

我們還是使用之前的問題,對房價的預測。這一次增加更多的特徵,例如房子的樓層數、臥室數量等,這樣就構成了一個含有多個變數的模型,模型中的特徵我們標記為(X1,X2,X3,...,Xn)。


增添了更多的特徵之後,我們還要引入一些新的標註:


支援多變數的假設函式 h 的表示式為:


我們看到,這個表示式中有n+1個引數和n個變數(ø0沒有變數),我們為了使公式能夠簡化一些,新增一個X0使其的值為1,即:X0=1,這樣公式便轉化為:


此時,這個模型中的引數是一個n+1維的向量,實際上在多變量回歸模型中,任何一個訓練集也都是n+1維的向量,特徵矩陣X的維度此時是m*n+1。

所以,我們的假設函式 h 的表示式可以簡化成:


引數向量ø的轉置乘上特徵向量X。

到目前,我們得到了模型的假設函式 h ,下一步我們來構建代價函式(Cost Function)

多變數線性迴歸的代價函式與單變數線性迴歸的代價函式相似,是所有建模誤差的平方和(MSE),即:


我們得到了代價函式,我們的目標也就和單變數線性迴歸問題中的一樣,找出使得代價函式最小的一系列引數。我們也是用批量梯度下降(Batch Gradient Descent)的方法:


將代價函式帶入,即:


求導之後,得到:


在初始狀態,我們隨機選擇一系列引數值,計算所有的預測結果之後,再給所有的引數一個新的值,如此迴圈直到收斂(convergence)

到此,我們已經實現了多變數的線性迴歸。但是在計算的過程當中,我們發現,有很多時候,引數的取值差距非常大,導致很多時候要進行大量的大數值的計算。在處理多維特徵(多變數)的問題時,我們要保證這些特徵都具有相近的範圍,這樣將更好的幫助梯度下降演算法更快的收斂。這時,我們可以使用特徵縮放(Features Scaling)方法。

我們還是以放假預測問題為例,假設我們使用兩個特徵,房屋的尺寸和房間的數量。房屋的尺寸範圍在 0 ~ 2000 平方英尺, 房間數量在 0 ~ 5 , 以這兩個引數為橫縱座標,繪製代價函式的等高線圖能看出影象會顯得很扁,梯度下降演算法要執行很多次迭代才能收斂。


特徵縮放解決這個問題,是嘗試將所有特徵的取值範圍儘量都縮放到 -1 ~ 1 之間。最簡單的方法是令 :


其中,Xn代表第n個特徵,µn代表平均值(AVE),Sn代表標準差(SD)

梯度下降演算法的表示式中,有一個alpha學習速率(Learning Rate)。演算法所需要的迭代次數根據模型的不同而不同,我們這方面不能夠提前預知,我們可以繪製迭代次數和代價函式的圖表來觀測演算法在何時趨於收斂。


也有一些自動測試是否收斂的方法,例如:將代價函式的變化值與一個常數閾值(0.001)進行比較。但是我個人感覺還是上面的圖表更直觀一些。

梯度下降演算法每次迭代,都會受到學習速率的影響,如果學習速率較小,則達到收斂所需要迭代的次數就會非常高;反之,如果alpha過大,則每次迭代可能都不會減小代價函式的結果,甚至會超過區域性最小值導致無法收斂。

通常,在我做一些模型時,我會設定學習速率的值在 0.01,0.03,0.1,0.3,1,3,10 這些參考值。

綜上,就是多變數線性迴歸模型的主要內容。下一次將給大家分享 多項式迴歸於正規方程(Polynomial Regression and Normal Equation)

相關推薦

吳恩達機器學習變數線性迴歸實現部分

C++實現梯度下降法 “linear_regression.h” //多變數線性迴歸模型 struct elem_var2 { double y; double* x; //用陣列傳入自變數資料(x[0]=1,便於之後的計算) }; class var2

吳恩達機器學習變數線性迴歸理論部分

本部落格主要參考此部落格:戀雨心 一.Multiple Features — 多維特徵 相對於單變數線性迴歸模型,多變數線性迴歸模型適用於處理多個變數/特徵。 對比: 以之前我們介紹的單變數線性迴歸模型為例: 用房屋面積x預測房子價格y。 現在我們對房價模型增加更多的特徵,例如房間

機器學習——變數線性迴歸

在之前的部落格中,描述過單變數線性迴歸(Linear Regression with One Variables)的模型,這次來分享一下多變數線性迴歸模型(Linear Regression wit

吳恩達機器學習變數線性迴歸實現部分

C++實現 程式碼實現 “linear_regression.h” //單變數線性迴歸模型 struct elem_var1 { double x, y; //訓練集元素資料:自變數、因變數 }; class var1_lin_reg { p

吳恩達機器學習變數線性迴歸理論部分

理論部分 1.方程形式 在進行資料處理過程中,有時資料影象可擬合成單變數線性函式,即 2.如何擬合 此時,我們雖知道擬合函式的形式,但如何擬合仍是個問題,怎樣擬合可以最接近實際資料情況呢? 最小二乘法 此時我們引入代價函式這個概念 代價函式 接下來我們來分析如何

機器學習(二)——變數線性迴歸

一. 前言 本文繼續《機器學習(一)——單變數線性迴歸》的例子,介紹多維特徵中的線性迴歸問題,並通過矩陣計算的方法優化機器學習的計算效率。 二. 模型表示 現在我們對房價預測模型增加更多的特徵值,如房間數、樓層、房屋年限等,構成一個多變數的模型,模型中

跟著吳恩達學習機器學習 5變數線性迴歸

1 多維特徵 在之前的單變數問題中,考慮的是房子的面積對房價的影響,實際上,地理位置、樓層、房子的臥室數量等都會對價格有影響。 上圖中分別列舉了樓層等其他影響對價格的影響,每一行資料表示多變數作用的房子價格。 Xi表示特徵矩陣的第j行(從1開始),j表示第j

機器學習變數線性迴歸(Linear Regression with One Variable)

1. 模型表達(Model Representation) 我們的第一個學習演算法是線性迴歸演算法,讓我們通過一個例子來開始。這個例子用來預測住房價格,我們使用一個數據集,該資料集包含俄勒岡州波特蘭市的住房價格。在這裡,我要根據不同房屋尺寸所售出的價格,畫出我的資料集: 我們來看這個資料集,如果你有一個朋

機器學習優雅落地線性迴歸

在統計學中,線性迴歸(Linear regression)是利用稱為線性迴歸方程的最小二乘函式對一個或多個自變數和因變數之間關係進行建模的一種迴歸分析維基百科。 簡單線性迴歸 當只有一個自變數的時候,成為簡單線性迴歸。 簡單線性迴歸模型的思路 為了得到一個簡單線性迴歸模型,假設存在以房屋面積為特徵

機器學習(一)——單變數線性迴歸

關鍵詞:線性迴歸、監督學習、模型、假設函式、代價函式、梯度遞降、學習率、訓練集 一.前言 前段時間在學習 Andrew Ng 的《機器學習課程》,個人認為這是一個非常適合新手學習機器學習的課程(即使你對線性代數,微積分、概率論等已經忘得差不多了)。這裡對

(吳恩達機器學習)單變數線性迴歸

單變數線性迴歸: 所謂單變數線性迴歸其實就是一元線性函式方程---Y=AX+B                 h為假設函式,x為自變數(輸入的資料),y為因變數(輸出的結果)。   &n

機器學習:單變數線性迴歸及梯度下降

***************************************** 注:本系列部落格是博主學習Stanford大學 Andrew Ng 教授的《機器學習》課程筆記。博主深感學過課程後,不進行總結很容易遺忘,根據課程加上自己對不明白問題的補充遂有此係列部落格。

深度學習變數線性迴歸

今天完成了多變數線性迴歸的程式設計練習,除了訓練引數theta以外,還要訓練學習速率alpha。資料下載地址 %x資料有兩個屬性:x(1)是房子的大小,x(2)是房子臥室的個數 %y資料是房子的價格

Andrew機器學習課程 章節4——變數線性迴歸

Normal equation:(正規方程) 其中:X為1列值為1的vector(其對應額外的特徵變數)+xi的轉置合併的矩陣。 正規方程與梯度下降相比較的優缺點: 優點:1.不需要設定初試的學習率α         2.不需

吳恩達機器學習-變數線性迴歸 吳恩達機器學習 - 變數線性迴歸

原 吳恩達機器學習 - 多變數線性迴歸 2018年06月18日 17:50:26 離殤灬孤狼 閱讀數:84 收起

機器學習筆記(參考吳恩達機器學習視訊筆記)04_變數線性迴歸

4 多變數線性迴歸 4.1 多維特徵 代表特徵矩陣中第i行的第j個特徵,也就是第i個訓練例項的第j個特徵。 支援多變數的假設函式h表示為:,其中,引入。此時模型中的引數是一個n+1維的向量,特徵矩陣X的維度是m*(n+1)。因此公式可以簡化為:。 4.2 多變數梯度下降 在多

#機器學習筆記01#變數線性迴歸

1多變數線性迴歸 1.1 回顧單變數線性迴歸 訓練集提出: Training set of housing prise 以房屋價格為例 Size in feet(x) Price in 1000’s (y) 2104 460 1416 2

【吳恩達機器學習筆記】第五章:變數線性迴歸

目錄 多特徵下的目標函式 多元梯度下降法 多元梯度下降法中的方法 特徵縮放 選擇學習率 特徵和多項式迴歸 正規方程(區別於迭代法的直接解法) 正規方程在矩陣不可逆的情況下的解決方法

吳恩達機器學習筆記 —— 5 變數線性迴歸

本篇主要講的是多變數的線性迴歸,從表示式的構建到矩陣的表示方法,再到損失函式和梯度下降求解方法,再到特徵的縮放標準化,梯度下降的自動收斂和學習率調整,特徵的常用構造方法、多維融合、高次項、平方根,最後基於正規方程的求解。 在平時遇到的一些問題,更多的是多特徵的 多變數的表示方法 多元線性迴歸中的損失

吳恩達機器學習程式設計題ex1下 變數線性迴歸: (python版含題目要求、程式碼、註解)

在這部分中,你將使用多變數線性迴歸去預測房屋價格,假設你要賣掉房子而且你想知什麼是一個好的市場價格,去做的一個方式就是首先收集最近出售的房子資訊並製作房屋價格的模型,檔案ex1data2/txt包含了一個房屋價格在Portland的訓練集,第一列是房子大小,第二列是臥室的