一般來說機器學習大致可以分為以下幾種類型:監督式學習(Supervised learning)、非監督式學習(Un-supervised learning)、半監督式學習(Semi-supervised learning)及強化學習(Reinforcement learning)。
本次筆者先從監督式學習(概念就是產生一個預測模式)開始介紹監督式學習(Supervised learning)à目的在於預測(基於使用者手上已經有每一個人目標變數的答案)
Y = f(X)
- Y代表你想要預測的目標類型(類別型資料 or 連續型資料)
- X代表你考慮的特徵(參數)
根據目的(Y的目標類型)可分為兩類
A)分類 (Classification): 例如:預測病人是否得病
常見的演算法有下列幾種:
1.Logistic regression:類似於一般的線性回歸,只不過Y變成二元分類變項 (例如:是否得病)
2.Decision tree (決策樹)
分類樹:當決策目標為分類變項(例如:今天會不會出門)
回歸樹: 當決策目標為連續變項(例如:房價)
<優點>
可同時處理資料中的連續變項及類別變項
模型與資料配適度高
可用於找到重要變項,可以很清楚明白分類的模式
<缺點>
對資料點特徵數或資料量太少,反而分析效率會更差
同一個分類法會出現在同一個法則,之後解釋可能會出現問題(所以必須做適當的決策樹剪枝)
3.Naive Bayes:把主觀的意見加入客觀的分析的過程,常用於語言資料的處理,例如計算A very close game這個句子是體育運動的機率以及它不是體育運動的機率
<優點>
樣本大與樣本小都適用
適合多分類的情境(類別資料)
計算不複雜
<缺點>
未考慮特徵之間的相關性(假設是每一個特徵彼此是獨立的)
連續型資料必須假設滿足某一分布(必須有先驗分布的假設)
4.KNN算法 (K近鄰法): KNN分類中,Outcome是一個分類變項。一個物件的分類是由其鄰居的「數量」去決定的,K個最近鄰居(K為正整數,通常較小)中最常見的分類決定了賦予該物件的類別。若K = 1,則該物件的類別直接由最近的一個節點賦予。KNN回歸中Outcome是連續變項。該值是其K個最近鄰居的值的平均。
<優點>
資料分析前不需要有任何的假設,因此又被稱為懶惰演算法
<缺點>
計算效能較差,訓練集筆數很多時會導致嚴重的計算效率問題
穩定性差:因為起始點跟K值設定不同,會產生不同的結果
沒有可擴展能力,即每次判定都需要即時計算(當有新資料的加入必須重新再計算一次)
對於類別在3個及以上,經常會出現投票平局,平局要按照默認規則取默認值,這會讓KNN損失精準度
B)回歸 (Regression): 預測標的為連續變項(例如:預測2020台灣的失業率)
.
1.Linear regression: 透過資料中蒐集的資訊(X, 類別變項或連續變項)來去預測某個數值(Y, 連續變項),但此種預測模式是基於假設X與Y之間為直線的線性關係
<優點>
基於線性分佈假設,linear regression可以通過normal equation求閉合解的方式求得Y的預測值 (代表有公式解)
<缺點>
因為linear regression是假設資料服從線性分佈的,這一假設前提也限制了該模型的準確率,因為現實中由於噪聲等的存在很少有資料是完全服從線性的
2.Ridge/ Lasso regression: 為了處理模型可能存在過度配適(簡單來說,是只模型中存在著過多的自變項),因此我們可以透過Ridge/ Lasso來去解決這個問題,得到一個相對穩定可外推的模型
3.Polynomial regression(多項式迴歸):當資料中X與Y的關係存在著非線性的關係時,直接用線性回歸預測顯而易見預測效果會很差,因此我們可以透過在原本的預測模型中加入X變項的高次方項(目的在於捕捉X與Y非線性的關係),這樣才能得到更為準確的模型
參考資料:
- https://buzzorange.com/techorange/2019/08/13/machine-learning-algorithm-collection/
- https://zhuanlan.zhihu.com/p/37575364
留言列表