matlab举例logistic regression

来源:互联网 发布:windows电脑翻墙失败 编辑:程序博客网 时间:2024/05/16 13:48

LR的推理这里不说了,自己查查吧。或者看http://blog.csdn.net/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)*x)/weight(3);
plot(x,y)
hold off


运行结果


原创粉丝点击