机器学习之逻辑回归

timg.jpg

逻辑回归是监督学习的另一大类。
对于二分类函数来说,其输出
,因此必须选取一个函数,其接受连续的输入,输出离散值或类似离散值,并且该函数应该是连续可微的,符合这些特征的函数为sigmoid函数,其表达式为:

其函数图像为

untitled.jpg

则我们可以将开始线性回归时假设的线性模型带入上式中,得

则不费吹灰之力复合了一个线性化参数函数,且其输入为连续值,其输出为近似离散值。

有了模型,则必须创造一个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

你可能感兴趣的:(机器学习之逻辑回归)