個人Machine Learning學習之路

從2016年年初,開始用python寫一個簡單的爬蟲,幫我收集一些數據。
6月份,開始學習Machine Learning的相關知識。
9月開始學習Spark和Scala。
如今想,整理一下思路。
先感謝下個人好友王峯給個人一些建議。他在Spark和Scala上有一些經驗,讓我前進的速度加快了一些。html

學習算法

做爲一個程序猿,之前屢次嘗試看過一些機器學習方面的書,其過程能夠說是步履闌珊,碰到的阻力很大。
主要緣由是,讀這些機器學習的書,須要有一些數學方面的背景。
問題就在這些數學背景上,這些背景不單單是數學技巧,也有一些共識。對於缺少這些背景的我,即便一個簡單的公式,也有時會感到困惑。
若是你像我同樣是一個程序猿,我建議讀Peter Harrington寫的Machine Learning in Action (中文書名是《機器學習實戰》)。
這本書是以開發者的知識背景來寫的,而且提供的python代碼能夠下載,方便開發人員理解。python

我寫了一些博文,主要做用是幫助我理解學習的算法。大部分寫的很差,後來我本身都看不懂。之後慢慢修正一下。
機器學習實戰 - 讀書筆記(03) - 決策樹
機器學習實戰 - 讀書筆記(04) - 樸素貝葉斯
機器學習實戰 - 讀書筆記(05) - Logistic迴歸
機器學習實戰 - 讀書筆記(06) – SVM支持向量機
機器學習實戰 - 讀書筆記(07) - 利用AdaBoost元算法提升分類性能
機器學習實戰 - 讀書筆記(08) - 預測數值型數據:迴歸
機器學習實戰 - 讀書筆記(10) - 利用K-均值聚類算法對未標註數據分組
機器學習實戰 - 讀書筆記(11) - 使用Apriori算法進行關聯分析
機器學習實戰 - 讀書筆記(12) - 使用FP-growth算法來高效發現頻繁項集
機器學習實戰 - 讀書筆記(13) - 利用PCA來簡化數據
機器學習實戰 - 讀書筆記(14) - 利用SVD簡化數據程序員

學習算法的Level

  • Level 1: 瞭解如何使用算法算法

  • Level 2: 瞭解算法的正確使用場景
    正確的使用一個算法,須要經驗和對算法理論的瞭解。
    我之前有些這方面的經驗,不少錯誤在於不正確地使用了算法。
    當咱們編程序給別人用時:
    • 須要理解算法
      最低要求,也要有一些基本的統計知識。編程

    • 須要實現算法
      實現算法通常比較簡單,須要注意性能和精度。
      基本上這部分在實現好後,比較穩定。架構

    • 須要實現將用戶數據應用到算法上的過程。
      這是程序員主要乾的工做,接口、性能上的考慮不少。機器學習

    • 須要理解用戶的使用場景。
      這部分價值很大。
      一方面,寫單元測試是不可避免的,理解用戶的場景才能寫出有效的單元測試程序。
      另外,會有不少處理客戶問題的工做,也是長經驗的機會。函數式編程

  • Level 3: 瞭解算法的後面的數學理論
    有人以爲這個用處不大。我以爲了解數學理論,能夠:
    • 成爲真正的行家
    • 將來的路還很遠,怎麼能戛然而止!
    • 使用算法來幫助本身的一些事情,或者實現一個新的算法。
    • 如今人工智能的潛力很大,能夠本身好好玩玩。

學習python

在數據量不大的狀況下(幾個G),單機上就能夠很好跑機器學習的程序。
這時,Python的用途就很大,不只有已經實現好的算法,也能夠實現爬蟲,從網上獲取數據。函數

學習Scala和函數式編程

對於大數據處理來講,Spark和Scala結合是如今的大趨勢。
我寫的博文有:
學習Scala: 初學者應該瞭解的知識
函數式編程 : 一個程序猿進化的故事
Scala underscore的用途
不變(Invariant), 協變(Covarinat), 逆變(Contravariant) : 一個程序猿進化的故事
Scala Collection簡介
Scala on Visual Studio Code性能

學習Spark架構

我寫的博文有:
Spark集羣 + Akka + Kafka + Scala 開發(1) : 配置開發環境
Spark集羣 + Akka + Kafka + Scala 開發(2) : 開發一個Spark應用
Spark集羣 + Akka + Kafka + Scala 開發(3) : 開發一個Akka + Spark的應用
Spark集羣 + Akka + Kafka + Scala 開發(4) : 開發一個Kafka + Spark的應用

學習在Spark上的機器學習項目開發經驗

學習更多的算法

蒙特卡洛樹算法

成爲Spark的Contributer

成爲Spark的Contributer是件很cool的事。

  • 能夠讀讀Spark的代碼,從中應該能夠增加很多。
  • 而後,嘗試修一些Spark的Bugs。

深度學習

路還很長。

相關文章
相關標籤/搜索