最小二乘线性分类器-三类matlab示例

最小二乘线性分类器-三类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

我试图了解如何为我的数据集实现最小二乘线性分类器。问题是,我有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(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页-多类泛化)我使用的是略去一个的方法