上手機器學習系列-第2篇-工具&學習資料準備篇

上手機器學習系列-第2篇-工具&學習資料準備篇

工欲善其事,必先利其器。既然機器學習是一門實踐性科學,那麼過程中就非常重視動手能力了。本期爲大家推薦一些相關的軟件工具、學習資源,以期在正式開始編碼之前讓大家做好相應的準備工作。因爲可以選擇的平臺與工具太多,反而是一種信息干擾,這裏筆者結合多年行業工作經驗爲大家遴選出一些比較好的資料,以節約朋友們的自我探索時間。

1. 編程環境

現如今支持機器學習的軟件可謂層出不窮,但要論普及度及易用度,還是首推[Python]的生態。

1.1 Python本身

從下面這張最新的2020年2月份[TIOBE編程語言排行榜]就可以看出,自從2018年以來Python的流行度加速攀升,這裏面從深度學習的工業實踐更多擁抱Python受益匪淺。其實早在筆者2012年參加工作的時候開始,Python就已經在企業內部非常火了,很多系統端的開發也開始從Java遷往Python。業界廣爲流傳的一句戲稱“人生苦短,我用Python”,也充分證明了這門語言的深得人心。其實這門語言上手還是非常快的,建議大家先去初步掌握一下這門語言,後面我們的公衆號文章也更多地會結合Python來講解。目前Python已經發布到了3.8版本,同學們學習的時候可以直接使用最新版本,注意Python的3.0以後版本與2.x 是基本不兼容的,所以初步者就當2.0x不存在好了(官方已經不再維護),也不要再去使用。
在這裏插入圖片描述

如果僅安裝Python官方版本,後續會有很多package需要自己去安裝。而工業界已經有一款非常綜合性的平臺可以快速建立起一整套Python的工作環境,即下圖所示的[Anaconda]:
(img)
因此推薦初學者直接安裝該軟件,它內置了大量好用的Python庫資源,省去了自己安裝的時間成本。但缺點是這個軟件比較大(超2G),而且裏面很多東西未必經常使用,對比較有經驗的朋友來說就顯得有點笨重。

現在企業界的朋友比較喜歡哪一款呢?答案是[Jupyter Notebook]:
(img)
這是一款輕量級的平臺,在電腦本地瀏覽器頁面中即可享受編程、可視化等一站式的玩轉數據過程。現在還推出了最新的JupyterLab,稱爲下一代的notebook工作環境,相當值得入手體驗。

小結一下,初步者建議使用Anaconda,未來建議體驗JupyterLab。

1.2 Python+機器學習

對於機器學習來說,Python生態內的[scikit-learn]簡直就是神兵利器!
(img)
它內置了大量的機器學習算法包,可以讓初步者快速找到很好用的成熟軟件包,工作效率真是嘎嘎的。而且,如果大家安裝了上面的Anaconda,那麼就已經默認安裝好了這個scikitlearn的package,開箱即可用。

1.3 提一下分佈式

對於入門學習來說,在筆記本上安裝一個Python可能確實就夠用了,但是未來如果進入互聯網公司工作,瞭解分佈式平臺肯定是需要的。這裏筆者給大家推薦Spark這個平臺。
(img)
這是一套分佈式迭代計算平臺,在工業界使用非常普遍,支持Scala、Java、Python、R等多種語言。其中有專門用於機器學習的ML模塊,和用於圖計算的GraphX模塊,唯一還不擅長的就是深度學習了。

2. 周邊資源

學機器學習不能光學理論,也要借鑑1W小時理論的說法,勤加練習,這裏就需要不斷地拿一些數據集來練習,也需要找不同的案例來嘗試。以下幾個資源建議關注:
(1) 數據集。
[UCI機器學習數據集]
[Kaggle數據集]
[亞馬遜開放數據集]
一開始不用求多,找一些經典的數據集來掌握機器學習的過程與優化要點即可。

(2)建模練習。
優先推薦 [Kaggle],這上面有大量的比賽案例、數據集、他人的代碼,是個很好的學習資料來源;
其次推薦在線教育網站[Udacity],上面有一部分是免費課程,一部分要收費。這個項目的特點是很重視代碼實踐,練習題設計得難易適中。

交流羣

歡迎關注本人公衆號:
在這裏插入圖片描述

爲方便大家交流與提問,可加入以下微信羣或QQ羣:
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章