1.線性回歸
線性回歸是回歸任務最常用的算法。它最簡的形式,是用一個連續的超平面來擬合數據集(比如,當你僅有兩個變量時就用一條直線)。如果數據集內的變量存在線性關系,擬合程度就相當高。
在實踐中,簡單線性回歸通常會被其正則化形式(LASSO、Ridge 及彈性網絡)所取代。正則化是對過多回歸系數所采取的一種避免過擬合的懲罰技巧,同時,懲罰的強度需要被平衡好。
線性回歸是回歸任務最常用的算法。它最簡的形式,是用一個連續的超平面來擬合數據集(比如,當你僅有兩個變量時就用一條直線)。如果數據集內的變量存在線性關系,擬合程度就相當高。
在實踐中,簡單線性回歸通常會被其正則化形式(LASSO、Ridge 及彈性網絡)所取代。正則化是對過多回歸系數所采取的一種避免過擬合的懲罰技巧,同時,懲罰的強度需要被平衡好。
-
優點:線性回歸的理解和解釋都非常直觀,還能通過正則化來避免過擬合。此外,線性模型很容易通過隨機梯度下降來更新數據模型。
-
缺點:線性回歸在處理非線性關系時非常糟糕,在識別復雜的模式上也不夠靈活,而添加正確的相互作用項或多項式又極為棘手且耗時。魯棒性差。
2.LR
邏輯回歸是線性回歸所對應的分類方法,基本概念由線性回歸推導而出。邏輯回歸通過邏輯函數將預測映射到 0 到 1 的區間,因此預測值可被視為某一類別的概率。
該模型依舊是線性的,只有當數據線性可分時(例如,數據可被某決策平面完全分離),這一算法才會有很好的表現。邏輯回歸同樣能懲罰模型系數以進行正則化。
優點
- 預測結果是界於0和1之間的概率;
- 可以適用於連續性和類別性自變量;
- 容易使用和解釋;
缺點
- 對模型中自變量多重共線性較為敏感,例如兩個高度相關自變量同時放入模型,可能導致較弱的一個自變量回歸符號不符合預期,符號被扭轉。需要利用因子分析或者變量聚類分析等手段來選擇代表性的自變量,以減少候選變量之間的相關性;
- 預測結果呈“S”型,因此從log(odds)向概率轉化的過程是非線性的,在兩端隨着log(odds)值的變化,概率變化很小,邊際值太小,slope太小,而中間概率的變化很大,很敏感。 導致很多區間的變量變化對目標概率的影響沒有區分度,無法確定閥值。
3.決策樹
優點:
- 概念簡單,計算復雜度不高,可解釋性強,輸出結果易於理解;
- 數據的准備工作簡單, 能夠同時處理數據型和常規型屬性,其他的技術往往要求數據屬性的單一。
- 對中間值得確實不敏感,比較適合處理有缺失屬性值的樣本,能夠處理不相關的特征;
- 應用范圍廣,可以對很多屬性的數據集構造決策樹,可擴展性強。決策樹可以用於不熟悉的數據集合,並從中提取出一些列規則 這一點強於KNN。
缺點:
- 容易出現過擬合;
- 對於那些各類別樣本數量不一致的數據,在決策樹當中,信息增益的結果偏向於那些具有更多數值的特征。
- 信息缺失時處理起來比較困難。 忽略數據集中屬性之間的相關性。
改進措施:
- 對決策樹進行剪枝。可以采用交叉驗證法和加入正則化的方法。
- 使用基於決策樹的combination算法,如bagging算法,randomforest算法,可以解決過擬合的問題
4.SVM
支持向量機使用一個名為核函數的技巧,來將非線性問題變換為線性問題,其本質是計算兩個觀測數據的距離。支持向量機算法所尋找的是能夠最大化樣本間隔的決策邊界,因此又被稱為大間距分類器。
優點:
- 可以解決高維問題:對於線性不可分的情況可以通過核函數,映射到高維特征空間實現線性可分。
- SVM學習問題可以表示為凸優化問題,因此可以利用已知的有效算法發現目標函數在約束條件的全局最小值。而其他分類方法(如基於規則的分類器和人工神經網絡)都采用一種基於貪心學習的策略來搜索假設空間,這種方法一般只能獲得局部最優解。
- SVM在中小量樣本規模的時候容易得到數據和特征之間的非線性關系,可以避免使用神經網絡結構選擇和局部極小值問題,可解釋性強。
- 小集群分類效果好。
- 少數支持向量決定了最終結果,這不但可以幫助我們抓住關鍵樣本、“剔除”大量冗余樣本,而且注定了該方法不但算法簡單,而且具有較好的“魯棒”性。這種“魯棒”性主要體現在:
①增、刪非支持向量樣本對模型沒有影響;
②支持向量樣本集具有一定的魯棒性;
③有些成功的應用中,SVM 方法對核的選取不敏感 - SVM 是一種有堅實理論基礎的新穎的小樣本學習方法。它基本上不涉及概率測度及大數定律等,因此不同於現有的統計方法。從本質上看,它避開了從歸納到演繹的傳統過程,實現了高效的從訓練樣本到預報樣本的“轉導推理”,大大簡化了通常的分類和回歸等問題;
缺點:
- 尋求合適的核函數相對困難。
- 經典的SVM,直接輸出類別,不給出后驗概率(可以加一層softmax的得出概率)
- 僅局限於小集群樣本,對於觀測樣本太多時,效率較低。SVM算法對大規模訓練樣本難以實施 由於SVM是借助二次規划來求解支持向量,而求解二次規划將涉及m階矩陣的計算(m為樣本的個數),當m數目很大時該矩陣的存儲和計算將耗費大量的機器內存和運算時間。針對以上問題的主要改進有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、張學工的CSVM以及O.L.Mangasarian等的SOR算法。
- 用SVM解決多分類問題存在困難
5.KNN
最近鄰算法是“基於實例的”,也就意味着它需要保留每一個訓練觀察值。最近鄰算法通過搜尋最相似的訓練樣本來預測新樣本的觀察值。
它是內存密集型算法,處理高維數據時的效果並不理想,同時還需要高效的距離函數來計算相似度。在實踐中,使用正則化的回歸或樹型集成方法通常是更好的選擇。
優點:
1.簡單好用,容易理解,精度高,理論成熟,既可以用來做分類也可以用來做回歸;
2.可用於數值型數據和離散型數據;
3.訓練時間復雜度為O(n);無數據輸入假定;
4.對異常值不敏感
缺點:
1、對於樣本容量大的數據集計算量比較大。
2、樣本不平衡時,預測偏差比較大。如:某一類的樣本比較少,而其它類樣本比較多。
3、KNN每一次分類都會重新進行一次全局運算。
4、k值大小的選擇。
6.朴素貝葉斯
朴素貝葉斯是一種基於條件概率和計數的簡單算法,其本質是一個概率表,通過訓練數據來更新其中的概率。它預測新觀察值的過程,就是根據樣本的特征值在概率表中來尋找最為可能的類別。
被稱為“朴素”原因,是其核心的特征條件獨立性假設(例如,每一項輸入特征都相互獨立),在現實中幾乎是不成立的。
優點:
1.生成式模型,通過計算概率來進行分類,可以用來處理多分類問題,
2.對小規模的數據表現很好,適合多分類任務,適合增量式訓練,算法也比較簡單。
缺點:
1.對輸入數據的表達形式很敏感,
2.由於朴素貝葉斯的“朴素”特點,所以會帶來一些准確率上的損失。
3.需要計算先驗概率,分類決策存在錯誤率。
7.K均值
K 均值是基於樣本點間的幾何距離來度量聚類的通用目的算法。由於集群圍繞在聚類中心,結果會接近於球狀並具有相似的大小。
-
優點:K 均值是最為流行的聚類算法,因為它足夠快速、足夠簡單,如果你的預處理數據和特征工程都做得十分有效,那它將具備令人驚嘆的靈活性。
-
缺點:該算法需要指定集群的數量,而 K 值的選擇通常都不是那么容易確定的。另外,如果訓練數據中的真實集群並不是類球狀的,那么 K 均值聚類會得出一些比較差的集群。
8.DBSCAN
DBSCAN 是一種基於密度的聚類算法,它將樣本點的密集區域組成集群;其最新進展是HDBSCAN,它允許集群的密度可變。
-
優點:DBSCAN 不需要假定類球形集群,其性能可以擴展。此外,它不需要每個點都被分配到集群中,這就降低了集群的噪音。
-
缺點:用戶必須要調整“epsilon”和“min_sample”這兩個超參數來定義集群密度。DBSCAN 對此非常敏感。
9.隨機森林
隨機森林的優點:
- 表現性能好,與其他算法相比有着很大優勢。
- 隨機森林能處理很高維度的數據(也就是很多特征的數據),並且不用做特征選擇。
- 在訓練完之后,隨機森林能給出哪些特征比較重要。
- 訓練速度快,容易做成並行化方法(訓練時,樹與樹之間是相互獨立的)。
- 在訓練過程中,能夠檢測到feature之間的影響。
- 對於不平衡數據集來說,隨機森林可以平衡誤差。當存在分類不平衡的情況時,隨機森林能提供平衡數據集誤差的有效方法。
- 如果有很大一部分的特征遺失,用RF算法仍然可以維持准確度。
- 隨機森林算法有很強的抗干擾能力(具體體現在6,7點)。所以當數據存在大量的數據缺失,用RF也是不錯的。
- 隨機森林抗過擬合能力比較強(雖然理論上說隨機森林不會產生過擬合現象,但是在現實中噪聲是不能忽略的,增加樹雖然能夠減小過擬合,但沒有辦法完全消除過擬合,無論怎么增加樹都不行,再說樹的數目也不可能無限增加的。)
- 隨機森林能夠解決分類與回歸兩種類型的問題,並在這兩方面都有相當好的估計表現。(雖然RF能做回歸問題,但通常都用RF來解決分類問題)。
- 在創建隨機森林時候,對generlization error(泛化誤差)使用的是無偏估計模型,泛化能力強。
隨機森林的缺點:
- 隨機森林在解決回歸問題時,並沒有像它在分類中表現的那么好,這是因為它並不能給出一個連續的輸出。當進行回歸時,隨機森林不能夠做出超越訓練集數據范圍的預測,這可能導致在某些特定噪聲的數據進行建模時出現過度擬合。(PS:隨機森林已經被證明在某些噪音較大的分類或者回歸問題上回過擬合)。
- 對於許多統計建模者來說,隨機森林給人的感覺就像一個黑盒子,你無法控制模型內部的運行。只能在不同的參數和隨機種子之間進行嘗試。
- 可能有很多相似的決策樹,掩蓋了真實的結果。
- 對於小數據或者低維數據(特征較少的數據),可能不能產生很好的分類。(處理高維數據,處理特征遺失數據,處理不平衡數據是隨機森林的長處)。
- 執行數據雖然比boosting等快(隨機森林屬於bagging),但比單只決策樹慢多了。
10.GBDT
11.xgboost
12.Adaboost
優點:
- adaboost是一種有很高精度的分類器。
- 可以使用各種方法構建子分類器,Adaboost算法提供的是框架。
- 當使用簡單分類器時,計算出的結果是可以理解的。而且弱分類器構造極其簡單。
- 簡單,不用做特征篩選。
- 不用擔心overfitting。
缺點:在Adaboost訓練過程中,Adaboost會使得難於分類樣本的權值呈指數增長,訓練將會過於偏向這類困難的樣本,導致Adaboost算法易受噪聲干擾。此外,Adaboost依賴於弱分類器,而弱分類器的訓練時間往往很長。
13.人工神經網絡
14.EM
准確率和召回率的使用條件和計算方式,即什么情況下正確率指標不適用?
(accuracy) = 預測對的/所有 = (TP+TN)/(TP+FN+FP+TN)
精確率(recall) = TP/(TP+FN)
在正負樣本不平衡的情況下,准確率這個評價指標有很大的缺陷。
比如在互聯網廣告里面,點擊的數量是很少的,一般只有千分之幾,如果用acc,即使全部預測成負類(不點擊)acc 也有 99% 以上,沒有意義。