LR的推理这里不说了,自己查查吧。或者看http://blog.youkuaiyun.com/redfivehit/article/details/73946956
结论是weight = weight + alpha * weight的偏导数 = weight + alpha * (y- sigmoid(wTx))*x,这里w和x是向量,代码中就是这么实现的。如果是数字,这个公式alpha后面也写成Xi各个变量计算的求和,
data = load('data1.txt');
[row , col] = size(data);
dataMat = data(:,1:col-1);
dataMat = [ones(row,1) dataMat] ;
labelMat = data(:,col);
alpha = 0.001;
maxCycle = 500;
weight = ones(col,1);
for i = 1:maxCycle
returnVals = 1.0./(1.0+exp(-(dataMat * weight)'));
h = returnVals;
error = (labelMat - h');
weight = weight + alpha * dataMat' * error;
end
figure
scatter(dataMat(find(labelMat(:) == 0),2),dataMat(find(labelMat(:) == 0),3),15,'b');
hold on
scatter(dataMat(find(labelMat(:) == 1),2),dataMat(find(labelMat(:) == 1),3),15,'r');
hold on
x = -3:0.1:3;
y = (-weight(1)-weight(2)*

该博客介绍了如何在MATLAB中实现逻辑回归。博主通过加载数据、预处理、设置参数,用梯度上升法更新权重,最后绘制分类边界。代码中展示了逻辑回归的迭代过程,并给出了数据点的可视化结果。
最低0.47元/天 解锁文章
345

被折叠的 条评论
为什么被折叠?



