Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions LR.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
clear all;
%��׼�����ݼ�
data=importdata('breast.mat');
[di,dj]=size(data);
for i=1:dj-1
data(:,i+1)=data(:,i+1)./max(data(:,i+1));
end
%ѡȡ����
for i=(di-199):di
test(i-di+200,:)=data(i,:);
end
for i=1:dj-1
Test(:,i)=test(:,i+1);
end
learn_num=30;
for num=1:4
number=learn_num*num;
for Ran=1:100
y=rand(1, di-200);
[ignore,p] = sort(y);
for i=1:number
x_0(i,:)=data(p(i),:);
end
for i=1:dj-1
x(:,i)=x_0(:,i+1);
end
%ѵ���㷨��ʼ
k=1;
w=1.+zeros(dj-1,1);
w0=0;
while(k<=50)
p=exp(w0+x*w);
P=p./(1+p);
for i=1:dj-1
w(i)=w(i)+k^-1*sum(x(:,i).*(x_0(:,1)-P));
end
w0=w0+k^-1*sum(x_0(:,1)-P);
k=k+1;
end
%����
error=0;
for i=1:200
p_test=exp(Test(i,:)*w+w0);
if(p_test/(1+p_test)<0.5&test(i,1)==1)
error=error+1;
end
if(p_test/(1+p_test)>=0.5&test(i,1)==0)
error=error+1;
end
end
lev(Ran)=(200-error)/200;
end
w'
level(num)=mean(lev);
clear x x_0 w w0;
end
level
148 changes: 0 additions & 148 deletions README.md

This file was deleted.

102 changes: 102 additions & 0 deletions breast_nb.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
clear all;
%��׼�����ݼ�
data=importdata('breast.mat');
[di,dj]=size(data);
learn_num=30;%��������
for num=1:4
number=learn_num*num;
for Ran=1:100 %�漴ѡȡnumber������100��
y=rand(1, di-200);
[ignore,p] = sort(y);
for i=1:number
x_0(i,:)=data(p(i),:);%�漴ѡ����number������
end
index_1=find(x_0(:,1)==1);
len_1=length(index_1);%�����������ڵ�һ��ı�ź�����
index_2=find(x_0(:,1)==2);
len_2=length(index_2);%�����������ڵڶ���ı�ź�����
for i=1:len_1
x_1(i,:)=x_0(index_1(i),:);%��һ��鵽x_1��
end
for i=1:len_2
x_2(i,:)=x_0(index_2(i),:);%�ڶ���鵽x_2��
end
clear x_0 index_1 index_2;
for i=(di-199):di
test(i-di+200,:)=data(i,:);%ѡȡ���100����Ϊ��������
end
%ѵ����ʼ
for i=2:dj
[x1,y1]=sort(x_1(:,i));
k=x1(1);
z_1(1,1)=x1(1);
z_1(2,1)=1;
j=1;
for I=2:len_1
if(x1(I)==k)
z_1(2,j)=z_1(2,j)+1;
end
if(x1(I)~=k)
k=x1(I);
j=j+1;
z_1(1,j)=k;
z_1(2,j)=1;
end
end
[n,step_1]=size(z_1);
[x2,y2]=sort(x_2(:,i));
k=x2(1);
z_2(1,1)=x2(1);
z_2(2,1)=1;
j=1;
for I=2:len_2
if(x2(I)==k)
z_2(2,j)=z_2(2,j)+1;
end
if(x2(I)~=k)
k=x2(I);
j=j+1;
z_2(1,j)=k;
z_2(2,j)=1;
end
end
[n,step_2]=size(z_2);
%�Ը������IJ��������ĸ���
for t=1:200
for j=1:step_1
dis1(j)=abs(test(t,i)-z_1(1,j));
end
dis_1=find(dis1==min(dis1));
P_1(t,i-1)=z_1(2,dis_1(1))/len_1;
for j=1:step_2
dis2(j)=abs(test(t,i)-z_2(1,j));
end
dis_2=find(dis2==min(dis2));
P_2(t,i-1)=z_2(2,dis_2(1))/len_2;
end
clear x1 x2 y1 y2 z_1 z_2 dis1 dis2 dis_1 dis_2;
end
clear x_1 x_2;
error=0;
for s=1:200
P1=1;
P2=1;
for j=1:dj-1
P1=P1*P_1(s,j);
end
P1=P1*len_1/number;
for j=1:dj-1
P2=P2*P_2(s,j);
end
P2=P2*len_2/number;
if(P1>P2&test(s,1)==2)
error=error+1;
end
if(P1<P2&test(s,1)==1)
error=error+1;
end
end
lev(Ran)=(200-error)/200;
end
level(num)=mean(lev)
end