雖然沒有強制要求羡微,最好還是通過縮進來表達邏輯關(guān)系
整個if結(jié)束了才用end
因為之前是按照上課演示的敲攻冷,發(fā)現(xiàn)每個條件后面都會跟一個逗號丈攒,所以測試一下沒有逗號是否可以運行
向量化(Vectorization):
向量化是指將數(shù)據(jù)通過矩陣和向量的方式進行計算,使得過程更易于理解也更易于編寫
對于很多數(shù)據(jù)狞甚,如果直接計算則需要多個for循環(huán)锁摔,不僅麻煩還不好理解,以假設(shè)函數(shù)為例:
在未向量化之前哼审,我們?nèi)粝肭骽(x)谐腰,代碼如上圖中一般用過for循環(huán),不易理解且繁瑣涩盾,然而若通過向量化十气,直接θ'*X得到假設(shè)值的向量矩陣
下求梯度下降法的向量化:
假設(shè)特征數(shù)為2,假設(shè)方程為h(x)
此時要不斷循環(huán)
于是對于θ中的每一項都得寫個for循環(huán)進行賦值
此時將整個賦值過程旁赊,改為:
其中 α 仍為學習速率桦踊,是一個實數(shù)椅野,而 θ 和 δ 都是一個n+1維的向量终畅,其中 θ為:
根據(jù)定義 δ 應為:
改為矩陣表示為:
左邊的矩陣就是X的矩陣的轉(zhuǎn)置,而右邊的矩陣可通過h(x)的向量減去y得到竟闪,最終計算的過程應為:
一步可以直接計算离福,非常方便