使用梯度下降算法设计基于Logistic Regression的二分类器。

来源:互联网 发布:js面向对象编程oop 编辑:程序博客网 时间:2024/06/06 12:28

有监督学习
原理:
这里写图片描述这里写图片描述
流程图:
这里写图片描述
画数据点集图时以q1x.dat数据的第一列数据(设a)和第二列数据(设b)分别了横纵坐标,结合q1y中的数据当q1y(i)==0时点为“红色+”否则为“*”,这样起到了区分两类点的作用。
Theta由已给算法求得,根据hθ(x)=θ0+θ1x1+θ2x2移位求x2(即线的纵坐标)其中x1为a的范围设为c,hθ(x)为0,然后用Logistic画出一条线,尽量使两类点分布在这条线两边。

[主要数据结构]
load q1x.dat;
load q1y.dat;
a = q1x(:,1);
b = q1x(:,2);
[n,m]=size(a);
for i = 1:50
plot(a(i),b(i),’r+’)
for i=51:99
hold on
plot(a(i),b(i),’*’)
end
end
[theta, ll] = logistic_grad_ascent(q1x,q1y);
c=0.5708:0.0001:7.7054;
x2=(0-theta(1)-theta(2)*c)/theta(3);
hold on
plot(c,x2)
只是一部分缺结果图

阅读全文
0 0
原创粉丝点击