機器學習基礎(二)
目錄
- 機器學習基礎(二)
- 3 分類演算法
- 3.1 常用分類演算法的優缺點?
- 3.2 分類演算法的評估方法
- 3.3 正確率能很好的評估分類演算法嗎
- 3.4 什么樣的分類器是最好的
- 4 邏輯回歸
- 4.1 回歸劃分
- 4.2 邏輯回歸適用性
- 4.3 邏輯回歸與樸素貝葉斯有什么區別
- 4.4 線性回歸與邏輯回歸的區別
- 3 分類演算法
上篇文章中,我們就機器學習的相關基礎概念進行了闡述,包括機器學習的基本概念以及機器學習的分類,不了解的童鞋可以看一下補補課,機器學習系列(一)——基礎概念及分類,
分類和回歸問題作為典型的機器學習問題,一直困擾了我很久,在查了好多文獻和推文后,整理下來下面的檔案,希望可以幫助大家,更加細致全面的了解這兩種演算法,
? 分類演算法和回歸演算法的區別:
? 分類演算法和回歸演算法是對真實世界不同建模的方法,分類模型是認為模型的輸出是離散的,例如大自然的生物被劃分為不同的種類,是離散的,回歸模型的輸出是連續的,例如人的身高變化程序是一個連續程序,而不是離散的,
? 因此,在實際建模程序時,采用分類模型還是回歸模型,取決于你對任務(真實世界)的分析和理解,
3 分類演算法
3.1 常用分類演算法的優缺點?
? 接下來首先介紹常用分類演算法的優缺點,如表2-1所示,
? 表2-1 常用分類演算法的優缺點
| 演算法 | 優點 | 缺點 |
|---|---|---|
| Bayes 貝葉斯分類法 | 1)所需估計的引數少,對于缺失資料不敏感, 2)有著堅實的數學基礎,以及穩定的分類效率, |
1)需要假設屬性之間相互獨立,這往往并不成立,(喜歡吃番茄、雞蛋,卻不喜歡吃番茄炒蛋), 2)需要知道先驗概率, 3)分類決策存在錯誤率, |
| Decision Tree決策樹 | 1)不需要任何領域知識或引數假設, 2)適合高維資料, 3)簡單易于理解, 4)短時間內處理大量資料,得到可行且效果較好的結果, 5)能夠同時處理資料型和常規性屬性, |
1)對于各類別樣本數量不一致資料,資訊增益偏向于那些具有更多數值的特征, 2)易于過擬合, 3)忽略屬性之間的相關性, 4)不支持在線學習, |
| SVM支持向量機 | 1)可以解決小樣本下機器學習的問題, 2)提高泛化性能, 3)可以解決高維、非線性問題,超高維文本分類仍受歡迎, 4)避免神經網路結構選擇和區域極小的問題, |
1)對缺失資料敏感, 2)記憶體消耗大,難以解釋, 3)運行和調參略煩人, |
| KNN K近鄰 | 1)思想簡單,理論成熟,既可以用來做分類也可以用來做回歸; 2)可用于非線性分類; 3)訓練時間復雜度為O(n); 4)準確度高,對資料沒有假設,對outlier不敏感; |
1)計算量太大, 2)對于樣本分類不均衡的問題,會產生誤判, 3)需要大量的記憶體, 4)輸出的可解釋性不強, |
| Logistic Regression邏輯回歸 | 1)速度快, 2)簡單易于理解,直接看到各個特征的權重, 3)能容易地更新模型吸收新的資料, 4)如果想要一個概率框架,動態調整分類閥值, |
特征處理復雜,需要歸一化和較多的特征工程, |
| Neural Network 神經網路 | 1)分類準確率高, 2)并行處理能力強, 3)分布式存盤和學習能力強, 4)魯棒性較強,不易受噪聲影響, |
1)需要大量引數(網路拓撲、閥值、閾值), 2)結果難以解釋, 3)訓練時間過長, |
| Adaboosting | 1)adaboost是一種有很高精度的分類器, 2)可以使用各種方法構建子分類器,Adaboost演算法提供的是框架, 3)當使用簡單分類器時,計算出的結果是可以理解的,而且弱分類器構造極其簡單, 4)簡單,不用做特征篩選, 5)不用擔心overfitting, |
對outlier比較敏感 |
3.2 分類演算法的評估方法
? 分類評估方法主要功能是用來評估分類演算法的好壞,而評估一個分類器演算法的好壞又包括許多項指標,了解各種評估方法,在實際應用中選擇正確的評估方法是十分重要的,
-
幾個常用術語
? 這里首先介紹幾個常見的模型評價術語,現在假設我們的分類目標只有兩類,計為正例(positive)和負例(negative)分別是:- True positives(TP): 被正確地劃分為正例的個數,即實際為正例且被分類器劃分為正例的實體數;
- False positives(FP): 被錯誤地劃分為正例的個數,即實際為負例但被分類器劃分為正例的實體數;
- False negatives(FN):被錯誤地劃分為負例的個數,即實際為正例但被分類器劃分為負例的實體數;
- True negatives(TN): 被正確地劃分為負例的個數,即實際為負例且被分類器劃分為負例的實體數, ?
四個術語組成混淆矩陣:
1)P=TP+FN表示實際為正例的樣本個數,
2)True、False描述的是分類器是否判斷正確,
3)Positive、Negative是分類器的分類結果,如果正例計為1、負例計為-1,即positive=1、negative=-1,用1表示True,-1表示False,那么實際的類標=TF*PN,TF為true或false,PN為positive或negative,
4)例如True positives(TP)的實際類標=1*1=1為正例,False positives(FP)的實際類標=(-1)*1=-1為負例,False negatives(FN)的實際類標=(-1)*(-1)=1為正例,True negatives(TN)的實際類標=1*(-1)=-1為負例,
-
評價指標
- 正確率(accuracy)
正確率是我們最常見的評價指標,accuracy = (TP+TN)/(P+N),正確率是被分對的樣本數在所有樣本數中的占比,通常來說,正確率越高,分類器越好, - 錯誤率(error rate)
錯誤率則與正確率相反,描述被分類器錯分的比例,error rate = (FP+FN)/(P+N),對某一個實體來說,分對與分錯是互斥事件,所以accuracy =1 - error rate, - 靈敏度(sensitivity)
sensitivity = TP/P,表示的是所有正例中被分對的比例,衡量了分類器對正例的識別能力, - 特異性(specificity)
specificity = TN/N,表示的是所有負例中被分對的比例,衡量了分類器對負例的識別能力, - 精度(precision)
precision=TP/(TP+FP),精度是精確性的度量,表示被分為正例的示例中實際為正例的比例, - 召回率(recall)
召回率是覆寫面的度量,度量有多個正例被分為正例,recall=TP/(TP+FN)=TP/P=sensitivity,可以看到召回率與靈敏度是一樣的, - 其他評價指標
計算速度:分類器訓練和預測需要的時間;評估速度的常用指標是每秒幀率(Frame Per Second,FPS),即每秒內可以處理的圖片數量,當然要對比FPS,你需要在同一硬體上進行,另外也可以使用處理一張圖片所需時間來評估檢測速度,時間越短,速度越快,
魯棒性:處理缺失值和例外值的能力;
可擴展性:處理大資料集的能力;
可解釋性:分類器的預測標準的可理解性,像決策樹產生的規則就是很容易理解的,而神經網路的一堆引數就不好理解,我們只好把它看成一個黑盒子, - 精度和召回率反映了分類器分類性能的兩個方面,如果綜合考慮查準率與查全率,可以得到新的評價指標F1-score,也稱為綜合分類率:\(F1=\frac{2 \times precision \times recall}{precision + recall}\),
為了綜合多個類別的分類情況,評測系統整體性能,經常采用的還有微平均F1(micro-averaging)和宏平均F1(macro-averaging )兩種指標,
(1)宏平均F1與微平均F1是以兩種不同的平均方式求的全域F1指標,
(2)宏平均F1的計算方法先對每個類別單獨計算F1值,再取這些F1值的算術平均值作為全域指標,
(3)微平均F1的計算方法是先累加計算各個類別的a、b、c、d的值,再由這些值求出F1值,
(4)由兩種平均F1的計算方式不難看出,宏平均F1平等對待每一個類別,所以它的值主要受到稀有類別的影響,而微平均F1平等考慮檔案集中的每一個檔案,所以它的值受到常見類別的影響比較大,
- 正確率(accuracy)
-
ROC曲線和PR曲線
ROC曲線是(Receiver Operating Characteristic Curve,受試者作業特征曲線)的簡稱,是以靈敏度(真陽性率)為縱坐標,以1減去特異性(假陽性率)為橫坐標繪制的性能評價曲線,可以將不同模型對同一資料集的ROC曲線繪制在同一笛卡爾坐標系中,ROC曲線越靠近左上角,說明其對應模型越可靠,也可以通過ROC曲線下面的面積(Area Under Curve, AUC)來評價模型,AUC越大,模型越可靠,
PR曲線是Precision Recall Curve的簡稱,描述的是precision和recall之間的關系,以recall為橫坐標,precision為縱坐標繪制的曲線,該曲線的所對應的面積AUC實際上是目標檢測中常用的評價指標平均精度(Average Precision, AP),AP越高,說明模型性能越好, mAP 即 Mean Average Precision即平均AP值,是對多個驗證集個體求平均AP值,作為 object dection中衡量檢測精度的指標,
影像目標檢測的IOU是什么?
IoU 作為目標檢測演算法性能 mAP 計算的一個非常重要的函式,IoU 的全稱為交并比(Intersection over Union),通過這個名稱我們大概可以猜到 IoU 的計算方法,IoU 計算的是 “預測的邊框” 和 “真實的邊框” 的交集和并集的比值,
3.3 正確率能很好的評估分類演算法嗎
? 不同演算法有不同特點,在不同資料集上有不同的表現效果,根據特定的任務選擇不同的演算法,如何評價分類演算法的好壞,要做具體任務具體分析,對于決策樹,主要用正確率去評估,但是其他演算法,只用正確率能很好的評估嗎?
? 答案是否定的,
? 正確率確實是一個很直觀很好的評價指標,但是有時候正確率高并不能完全代表一個演算法就好,比如對某個地區進行地震預測,地震分類屬性分為0:不發生地震、1發生地震,我們都知道,不發生的概率是極大的,對于分類器而言,如果分類器不加思考,對每一個測驗樣例的類別都劃分為0,達到99%的正確率,但是,問題來了,如果真的發生地震時,這個分類器毫無察覺,那帶來的后果將是巨大的,很顯然,99%正確率的分類器并不是我們想要的,出現這種現象的原因主要是資料分布不均衡,類別為1的資料太少,錯分了類別1但達到了很高的正確率缺忽視了研究者本身最為關注的情況,
3.4 什么樣的分類器是最好的
? 對某一個任務,某個具體的分類器不可能同時滿足或提高所有上面介紹的指標,
? 如果一個分類器能正確分對所有的實體,那么各項指標都已經達到最優,但這樣的分類器往往不存在,比如之前說的地震預測,既然不能百分百預測地震的發生,但實際情況中能容忍一定程度的誤報,假設在1000次預測中,共有5次預測發生了地震,真實情況中有一次發生了地震,其他4次則為誤報,正確率由原來的999/1000=99.9下降為996/1000=99.6,召回率由0/1=0%上升為1/1=100%,對此解釋為,雖然預測失誤了4次,但真的地震發生前,分類器能預測對,沒有錯過,這樣的分類器實際意義更為重大,正是我們想要的,在這種情況下,在一定正確率前提下,要求分類器的召回率盡量高,
4 邏輯回歸
4.1 回歸劃分
廣義線性模型家族里,依據因變數不同,可以有如下劃分:
(1)如果是連續的,就是多重線性回歸,
(2)如果是二項分布,就是邏輯回歸,
(3)如果是泊松(Poisson)分布,就是泊松回歸,
(4)如果是負二項分布,就是負二項回歸,
(5)邏輯回歸的因變數可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋,所以實際中最常用的就是二分類的邏輯回歸,
4.2 邏輯回歸適用性
邏輯回歸可用于以下幾個方面:
(1)用于概率預測,用于可能性預測時,得到的結果有可比性,比如根據模型進而預測在不同的自變數情況下,發生某病或某種情況的概率有多大,
(2)用于分類,實際上跟預測有些類似,也是根據模型,判斷某人屬于某病或屬于某種情況的概率有多大,也就是看一下這個人有多大的可能性是屬于某病,進行分類時,僅需要設定一個閾值即可,可能性高于閾值是一類,低于閾值是另一類,
(3)尋找危險因素,尋找某一疾病的危險因素等,
(4)僅能用于線性問題,只有當目標和特征是線性關系時,才能用邏輯回歸,在應用邏輯回歸時注意兩點:一是當知道模型是非線性時,不適用邏輯回歸;二是當使用邏輯回歸時,應注意選擇和目標為線性關系的特征,
(5)各特征之間不需要滿足條件獨立假設,但各個特征的貢獻獨立計算,
4.3 邏輯回歸與樸素貝葉斯有什么區別
邏輯回歸與樸素貝葉斯區別有以下幾個方面:
(1)邏輯回歸是判別模型, 樸素貝葉斯是生成模型,所以生成和判別的所有區別它們都有,
(2)樸素貝葉斯屬于貝葉斯,邏輯回歸是最大似然,兩種概率哲學間的區別,
(3)樸素貝葉斯需要條件獨立假設,
(4)邏輯回歸需要求特征引數間是線性的,
4.4 線性回歸與邏輯回歸的區別
線性回歸與邏輯回歸的區別如下描述:
(1)線性回歸的樣本的輸出,都是連續值,\(y\in (-\infty ,+\infty )\),而邏輯回歸中\(y\in (0,1)\),只能取0和1,
(2)對于擬合函式也有本質上的差別:
? 線性回歸:\(f(x)=\theta ^{T}x=\theta _{1}x _{1}+\theta _{2}x _{2}+...+\theta _{n}x _{n}\)
? 邏輯回歸:\(f(x)=P(y=1|x;\theta )=g(\theta ^{T}x)\),其中,\(g(z)=\frac{1}{1+e^{-z}}\)
? 可以看出,線性回歸的擬合函式,是對f(x)的輸出變數y的擬合,而邏輯回歸的擬合函式是對為1類樣本的概率的擬合,
? 那么,為什么要以1類樣本的概率進行擬合呢,為什么可以這樣擬合呢?
? \(\theta ^{T}x=0\)就相當于是1類和0類的決策邊界:
? 當\(\theta ^{T}x>0\),則y>0.5;若\(\theta ^{T}x\rightarrow +\infty\),則\(y \rightarrow 1\),即y為1類;
? 當\(\theta ^{T}x<0\),則y<0.5;若\(\theta ^{T}x\rightarrow -\infty\),則\(y \rightarrow 0\),即y為0類;
這個時候就能看出區別,在線性回歸中\(\theta ^{T}x\)為預測值的擬合函式;而在邏輯回歸中\(\theta ^{T}x\)為決策邊界,下表2-3為線性回歸和邏輯回歸的區別,
? 表2-3 線性回歸和邏輯回歸的區別
| 線性回歸 | 邏輯回歸 | |
|---|---|---|
| 目的 | 預測 | 分類 |
| \(y^{(i)}\) | 未知 | (0,1) |
| 函式 | 擬合函式 | 預測函式 |
| 引數計算方式 | 最小二乘法 | 極大似然估計 |
下面具體解釋一下:
- 擬合函式和預測函式什么關系呢?簡單來說就是將擬合函式做了一個邏輯函式的轉換,Sigmod函式將\(y\in(-\infty,+\infty)\),轉換后使得\(y^{(i)}\in(0,1)\);
- 最小二乘和最大似然估計可以相互替代嗎?回答當然是不行了,我們來看看兩者依仗的原理:最大似然估計是計算使得資料出現的可能性最大的引數,依仗的自然是Probability,而最小二乘是計算誤差損失(平方差),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/55456.html
標籤:其他
上一篇:機器學習回顧篇(12):集成學習之Bagging與隨機森林
下一篇:論文閱讀|Focal loss
