From Spark Machine Learning to TensorFlow Deep Learning


今年剛runMachine Learning案子, 一邊著手整理這段期間運用的Apache Spark技術, 以及一些Hadoop Spark的觀念想法; 在收集資料, 與重新檢視Blog內容期間不由自主地湧進了許多的想法, 於是, 決定重新來架構整份文章內容, 從原本規畫的Spark技術語法, 和模型建構執行過程, 擴大到以三部曲的模式, 架構一套完整的人工智能系列文章。期望達到的目標有:

ü   以當前主流的Big Data平台:Spark Deep Learning平台: TensorFlow, 撰寫sample codes與實作應用分享

ü   補強Blog   Random Forests系列文章中, 所欠缺的Model Evaluation Algorithm Optimization, 以及Machine Learning專案實作上, 需要運用到的零零種種技術細節

先分享一份Random Forests模型和各Machine Learning的比較表


三部曲的順序為:
1.          Building Machine Learning Models on Apache Spark
2.          Deep Learning implementation by TensorFlow
3.          Cluster and Dimensionality Reduction using Scikit-learn



繼續閱讀...

Introduction to empirical Bayes estimation (with R code)


延續上一篇關於Bayesian Statistics的研究, 本篇Post將進一步闡述貝氏統計的應用。以下的內容與程式碼主要翻譯自此post: http://varianceexplained.org/r/empirical_bayes_baseball/ . 這篇文章主要為研讀之後的整理和其他發想。


下列兩個比率數字, 哪個比較大?
     裝有10個球的盒子中有4個紅球和6個白球 è 紅球的比例?
     裝有1000個球的袋子裡有300個紅球和700個白球 è 紅球的比例?

     很明顯, 當然是 4/10 = 0.4 大於 300/1000=0.3

     但是, 假設今天你是球隊老闆, 正在評估兩位潛力球員。你以下列兩位球員的打擊成績做為評估標準:
     球員A上場10,擊出4支安打
     球員B上場1000,共擊出300支安打
     雖然球員A有較高的打擊率, 但是僅僅10次的打擊紀錄, 並無法提供足夠的可信度。一般職棒選手的打擊率大約為0.27, 球員A高達四成的打擊率,期中運氣的成分居多; 反倒球員B 1000次的打擊紀錄, 較能證明他是一個優於平均的打擊者。


Empirical Bayes estimation
     這篇文章同樣將使用棒球比賽的例子, 來說明一個十分有效用以估計資料比率的統計技術, 來幫助我們分析類似下列的數據資料:

表一
Success
Total
11
104
82
1351
2
26
0
40
1203
7592
5
166




一般我們可能取得表一這種success(成功)/total(總計)成對型式的數據, 然後用以估計特定事件的成功比率。每筆資料可能代表著:

  • 廣告點擊率:公司投放了許多不同的廣告, 你想知道哪一個有比較高的Clickthrough rates?
  • 網站使用者類型: 你想知道到訪公司網站的使用者, 有多少會點擊閱讀一篇文章, 或是點擊某個商品後決定購買?


繼續閱讀...

Bayesian Data Analysis and Modeling (with R code)


貝氏定理(Bayes' Theorem), 這個過去我們在研讀統計學的條件機率時,才會被稍微帶過的統計理論, 在近年來越來越受各界的重視與關注, 甚至在歐美國家有學者建議傳統以"Frequentist" statistics為基礎的統計教學,應該改用貝氏統計理論取代!

會重新關注並開始學習Bayesian Statistics, 是翻閱了Nate SilverThe Signal and the Noise : Why So Many Predictions Fail--but Some Don't (中文書名: 精準預測:如何從巨量雜訊中,看出重要的訊息?)





Google這本書,就會看到非常多中英文評論大力推薦, 就不在這贅述, 而當初會翻閱的原因, 是想看看書裡面有沒透露甚麼不一樣的預測模型? 這是一本非技術性的商業文章, 書中提到大量的想法和案例故事, 但是對於如何進行預測與模型建立的細節, 其實是付之闕如的, 而唯一提到的一個方法論, 就是Bayesian Statistics 也因如此, 開始了我Bayesian Data Analysis的學習旅程。

Machine Learning vs. Bayesian Statistics

        機器學習(Machine Learning)技術的一個核心概念是,透過不斷地累積對資料的觀察, 電腦可以透過演算法, 自動演進對於學習標的的理解; 而在傳統程式開發上, 若要對新的資訊進行處理, 則是需要透過程式碼的修改, 才能讓電腦處理之前系統程式中沒有考慮到的部分。在這一個部分, Bayesian Statistics有著相似的概念。以統計學中最常使用的丟銅板為例, 推算一個銅板出現正面的機率, 是依照累積觀察每次丟銅板出現正面的次數, 計算在觀察到的實際資訊下銅板出現正面的機率:

繼續閱讀...