机器学习之逻辑回归

2018-12-12  本文已影响17人  MrWisdom
timg.jpg
逻辑回归是监督学习的另一大类。
对于二分类函数来说,其输出 untitled.jpg

则我们可以将开始线性回归时假设的线性模型f(x)= X\cdot \theta带入上式中,得
\hat y = \frac{1}{1+e^{-(X\cdot \theta)}}
则不费吹灰之力复合了一个线性化参数函数,且其输入为连续值,其输出为近似离散值。

有了模型,则必须创造一个costfunction来最优化参数,那么怎么创造呢?

由模型我们进一步变形,有
In\frac{\hat y}{1-\hat y} = X\cdot \theta
则可以将\hat y视为类后验概率估计P(y=1|x),则可以利用极大似然法来估计参数,则似然函数为
L(\theta) = \prod_{i=1}^{m}(\hat y^{y_i} (1-\hat y)^{(1-{y_i})})
之后就可以用梯度下降法或牛顿法求解参数\theta
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
上一篇 下一篇

猜你喜欢

热点阅读