從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 1: 瞭解如何使用算法算法
須要理解算法
最低要求,也要有一些基本的統計知識。編程
須要實現算法
實現算法通常比較簡單,須要注意性能和精度。
基本上這部分在實現好後,比較穩定。架構
須要實現將用戶數據應用到算法上的過程。
這是程序員主要乾的工做,接口、性能上的考慮不少。機器學習
須要理解用戶的使用場景。
這部分價值很大。
一方面,寫單元測試是不可避免的,理解用戶的場景才能寫出有效的單元測試程序。
另外,會有不少處理客戶問題的工做,也是長經驗的機會。函數式編程
在數據量不大的狀況下(幾個G),單機上就能夠很好跑機器學習的程序。
這時,Python的用途就很大,不只有已經實現好的算法,也能夠實現爬蟲,從網上獲取數據。函數
對於大數據處理來講,Spark和Scala結合是如今的大趨勢。
我寫的博文有:
學習Scala: 初學者應該瞭解的知識
函數式編程 : 一個程序猿進化的故事
Scala underscore的用途
不變(Invariant), 協變(Covarinat), 逆變(Contravariant) : 一個程序猿進化的故事
Scala Collection簡介
Scala on Visual Studio Code性能
我寫的博文有:
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的Contributer是件很cool的事。
路還很長。