大白話5分鐘帶你走進人工智慧-第十六節邏輯迴歸之分類的原因(1)

LHBlog發表於2019-04-29

                                                                                                                                 第十六節邏輯迴歸做分類的原因(1)

從本節開始,我們講解一個新的演算法,邏輯迴歸。多元性迴歸是做迴歸的,它真的是迴歸這個領域裡面的一個演算法。對於有監督機器學習來說,除了做迴歸還可以做分類。邏輯迴歸是一個分類的演算法。迴歸跟分類它倆都是有監督的機器學習,有什麼區別呢?區別在於y。迴歸的y是負無窮到正無窮之間的如果是分類,我們的這個地方的y就得是,一般從0開始,0是第1個分類,1是第2個分類,2是第3個分類,3是第4個分類,它是一個離散的。所以首先你拿了一份資料,得問自己這份資料是做什麼的,如果是做迴歸,就得問誰是y,誰是目標。發現y之後,如果是迴歸,它必須得是連續的;如果是分類,如果y不是零散的,應該把它變成零散的。

logistic regression,邏輯迴歸,有些書上也會叫做羅基斯特迴歸,雖然它叫回歸,但它是做分類的,它跟我們的迴歸有什麼關係呢?我們從簡單開始來說,二分類,二分類的y分類號只有兩個,一個是0,還有一個是1,通常0稱為叫負例,1稱為叫正例。也就是說y這一列,它要麼就是0,要麼就是1。y=W^T*X,用前面的多元線性迴歸,能不能去做分類?

比如下面這張圖:

橫軸Tumor Size,腫瘤的大小,縱軸,Malignant,惡性的意思。 y要麼是0,要麼就是1,每個紅色的x是每個樣本,每個點相當於樣本點位置。如果我們用多元線迴歸,就是用一條直線儘可能穿過一個個的點,就是去擬合,使得mse變小。圖中粉色的線是我們擬合的曲線。怎麼樣把資料點分開?如果是一維的(一維就是一根直線一個軸),切成兩半,只需要找一個點就可以切開。如果這條直線的區間是負無窮到正無窮,那麼這個點是零。   如果升高維度是二維的,有兩個軸,要把一個平面切成兩半,你需要一個直線,但直線的位置就要根據已有的點來定了。區間為正無窮到負無窮的一維直線可以用0的位置來區分。因為我們擬合的直線y=W^T*X也是一條一維的直線,我們要把這條直線且分開,只需要找到一個X去乘以已有的w模型,可以使W^T*X=0,相當於這根線的這個區分點就找到了。此時這個分界點所對應的橫軸的X值就是W^T*X裡面的X。我們就可以用它做分類,可以這樣表述,腫瘤的大小,小於一定的值的時候,我們就可以標籤y賦值為0,說明它沒有壞。如果腫瘤大小,大於一定值的時候,我們就就可以標籤y賦值為1,說明這個地方有病變。所以如果用多元線性迴歸做分類的話,我們的步驟是擬合現在已有的點,找到一條擬合的直線,然後我們找到一個X可以使得W^T*X=0的時候,這個X就可以作為擬合直線的一個分界點。未來來一條新的資料X的時候,跟已有的x比較,看它是大於還是小於分界點X來做分類。

所以說多元線性迴歸,也能做分類。但是為什麼在眾多的演算法當中,人們沒有把多元線性迴歸變成一個分類的演算法去應用?原因就因為下面這張圖。

這張圖就說出了一個它沒有做一個分類演算法的本質原因,因為它特別容易受到一個離群值的影響。如果已有的資料點是這張圖裡面所有的X。異常值這個點就會把我們的整個的擬合的直線給它拉過去。這個時候如果我們要找到一個W^T*X=0的情況,我們找的X就是上圖中這個分界點X了,對於原來的資料來看,就會有兩個資料點分錯了,在圖中已經標明出來。

對於一維來說,我們找的是分界點去分類;對於二維資料來說,我們找的是一條直線去區分。所以對二維資料來說,如果有一個異常點,這個直線就不太滿足了。我們應該怎麼去辦?實際上第一張圖,分界點X對應的綠色的分界線是挺好的,能區分正確的資料分類。當多了異常值之後,分界點X對應的綠色的分界線是不太好。所以我們的想法是找到一個好的分界線。

當多了異常值之後。如果下圖中原本正確的分界點的位置來一條分界線(綠色虛線分界線),其對應的這個分界點會和之前一樣也能將資料分開。

怎麼才能讓你原來的線性擬合可以變成分界點在這?去掉離群值肯定可以,是對資料進行變化。如果是演算法變化,假如我們不用直線去擬合,我們用曲線去擬合,用什麼樣的曲線可以解決這個問題?如果是上圖中S形的曲線,這個時候分界點是W^T*X=0,這個值就可以把你的負例和正例很好的分開。

所以就會發現,你的模型來擬合已有資料的時候,不能全都用直線,對於這個例子來說是S形的曲線比較好,於是乎人們就琢磨出了另外一個曲線,sigmoid曲線,用曲線去擬合已有點,然後找到分界的位置去分類。 因此S曲線就是邏輯迴歸。為什麼叫回歸?因為是用S曲線去擬合原來的點,但它的目標是找到一個分界點,對一維來說去做分類而已,所以它叫邏輯迴歸,是去做分類的。

相關文章