clc
clear all
close all
rate=0.02;
qp=zeros(3,3);
data = load('DataMulti.txt');
data = data(:, 1:2);
data = data(1:30, :);
label = [ones(5, 1); zeros(5, 1)];
plot(data(:,1),data(:,2),'*');
trainData = data(1:30, :);
trainData =[ones(size(trainData,1),1) trainData]
q=[1;1;1];
h=trainData*q
g=(1./(1+exp(-h)));
datay=[ones(10,1);zeros(20,1)];
for i=1:100000
q=q-(rate/30)*((g-datay)'*trainData)'
h=trainData*q;
g=(1./(1+exp(-h)));
df=((g-datay)'*trainData)';
if abs(max(df))<0.1
break;
end
end
qp(1:3,1)=q;
q=[1;1;1];
h=trainData*q;
g=(1./(1+exp(-h)));
datay=[zeros(10,1);ones(10,1);zeros(10,1)];
for i=1:100000
q=q-(rate/30)*((g-datay)'*trainData)'
h=trainData*q;
g=(1./(1+exp(-h)));
df=((g-datay)'*trainData)';
if abs(max(df))<0.1
break;
end
end
qp(1:3,2)=q;
h=trainData*q;
g=(1./(1+exp(-h)));
q=[1;1;1];
h=trainData*q;
g=(1./(1+exp(-h)));
datay=[zeros(20,1);ones(10,1)];
for i=1:100000
q=q-(rate/30)*((g-datay)'*trainData)'
h=trainData*q;
g=(1./(1+exp(-h)));
df=((g-datay)'*trainData)';
if abs(max(df))<0.1
break;
end
end
qp(1:3,3)=q;
h=trainData*q;
g=(1./(1+exp(-h)));
%%%测试下训练的结果如何
data = load('DataMulti.txt');
testData = data(31:33, 1:2);
testData =[ones(size(testData,1),1) testData]
h=testData*qp;
g=(1./(1+exp(-h)));
数据的部分,前三十组数据用来训练,最后三组数据用来测试,,最后得出的g是3X3矩阵,其矩阵的出现的概率
表示其模板分别在不同的系数下算出来的概率,这样最高的概率表示对于出现的模板
0.5 0.1
0.5 0.2
0.1 0.3
0.1 0.1
0.1 0.2
0.3 0.2
1.2 0.1
0.5 0.1
0.1 0.2
0.6 0.3
2.8 0.1
2.5 0.1
2.6 0.2
2.1 0.2
2.5 0.2
2.8 0.3
2.9 0.1
2.5 0.1
2.1 0.2
2.6 0.3
2.0 2.6
2.5 2.3
2.6 2.2
2.1 2.3
2.5 2.4
2.8 2.3
2.9 2.9
2.2 2.7
2.1 2.2
2.3 2.7
2.1 0.4
2.2 2.5
0.1 0.2