machine-learning-ex1機(jī)器學(xué)習(xí)練習(xí)題ex1分析

????????我前面說過,提高記憶的最好方法最好就是做個(gè)小測(cè)驗(yàn)、作業(yè)、實(shí)戰(zhàn)、review or something。只要你做過以上這些動(dòng)作,大腦又會(huì)有新一輪的總結(jié)。

????????machine-learning-ex1是我的第一次提交程序小作業(yè)。由于對(duì)每一個(gè)問題都深而細(xì)地研究,所以做的時(shí)間比較長。打開ex1.m我們可以發(fā)現(xiàn)各個(gè)步驟的作業(yè)都封裝在主程序ex1.m里面,目的是讓大家深入淺出循序漸進(jìn)地理解每一個(gè)步驟每一個(gè)公式的含義(吳教授的用心良苦?。?。

作業(yè)的第一部分warmUpExercies.m大概就是熱個(gè)身,這個(gè)沒什么好說的了。

作業(yè)的第二部分是畫圖,完善plotData,這個(gè)plotData的Hint其實(shí)給了很大的提示,而且也是課程視頻里面講過實(shí)現(xiàn)方法,也沒什么好說的了。xlabel和ylabel是對(duì)應(yīng)的x軸y軸顯示文字標(biāo)簽。

plot(x, y, 'rx', 'MarkerSize', 10);

xlabel('Population of City in 10,000s');

ylabel('Profit in $10,000s');

第三部分:computeCost。

Hyposthesis = X * theta;

Temp = (Hyposthesis - y).^2;

J = sum(Temp) / (2*m);

用一句話就是

J = sum((X * theta - y).^2) / (2*m)

最后算出來的答案是:54.24

剛開始我用的是for循環(huán)慢慢理解,對(duì)于新人來說,一開始就要從最基本的for循環(huán)求和開始理解,才慢慢地,用一步解決。一步到位雖然簡單明了,但是很多新人沒搞懂。彎路是最好的捷徑。

????????接著就是gradientDescent求theta最優(yōu)解。這部分的詳細(xì)分解我已經(jīng)在文章說過,也不細(xì)細(xì)說。最先要從for循環(huán)開始,一層一層嵌套,就像剝洋蔥一樣,到最后理解會(huì)非常清晰。答案是-3.6303 1.1664。

最后一部分就是畫圖,讓你可以清晰看見J和梯度算法的可視化

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容