機器學習系列(二)——分類及迴歸問題

機器學習基礎(二)

上篇文章中,咱們就機器學習的相關基礎概念進行了闡述,包括機器學習的基本概念以及機器學習的分類。不瞭解的童鞋能夠看一下補補課,機器學習系列(一)——基礎概念及分類
分類和迴歸問題做爲典型的機器學習問題,一直困擾了我好久,在查了好多文獻和推文後,整理下來下面的文檔,但願能夠幫助你們,更加細緻全面的瞭解這兩種算法。算法

分類算法和迴歸算法的區別:網絡

​ 分類算法和迴歸算法是對真實世界不一樣建模的方法。分類模型是認爲模型的輸出是離散的,例如大天然的生物被劃分爲不一樣的種類,是離散的。迴歸模型的輸出是連續的,例如人的身高變化過程是一個連續過程,而不是離散的。框架

​ 所以,在實際建模過程時,採用分類模型仍是迴歸模型,取決於你對任務(真實世界)的分析和理解。機器學習

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)分別是:
    1) True positives(TP): 被正確地劃分爲正例的個數,即實際爲正例且被分類器劃分爲正例的實例數;
    2) False positives(FP): 被錯誤地劃分爲正例的個數,即實際爲負例但被分類器劃分爲正例的實例數;
    3) False negatives(FN):被錯誤地劃分爲負例的個數,即實際爲正例但被分類器劃分爲負例的實例數;
    4) True negatives(TN): 被正確地劃分爲負例的個數,即實際爲負例且被分類器劃分爲負例的實例數。  ​
    四個術語組成混淆矩陣
    1)P=TP+FN表示實際爲正例的樣本個數。
    2)True、False描述的是分類器是否判斷正確。
    3)Positive、Negative是分類器的分類結果,若是正例計爲一、負例計爲-1,即positive=一、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爲負例。學習

  • 評價指標
    1) 正確率(accuracy)
    正確率是咱們最多見的評價指標,accuracy = (TP+TN)/(P+N)正確率是被分對的樣本數在全部樣本數中的佔比,一般來講,正確率越高,分類器越好。
    2) 錯誤率(error rate)
    錯誤率則與正確率相反,描述被分類器錯分的比例,error rate = (FP+FN)/(P+N),對某一個實例來講,分對與分錯是互斥事件,因此accuracy =1 - error rate。
    3) 靈敏度(sensitivity)
    sensitivity = TP/P,表示的是全部正例中被分對的比例,衡量了分類器對正例的識別能力
    4) 特異性(specificity)
    specificity = TN/N,表示的是全部負例中被分對的比例,衡量了分類器對負例的識別能力。
    5) 精度(precision)
    precision=TP/(TP+FP),精度是精確性的度量,表示被分爲正例的示例中實際爲正例的比例
    6) 召回率(recall)
    召回率是覆蓋面的度量,度量有多個正例被分爲正例,recall=TP/(TP+FN)=TP/P=sensitivity,能夠看到召回率與靈敏度是同樣的。
    7) 其餘評價指標
    計算速度:分類器訓練和預測須要的時間;評估速度的經常使用指標是每秒幀率(Frame Per Second,FPS),即每秒內能夠處理的圖片數量。固然要對比FPS,你須要在同一硬件上進行。另外也可使用處理一張圖片所需時間來評估檢測速度,時間越短,速度越快。
    魯棒性:處理缺失值和異常值的能力;
    可擴展性:處理大數據集的能力;
    可解釋性:分類器的預測標準的可理解性,像決策樹產生的規則就是很容易理解的,而神經網絡的一堆參數就很差理解,咱們只好把它當作一個黑盒子。
    8) 精度和召回率反映了分類器分類性能的兩個方面。若是綜合考慮查準率與查全率,能夠獲得新的評價指標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平等考慮文檔集中的每個文檔,因此它的值受到常見類別的影響比較大。

  • 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)
函數 擬合函數 預測函數
參數計算方式 最小二乘法 極大似然估計

下面具體解釋一下:

  1. 擬合函數和預測函數什麼關係呢?簡單來講就是將擬合函數作了一個邏輯函數的轉換,Sigmod函數將$ y\in (-\infty ,+\infty )\(,轉換後使得\)y^{(i)} \in (0,1)$;
  2. 最小二乘和最大似然估計能夠相互替代嗎?回答固然是不行了。咱們來看看二者依仗的原理:最大似然估計是計算使得數據出現的可能性最大的參數,依仗的天然是Probability。而最小二乘是計算偏差損失(平方差)。
相關文章
相關標籤/搜索