[斯坦福大學2014機器學習教程筆記]第六章-分類迴歸

    在這節以及接下來幾節中,咱們要開始討論分類問題。這節將告訴咱們爲何對於分類問題來講,使用線性迴歸並非一個好主意。算法

    在分類問題中,你要預測的變量y是一個離散的值,咱們將學習一種叫作邏輯迴歸(Logistic Regression)的算法,這是當今最流行、使用最普遍的學習算法之一。學習

    分類問題的例子有:垃圾郵件分類(判斷一封電子郵件是不是垃圾郵件)、分類網上交易(判斷某一個交易是不是欺詐,例如是否用盜取的信用卡等等)、腫瘤分類(判斷一個腫瘤是惡性的仍是良性的)。在這些問題中,咱們嘗試預測的變量y是能夠有兩個取值的變量(0或1)。咱們用0表示的那一類還能夠叫作負類(Negative Class),用1表示的那一類能夠叫作正類(Positive Class)。通常來講,負類表示沒有某樣東西,好比說:沒有惡性腫瘤。正類表示具備咱們要尋找的東西。可是,什麼是正類什麼是負類是沒有明確規定的。spa

    如今咱們要開始討論只包含0和1兩類的分類問題(即二元的分類問題)。那麼,咱們要如何開發一個分類算法呢?blog

    這個例子的訓練集是對腫瘤進行惡性或良性分類。注意到惡性與否只有兩個值,0或者1。因此,咱們能夠作的就是對於這個給定的訓練集,把咱們學過的線性迴歸算法應用到這個數據集,用直線對數據進行擬合。若是你用直線去擬合這個訓練集,你有可能獲得以下圖的假設直線。開發

    若是你想作出預測,你能夠將分類器輸出的閥值設爲0.5(即縱座標值爲0.5),若是假設輸出一個大於等於0.5,能夠預測y=1,若是小於0.5則預測y=0。在這個特定的例子中,彷佛線性迴歸作的事情很合理。可是,嘗試改變一下問題,將橫軸延長一點。假如咱們有另一個訓練樣本位於右邊遠處。it

    注意這個額外的訓練樣本,顯然它並不會改變什麼,假設依然很好。可是,當咱們再增長一個額外的例子,若是咱們這時運行線性迴歸,咱們會獲得另外一條直線(以下圖)去擬合數據。此時,若是將閥值設爲0.5,根據分析,這顯然不是一個好的線性迴歸。io

    因此,將線性迴歸運用到分類問題中一般不是一個好主意。在增長額外的樣本以前,以前的線性迴歸看起來很好。可是,對數據集進行線性迴歸,有時會很好,但這不意味着這就是一個很好的方法。由於咱們可能會遇到像增長了一個額外樣本以後的問題,這時,效果就比較糟糕了。儘管咱們知道標籤y應該取值0或者1,可是若是算法獲得的值遠大於1或者遠小於0的話,仍是會感受很奇怪。變量

    因此咱們在接下來的要研究的算法就叫作邏輯迴歸算法,這個算法的特色是:它的輸出值永遠在0到1之間。順便說一下,咱們一般將邏輯迴歸算法視爲一種分類算法。有時候可能由於這個算法的名字中出現了「迴歸」讓人會感到困惑,但邏輯迴歸算法其實是一種分類算法,它適用於標籤y爲離散值0或1的狀況。bfc

相關文章
相關標籤/搜索