摘要:給你們簡單介紹了多變量線性迴歸,還附贈在處理梯度降低過程當中通用的兩個小技巧。
本文分享自華爲雲社區《【跟着小Mi一塊兒機器學習吧!】多變量線性迴歸(一)》,原文做者:Skytier。算法
如今咱們有四個特徵變量,以下圖:
segmentfault
詳細來講,這個假設是爲了預測以萬爲單位的房屋價格,一個房子的基本的價格多是80w,加上每平方米1000元,而後價格會隨着樓層數的增長繼續增加,隨着臥室數的增長而增長,可是呢,隨着使用年數的增長而貶值,這麼一看這個例子是否是頗有道理!
機器學習
好了,多變量線性迴歸假設的形式已經有了,也就是說料已經有了,接下來就要開始炒菜啦!
函數
求導數後可獲得:
學習
代碼示例:測試
計算代價函數:
spa
Python代碼:code
def computeCost(X, y, theta): inner = np.power(((X * theta.T) - y), 2) return np.sum(inner) / (2 * len(X))
接下來,咱們將學習一些在梯度降低運算中的實用技巧,首先給你們介紹一個稱爲特徵縮放的方法,這個方法以下:
blog
梯度降低算法收斂所須要的迭代次數根據模型的不一樣而不一樣,咱們不能提早預知,咱們能夠繪製迭代次數和代價函數的圖表來觀測算法在什麼時候趨於收斂。get
也有一些自動測試是否收斂的方法,例如將代價函數的變化值小於某個閥值(例如0.001),那麼測試就斷定函數已經收斂,可是選擇一個合適的閾值是至關困難的,所以,爲了檢測梯度降低算法是否收斂,更傾向於經過看曲線圖,而不是依靠自動收斂測試。