如何通過Python機(jī)器學(xué)習(xí)提高您的編程技能
在本文中,將介紹Packt編寫的Python Machine Learning,第三版,對于已經(jīng)具有ML和數(shù)據(jù)科學(xué)基礎(chǔ)知識的開發(fā)人員來說,這是一個(gè)很好的資源。
掌握數(shù)學(xué)和編程技巧
即時(shí)而言,Python機(jī)器學(xué)習(xí)不適用于業(yè)余愛好者。作者假定您具有可靠的Python命令。本書使用了一些高級列表和收集功能。(非常感謝)還有一些面向?qū)ο蟮木幊碳夹g(shù),使您可以將可重用的組件用于您的機(jī)器學(xué)習(xí)程序。
您還需要具有NumPy,Pandas和Matplotlib等數(shù)據(jù)科學(xué)庫的基礎(chǔ)知識,盡管本書對它們的功能進(jìn)行了更詳細(xì)的介紹。
除非您對數(shù)據(jù)科學(xué),微積分和統(tǒng)計(jì)的基礎(chǔ)知識有一定的了解,否則您會發(fā)現(xiàn)Python Machine Learning有點(diǎn)復(fù)雜和混亂。數(shù)學(xué)比入門書籍要復(fù)雜得多。您會發(fā)現(xiàn)很多用于損失函數(shù),正則化函數(shù),感知器,神經(jīng)網(wǎng)絡(luò)等的演算公式。
但是Python機(jī)器學(xué)習(xí)的作者通過示例和逐步的編碼經(jīng)驗(yàn)在解釋這些公式方面做得很好。這些示例使內(nèi)容可供更廣泛的讀者訪問,并使該書與為學(xué)術(shù)讀者編寫的教科書區(qū)分開。
也有很多相關(guān)論文的參考文獻(xiàn),它們提供了有關(guān)不同機(jī)器學(xué)習(xí)和深度學(xué)習(xí)概念的深入解釋,如果您想進(jìn)一步擴(kuò)展在Python機(jī)器學(xué)習(xí)中學(xué)習(xí)的知識,這將非常有用。
對機(jī)器學(xué)習(xí)的一些面向?qū)ο蟮臒釔?/strong>
大多數(shù)機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)書籍都專注于編寫結(jié)構(gòu)化代碼,并依賴于在示例之間復(fù)制和粘貼代碼。另一方面,Python機(jī)器學(xué)習(xí)引入了面向?qū)ο蟮母拍顏韯?chuàng)建簡潔且可重用的代碼,這是我真正喜歡的。
當(dāng)然,對于不熟悉繼承,抽象和多態(tài)性等概念的開發(fā)人員,OOP的引入使本書變得更加復(fù)雜。但是有可能,如果您想在構(gòu)建機(jī)器學(xué)習(xí)應(yīng)用程序方面取得成功,就需要OOP技能。
Python機(jī)器學(xué)習(xí)還提供了sklearn的強(qiáng)大層次分解。這將幫助您更好地理解和利用您將在機(jī)器學(xué)習(xí)項(xiàng)目中經(jīng)常使用的Python庫之一的功能。
DIY機(jī)器學(xué)習(xí)方法
Python機(jī)器學(xué)習(xí)真正吸引人的一件事是對機(jī)器學(xué)習(xí)庫的某些基本組件進(jìn)行的自行完成方法。您可以從頭開始創(chuàng)建自己的感知器類,這使您對神經(jīng)網(wǎng)絡(luò)的工作方式有了非常扎實(shí)的認(rèn)識。稍后,您將在感知器的組件上進(jìn)行構(gòu)建,以了解其他神經(jīng)網(wǎng)絡(luò)概念,例如隨機(jī)梯度下降(SGD),反向傳播和卷積。我看過幾本解釋神經(jīng)網(wǎng)絡(luò)工作原理的書和課程,但這是到目前為止我所見過的最全面,最動(dòng)手的文字。
您還可以重新創(chuàng)建一些基本的機(jī)器學(xué)習(xí)算法,例如主成分分析(PCA),這可以幫助您更好地掌握算法的每個(gè)超參數(shù)的效果。您在本書中構(gòu)建的自定義算法效率不高,僅用于教育目的。然后,Python Machine Learning的作者在Scikit-learn和TensorFlow中介紹了這些算法的等效項(xiàng)。
您將在Python機(jī)器學(xué)習(xí)中找到的另一個(gè)很棒的功能是一章,它引導(dǎo)您完成將機(jī)器學(xué)習(xí)算法集成到實(shí)際應(yīng)用程序中的過程。您將創(chuàng)建一個(gè)由后端中的機(jī)器學(xué)習(xí)算法支持的Web應(yīng)用程序。公平地講,該應(yīng)用程序是粗糙的,但重點(diǎn)是要說明這些不同部分如何組合在一起,并且作者在此方面做得很好。
豐富的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法
在評估機(jī)器學(xué)習(xí)書籍時(shí),要考慮的一件事是您要探索的算法花名冊。在這方面,Python機(jī)器學(xué)習(xí)并不令人失望。它帶您了解基本的有監(jiān)督和無監(jiān)督機(jī)器學(xué)習(xí)算法,例如線性和邏輯回歸,支持向量機(jī),決策樹和隨機(jī)森林以及k均值聚類。除此之外,它還增加了一些討論較少的算法,例如聚集聚類和DBSCAN。
其中很多可能與您在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)入門書籍中已經(jīng)閱讀的內(nèi)容重疊,但是非常歡迎Python機(jī)器學(xué)習(xí)為每個(gè)主題帶來的深度。
Python機(jī)器學(xué)習(xí)還將帶您了解入門書籍中找不到的一些算法和功能,例如使用mlextend可視化不同數(shù)據(jù)集特征之間的相關(guān)性或?qū)貧w模型進(jìn)行全面評估。
本書的深度學(xué)習(xí)部分提供了許多有用的理論材料和有關(guān)不同類型的神經(jīng)網(wǎng)絡(luò)的動(dòng)手經(jīng)驗(yàn)。您將通過TensorFlow和Keras使用完全連接的,循環(huán)的和卷積神經(jīng)網(wǎng)絡(luò)。這本書包含一個(gè)完整的部分,直觀地解釋了TensorFlow組件背后的邏輯,該主題通常很難引起您的注意。
與本書的其余部分一樣,深度學(xué)習(xí)部分也是由示例驅(qū)動(dòng)的。在本書的最后,您將訪問一些高級結(jié)構(gòu),例如變壓器和生成對抗網(wǎng)絡(luò)。關(guān)于強(qiáng)化學(xué)習(xí),還有一個(gè)介紹性的章節(jié),您將在其中使用流行的OpenAI Gym庫。
讓人有些失望的是自然語言處理的RNN部分,其中示例代碼突然結(jié)束,而沒有測試模型的部分。
總結(jié)思想
與以前的版本一樣,Python機(jī)器學(xué)習(xí)第三版對于那些已經(jīng)精通機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)基礎(chǔ)知識的開發(fā)人員來說是一本很好的書。它不會使您成為準(zhǔn)備以六位數(shù)的薪水準(zhǔn)備就緒的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)專家,但它無疑將為機(jī)器學(xué)習(xí)的更高級探索奠定基礎(chǔ)。
下一步是什么?根據(jù)您感興趣的領(lǐng)域,我建議您選擇一本專門針對計(jì)算機(jī)視覺,自然語言處理或強(qiáng)化學(xué)習(xí)的書或課程。