逻辑回归是监督学习的另一大类。
对于二分类函数来说,其输出
其函数图像为
则我们可以将开始线性回归时假设的线性模型带入上式中,得
则不费吹灰之力复合了一个线性化参数函数,且其输入为连续值,其输出为近似离散值。
有了模型,则必须创造一个costfunction来最优化参数,那么怎么创造呢?
由模型我们进一步变形,有
则可以将视为类后验概率估计,则可以利用极大似然法来估计参数,则似然函数为
之后就可以用梯度下降法或牛顿法求解参数
matlab代码实现为:
%% Load Data
data = load('ex2data1.txt');
X = data(:, [1, 2]); y = data(:, 3);
[m, n] = size(X);
% Add intercept term to x and X_test
X = [ones(m, 1) X];
initial_theta = zeros(n + 1, 1);
% Choose some alpha value
alpha = 0.01;
num_iters = 8500;
theta = zeros(3, 1);
J_history = zeros(num_iters, 1);
for iter = 1:num_iters
theta = theta - alpha / ( X' * (sigmoid(X*theta) - y ) );
J_history(iter) = -1 * sum( y .* log( sigmoid(X*theta) ) + (1 - y ) .* log( (1 - sigmoid(X*theta)) ) ) ;
end