西瓜书扩展_Logistic 回归

sign属于硬分类

Logistic属于软分类,也就是用概率来对预测结果进行判断

两种分类得出的结果是一样的,后者的好处是可微的单调函数

如果以银行贷款为例,一个客户的信用得分:

把得分转换成[0,1]之间的数值(概率):


伯努利分布:

注意这是+1和-1的版本,不是1和0的版本

这是根据问题提出假设的模型分布为伯努利分布,用其来近似潜在的真实分布。

用极大似然函数来估计参数,所有数学符号每篇文章都通用。

θ_{ML}=\underset{\mathbf{w}}{\arg \min} \frac{1}{N}\sum_{i=1}^{N} -\ln Q(y_{i}|\mathbf{x}_{i};\mathbf{w})=\underset{\mathbf{w}}{\arg \min}\ \mathbb{E}_{\mathbf{x},y \sim P}[-\ln Q(\mathbf{y}|X;\mathbf{w})]


是凸函数,最小化的第一个想法就是让

可惜没有闭式解

可以用梯度下降进行迭代求解,为迭代次数


在sigmoid函数上,是两个分类(类别+1和-1)的分界处。

因此我们设定,注意


,,,

clc

clear all

data=load('testSet2.txt');

xMat = data(:,1:2);yVec = data(:,3);


[m,n]=size(xMat);xMatb = [ones(m,1) xMat];%输入数据增加截距项

wVec = ones(n+1,1);

alpha = 0.01;%步长

i = 1;

while i<10000

    yVecMin = (-yVec);

    h = 1./(1 + exp(-yVecMin .* xMatb * wVec));

    r= yVecMin .* xMatb;

    wVec = wVec - alpha * (r' * h/m);

    i = i+1;

end

%两个特征值

% wVec(1)%截距

x1=linspace(-10, 10, 500);

x2=(-wVec(2)*x1-wVec(1))/wVec(3);

% 绘图

[y1] = find(yVec==1);[y0] = find(yVec==-1);

scatter(xMat(y1,1),xMat(y1,2),20,'magenta','filled','d');hold on

scatter(xMat(y0,1),xMat(y0,2),50,'red','filled');hold on

plot(x1,x2,'blue');

,,,

你可能感兴趣的:(西瓜书扩展_Logistic 回归)