code

2017年3月2日 星期四

AI筆記22 - Logistic Regression

是Classification method

他的名稱會讓人誤會以為是regression method,事實上是classification。
但是logistic regression可以output一個機率值,也就是符合regressor的定義,但是因為機率只能是 0 ~ 1之間的實數,可以根據機率來做classification thresholding 的依據,所以本質上是一個classifier。

這類的data由於被label成categorical variable (例如0, 1 或是+1, -1),不適合直接用linear regression來做,因為linear regression是要找出能代表此data set的線性方程式,但是對categorical variable來說,data會有明顯分群現象,不可能找出代表性線性方程式。

例如以下標示銀行存款與客戶信用違約的training set,如果用linear regression是很差的predictor:

Linear model

logistic regression也是一個linear model:

事實上,f(x) 是一個conditional Bernoulli RV:


一個看起來符合probability distribution定義的function是sigmoid function:


當然g的input z就是我們的linear combination f(x),所以事實上我們是把f(x)的結果再map到0~1之間的實數。也可以直接把f(x)寫成以下:
d-維度 x的通式如下:

事實上,並不只限於sigmoid function,只要能把linear combination map到0~1之間的實數的function都可以使用。

對剛剛範例中的銀行信用違約data來說,右邊為logistic regression結果:

Prediction

如果找到所有的beta weights,其實就把linear combination帶入sigmoid function就能得到條件機率:



如果要map到categorical variable的話,就對此機率做thresholding即可。

Learn the model

我們仍然可以用least square error當作learning的方法,所以loss function 和Risk function:

不過我們不能用gradient descent來找出minima,為什麼?
因為 f(x)是sigmoid function的形式,所以已經不是多項式,更不是二次多項式,所以不會是一個灣口向上的convex幾何體,而是可能會有多個local optima的幾何體。

有趣的是,就像我們用sigmoid function來包裹linear combination使得其數值落在0~1之間,我們也可以把這個Risk function變成一個convex! 稱作convexify:

我也忘了log(f(x)) 為什麼會變成這樣兩個cases,代數應該要複習了!!!!!!!

我們可以將這兩個case合併成一個function(因為y不是0就是1):
這樣就可以apply gradient descent去找一個唯一的minimum。

其餘詳請請洽ML老師!!



沒有留言:

張貼留言