集成學習是一種通過結合多個模型來提升機器學習預測性能的方法。相較於單一模型,集成學習能產生更準確且穩定的結果,其核心理念是訓練一組分類器(或專家),並通過集體投票來決策。Bagging 和 Boosting 是集成學習中常見的兩種技術,這兩者都能減少單一模型的方差,從而提升模型的穩定性。Bagging跟Boosting 同為同質弱學習器模型,但其工作方式不同,我們將深入探討這兩者之間的差異。
集成學習是一種通過結合多個模型來提升機器學習預測性能的方法。相較於單一模型,集成學習能產生更準確且穩定的結果,其核心理念是訓練一組分類器(或專家),並通過集體投票來決策。Bagging 和 Boosting 是集成學習中常見的兩種技術,這兩者都能減少單一模型的方差,從而提升模型的穩定性。Bagging跟Boosting 同為同質弱學習器模型,但其工作方式不同,我們將深入探討這兩者之間的差異。
XGBoost,全名為 Extreme Gradient Boosting,是一種先進的機器學習算法,特別適合於分類和回歸任務。自 2016 年由陳天奇推出以來,XGBoost 以其卓越的性能和靈活性迅速成為數據科學領域的熱門工具,被廣泛應用於許多實際問題中,特別是在Kaggle的競賽中經常會見到。
筆者過去曾寫過用R執行KNN(K-Nearest Neighbors)分析(https://reurl.cc/qV5Xzp)的文章,筆者這篇將針對KNN的起源跟原理進行介紹及說明。
支持向量機(Support Vector Machine,SVM)是一種重要的機器學習算法,被廣泛應用於分類和回歸分析等任務。它的起源可以追溯到上個世紀60年代,由兩位蘇聯數學家Vladimir Vapnik (弗拉基米爾·瓦普尼克)和Alexey Chervonenkis (亞歷克塞·澤范蘭傑斯)首次提出。在本文中,我們將分別討論SVM的起源、發展歷程以及其在在機器學習中的優點及缺點。
在機器學習的領域當中,有著各式各樣的演算法,但往往為了要使用這些演算法,會需要透過寫程式的方式來去使用這些方法,雖然現在統計軟體(例如: R、Python)在呼叫這些演算法所下的指令不是說非常的長,有些時候甚至相當簡單的指令就能使用需要的演算法,但對於沒有寫程式經驗的機器學習初學者來說,還是有一定的進入障礙。所幸還是有一些不需要寫程式的機器學習工具可以使用,例如Weka,筆者第一次接觸Weka是在大學上資料探勘課程的時候,筆者大學的時候機器學習還沒有像現在那麼多課程跟工具可用(應該距今至少十年吧),因此Weka這個工具可以發展那麼久都還沒有停止更新,想必有其過人之處,因此筆者想介紹Weka給機器學習的初學者們。
Weka是紐西蘭懷卡托大學機器學習實驗室專為「學習資料探勘」所開發的Java軟體,Weka是懷卡托智慧分析系統的縮寫。Weka限制在GNU通用官方證書的條件下發佈(開源工具),幾乎可以運行在所有作業系統平台上,包括Linux、Windows、Mac OS等。Weka包含完整的資料探勘處理流程,包含(1)資料前處理工具、(2)機器學習演算法、(3)成效評估方法、(4)資訊視覺化報表摘要,最大的優點在於兼具圖像化的使用介面以及寫指令的介面,因此不管是不懂寫程式的初學者以及老手都可以充分做使用,此外,Weka也可以持續擴充新的演算法,因此不用擔心不支援主流的演算法。目前下載最新版本的Weka是3.8.6版,以下的操作就已最新版本做示範。
這次的內容會針對如何在R語言執行XGBoost作介紹,主要會根據筆者參考資料中XGBoost R Tutorial的章節作介紹,XGBoost的全名是eXtreme Gradient Boosting,最早是在2014年由陳天奇開發,此種演算法在Kaggle的比賽中大殺四方,因此獲得了大量建模使用者的青睞。筆者之前有針對XGBoost的原理做比較深入的介紹,有興趣的讀者可以參考XGBoost演算法-eXtreme Gradient Boosting(極限梯度提升)-1/3、XGBoost演算法-eXtreme Gradient Boosting(極限梯度提升)-2/3的文章。
梯度提升(Gradient Boosting)是一種boosting的演算法,最早的論文是「Greedy Function Approximation: A Gradient Boosting Machine」,目前已被引用約15,000次,此種演算法可以應用到很多模型上,但是最常見的是用到決策樹(Decision tree)上,也就是GBDT(Gradient Boosting Decision Tree)。
機器學習領域在做演算法的訓練目標通常是為了優化或最小化損失函數(loss Function),Gradient boosting的核心精神是迭代出多個(M個)弱的演算法,然後將M個弱模型的預測結果相加,後面的模型Fm+1(x)基於前面學習模型的Fm(x)的效果生成的,關係如下:
機器學習中,有一個分支為集成式學習(ensemble learning),顧名思義,集成式學習不是指單一的演算法框架,是一種團體的合作演算法框架,既然一個演算法無法得到好的預測結果,那如果是把不同方法用來訓練,理論上,應該會得到更好的預測結果,集成式學習就是這樣的概念。集成式的做法包含了Bagging、Boosting、Stacking,預測的準不準基本上有兩個面向,”Bias”跟”Variance”,詳細的介紹可參考筆者之前寫過的文章(機器學習-Bias-Variance Tradeoff),所有的機器學習模式不外乎想降低”Bias”跟”Variance”來得到更好的預測結果,但Bias跟Variance從下圖來看就是一種取捨的過程,所以各種機器學習的優化糾是想在這兩個概念中取得最佳的平衡。
<源起>
LDA最早是1936年由RA. Fisher(現代統計學之父)發展,可用於解決二元分類的問題,之後也拓展成解決多分類的問題。在機器學習的領域,LDA可做為資料降維的工具,至於為什麼要降維,可參考筆者之前寫過的文章(https://reurl.cc/7y1zON),裡面有完整的介紹,降維的目的主要是為了避免機器學習的模型的分類或迴歸能力會開始隨維度的增加而下降(如圖一所示)。
近期受託處理客戶申請的臺灣人體生物資料庫全基因體定型資料(Whole-genome genotyping),此資料庫研究個案計27000人;欲納入檢驗之情感性精神疾患相關基因序列亦有近13000組。我們在不斷試誤此研究個案甚多、檢驗變項也甚多的資料後,深感精煉精確的建置統計語法的重要性,在此分享我們的分析經驗,提供大家後續面對大筆資料時可以使用有效率且節省系統資源的處理方式。
在上一篇文章中,筆者介紹了雙變數的趨勢分析(Bivariate analysis / univariate analysis)的SPSS操作程序與報表解讀,不過當我們要考慮控制變項(Control variable or covariate)時,就必須使用多變項分析(Multivariable analysis),本篇文章將介紹在調整其他變項效果之下的趨勢分析。
在開始示範操作程序之前,要先釐清一個重要的觀念,通常我們看到的「P trend」指的都是「線性趨勢」(Linear trend),也就是一次方的直線關係。除了直線關係之外,也有可能存在著曲線關係,常見的有二次方(Quadratic)及三次方(Cubic)的趨勢,在此先不詳細介紹曲線關係,本文焦點在於介紹直線關係的趨勢分析。
筆者在不久之前簡介了「P trend」(趨勢分析)的應用時機與基本概念(http://goo.gl/CjfyWf),受到不少讀者的迴響,並且希望可以示範統計軟體的實作,因此本篇文章先以雙變數分析(Bivariate analysis / univariate analysis)為例,以SPSS 22版操作並且簡單解讀結果。
我在前一篇「用SPSS來作RFM行銷分析(一)」中舉的例子是用交易資料,即每一筆是一次交易,故可能多筆是屬於同一客戶的。如果已經將同一客戶的多次加總綜合成一筆,則為用客戶資料。如下圖所示。
上次提到使用NodeXL分析email來往狀況,這次筆者繼續來分析台灣健保資料庫研究的熱絡狀況。
本公司林星帆顧問曾在2014年8月一篇文章中提到,健保資料庫(National health insurance research database, NHIRD)已經是醫學領域的顯學,2012年後每年至有200-300篇的文章被刊登,並且速度仍在增加當中。
之前針對於探索性因素分析(Exploratory factor analysis, EFA)我已經寫過不少篇文章在介紹其使用時機、注意事項及其與驗證性因素分析(Confirmatory factor analysis, CFA)的不同,不過在實務上我們有協助一些學術研究者處理因素分析的結果,接著作後續的分析並且投稿,因此也接受到不少審稿者的意見與質疑,本篇文章擬將這些常問到的問題作個整理,提供給各位讀者做為未來投稿時呈現因素分析結果的參考。
最近去參加了聯合通商公司(和碩集團子公司)舉辦的產品說明會,想要了解一下如何在商業領域應用統計分析來協助決策,說明會的地點舉辦在遠東國際飯店的洛北園,場地十分高雅,大約可以坐50人,當天也是坐的滿滿滿,看來的確有許多商業人士對這一塊有興趣。
8/7日,我參加了由奇美醫學中心舉辦的一場有趣的研討會,主題是「如何利用Rasch分析發表SCI(註1)論文(http://www.healthup.org.tw/rasch/)」,這對還在與博士論文或教授升等搏鬥中的人來說,這個絕對是一個很吸引人的研討會。有趣的是,這樣的研討會不是應該由大學或計量研究中心等學術機來辦才對嗎?怎麼會是醫學中心來辦呢?