最小二乘线性分类器-三类matlab示例
我试图了解如何为我的数据集实现最小二乘线性分类器。问题是,我有3门课,我不知道如何做到这一点 这是一个尝试。这适用于2个类,但我怀疑当我们有M>2个类时,情况会有所不同。另外,理论上说,对于M>2类,我们应该遵循一个稍微不同的过程,但我不明白最小二乘线性分类器-三类matlab示例,matlab,machine-learning,classification,pattern-recognition,least-squares,Matlab,Machine Learning,Classification,Pattern Recognition,Least Squares,我试图了解如何为我的数据集实现最小二乘线性分类器。问题是,我有3门课,我不知道如何做到这一点 这是一个尝试。这适用于2个类,但我怀疑当我们有M>2个类时,情况会有所不同。另外,理论上说,对于M>2类,我们应该遵循一个稍微不同的过程,但我不明白 class1=load('class_1.dat'); class2=load('class_2.dat'); class3=load('class_3.dat'); [m1_ML,S1_ML]=Gaussian_ML_estimate(class
class1=load('class_1.dat');
class2=load('class_2.dat');
class3=load('class_3.dat');
[m1_ML,S1_ML]=Gaussian_ML_estimate(class1');
[m2_ML,S2_ML]=Gaussian_ML_estimate(class2');
[m3_ML,S3_ML]=Gaussian_ML_estimate(class3');
m1_ML
S1_ML
m2_ML
S2_ML
m3_ML
S3_ML
for i=1:50
for j=1:4
CLASS(i,j)=class1(i,j);
CLASS(i+50,j)=class2(i,j);
CLASS(i+100,j)=class3(i,j);
end
end
CLASS1=CLASS';
for i=1:50
true_labels(i)=1;
true_labels(i+50)=2;
true_labels(i+100)=3;
end
classified=ones(1,150);
n=150;
for j = 1:n
inds = true(n,1);
inds(j) = false;
X1= CLASS1(:,inds);
Y1= CLASS1(:,~inds);
TL1=true_labels(:,inds);
TL2=true_labels(:,~inds);
for i=1:4
[m11(i),S11(i)]=Gaussian_ML_estimate(X1(i,find(TL1==1)));
end
for i=1:4
[m22(i),S22(i)]=Gaussian_ML_estimate(X1(i,find(TL1==2)));
end
for i=1:4
perFeature1(i,:)=normpdf(Y1(i,:),m11(i),sqrt(S11(i)));
perFeature2(i,:)=normpdf(Y1(i,:),m22(i),sqrt(S22(i)));
end
naive_probs1=prod(perFeature1);
naive_probs2=prod(perFeature2);
if naive_probs1<naive_probs2
classified(j)=2;
end
end
Naive_Error=sum(true_labels~=classified)/150
class1=load('class_1.dat');
类别2=荷载(“类别2.dat”);
类别3=荷载(“类别3.dat”);
[m1_-ML,S1_-ML]=高斯估计(class1');
[m2_-ML,S2_-ML]=高斯估计(类别2’);
[m3_-ML,S3_-ML]=高斯估计(3类’);
m1_ML
S1_ML
平方米/毫升
S2_ML
立方米/毫升
S3_ML
对于i=1:50
对于j=1:4
类别(i,j)=类别1(i,j);
类别(i+50,j)=类别2(i,j);
类别(i+100,j)=类别3(i,j);
终止
终止
类别1=类别';
对于i=1:50
真_标签(i)=1;
真_标签(i+50)=2;
真_标签(i+100)=3;
终止
分类=个(1150);
n=150;
对于j=1:n
inds=真(n,1);
inds(j)=假;
X1=类别1(:,inds);
Y1=类别1(:,~inds);
TL1=真实标签(:,IND);
TL2=真标签(:,~inds);
对于i=1:4
[m11(i),S11(i)]=高斯估计(X1(i,find(TL1==1));
终止
对于i=1:4
[m22(i),S22(i)]=高斯估计(X1(i,find(TL1==2));
终止
对于i=1:4
性能1(i,:)=normpdf(Y1(i,:)、m11(i)、sqrt(S11(i));
性能2(i,:)=标准PDF(Y1(i,:)、m22(i)、sqrt(S22(i));
终止
天真的问题1=产品(性能1);
天真的问题2=产品(性能2);
如果是幼稚的问题,你能为我们找到这个理论的联系吗?对于如何用线性边界划分多个类,我有点困惑。你在尝试一对一的方法吗?正是(967年第117页-多类泛化)我使用的是略去一个的方法