fisher线性判别法中矩阵维度问题有2个集合,为正数据集和负数据集,分别包括582个样本和1820个样本,每个样本为24维.使用fisher判别计算w*和阈值y0的时候遇到一些问题.这是代码:%w1是代表第一类
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 10:29:56
fisher线性判别法中矩阵维度问题有2个集合,为正数据集和负数据集,分别包括582个样本和1820个样本,每个样本为24维.使用fisher判别计算w*和阈值y0的时候遇到一些问题.这是代码:%w1是代表第一类
fisher线性判别法中矩阵维度问题
有2个集合,为正数据集和负数据集,分别包括582个样本和1820个样本,每个样本为24维.使用fisher判别计算w*和阈值y0的时候遇到一些问题.这是代码:
%w1是代表第一类数据点的矩阵,w11是原始正数据集,大小为582*24
w1=w11';
%w2是代表第一类数据点的矩阵,w22是原始负数据集,大小为1820*24
w2=w22'
%算各类样本的均值
%算第一类样本的均值
tran_m1=mean(w1);
%%算第二类样本的均值
tran_m2=mean(w2);
m1=tran_m1';
m2=tran_m2';
sb=(m1-m2)*(m1-m2)';%sb是样本间离散度矩阵
计算到这里的时候,matlab程序报错,原因是 m1和m2的维数不匹配.
m1维数是582*1,m2维数是1820*1;
请问要怎么解决?
fisher中两类数据的个数一定要相等吗?
另外,计算阈值y0的时候,两类样本的先验概率是怎么求的?
就是对两类数据个数是否要相等有疑惑。如果不相等,计算sb=(m1-m2)*(m1-m2)';时系统就会报错,矩阵大小不相符无法计算。这要怎么解决?
fisher线性判别法中矩阵维度问题有2个集合,为正数据集和负数据集,分别包括582个样本和1820个样本,每个样本为24维.使用fisher判别计算w*和阈值y0的时候遇到一些问题.这是代码:%w1是代表第一类
是对每个维度就均值吧,第一、二步不用转置.
判断和检验,看教程