52nlp的筆記,我的筆記中主要討論偏微分方程的推導
分類算法 邏輯迴歸
分類問題的y取值是在一定範圍
y = {0,1}或者y={0,1,2,3}
這種情況下線性迴歸方程並不適用,這時候可以採用邏輯迴歸算法
邏輯迴歸Logistic Regression
這樣就使得
也就是,對給定的x,
決策邊界Decision Boundary
如果我們假定閾值爲0.5 ,也即
那麼
代價函數 Cost Function
對於邏輯迴歸問題,我們選擇對數損失函數/對數似然損失函數作爲代價函數,這樣的代價函數是凸函數,有global optimum 而不是很多個local optimum
簡化的代價函數
總代價函數爲
將代價函數合併成一個函數
這其實就是最大似然函數的形式
從而總的代價函數可以表示爲
梯度下降算法
Repeat{
(simutaneously undate all
}
其中
推導過程需要用到:
以及倒數的定義
推導過程:
將
那麼
調用 fminunc()函數
不用再編寫循環和設置步長了,一個函數搞定

過擬合Overfitting
特徵太多,擬合的太好,代價函數幾乎爲0,但預測結果並不好
過擬合發生時,我們需要
1)降低特徵個數(手動/通過算法),代價是失去了部分信息
2)正規化:保留所有特徵,但減少
正規化 Regularization
使用數值小的參數,得到“簡化”的h函數,降低過擬合的傾向性
線性迴歸的正規化
注意,
assignment
plot樣本數據的時候用到了find
% Find Indices of Positive and Negative Examples
pos = find(y==1); neg = find(y == 0);
% Plot Examples
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ...
'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ...
'MarkerSize', 7);
求解過程用到的函數其實也沒怎麼搞明白
% Set options for fminunc
options = optimset('GradObj', 'on', 'MaxIter', 400);
% Run fminunc to obtain the optimal theta
% This function will return theta and the cost
[theta, cost] = ...
fminunc(@(t)(costFunction(t, X, y)), initial theta, options);