今天學習第一個分類算法——Logistic Regression,這是一種應用比較廣泛的分類算法。
1.Logistic Regression
(1)應用
- Email:Spam/Not Spam?
- OnLine Transactions:Fraudulent(Yes/No)?
- Tumor:Malignant/Benign?
(2)模型
(3)目標
變形爲:
(4)實現
爲了求最優(最小)的代價函數,我們有很多算法可以選擇,主要有Gradient descent(梯度下降算法)、Conjugate gradient、BFGS/L-BFGS。後面三種算法相對於梯度下降算法來說,不需要選取a參數,而且更快。但是老師並沒有介紹這三種算法,後期我會對這三種算法進行詳細的研究。
注:
- 這裏老師用到了一個matlab庫函數來求最優解,具體代碼如下:
%%===============costFunctions================
function [jVar,gradient]=costFunction(theta)
jVar=(theta(1)-5)^2+(theta(2)-5)^2;
gradient=zeros(2,1);
gradient(1)=2*(theta(1)-5);
gradient(2)=2*(theta(2)-5);
%%=============test=========================
options=optimset('GradObj','on','MaxIter',100);
initialTheta=zeros(2,1);
[optTheta,functionVal,exitFlag]=fminunc(@costFunction,initialTheta,options)
2.Multiclass classification
(1)應用
Email foldering/tagging:Work,Friends,Family,Hobby
Medical diagrams:Not ill,Cold,Flu
Weather:Sunny,Cloudy,Rain,Snow
(2)方法
3.過擬合
(1)直觀感受
(2)解決方法
- 減少特徵數量(人爲選擇或者算法選擇)
Regularization(正則化)
減少參數theta或者保留所有的特徵減少每個特徵對結果的影響;
.重新定義代價函數:
實現:.正則方程
添加完正則項之後,能夠解決特徵值多於數據集造成的不可逆情況。4.將正則化應用到logistic regression中