线性判别分析LDA—西瓜书课后题3.5—MATLAB代码

本文通过MATLAB详细解析了西瓜书3.5节的线性判别分析(LDA)课后习题,结合西瓜数据集,探讨LDA在实际问题中的应用,包括数据预处理、模型构建及结果分析。
摘要由CSDN通过智能技术生成

西瓜的数据集:
在这里插入图片描述

clc
clear all
[num,txt]=xlsread('G:\usefile\WaterMelon_3.0.xlsx');
%提取有效数据
data=num(1:end,[1,8,9]); %取第1,8,9,列
label_txt=txt([2:end],10);%取第10列
label=ismember(label_txt,'是');%看label_txt中的值是不是等于“是”,是的话结果返回1,不是返回0;
%整理所需数据
data=[data,label];
class1=data(find(label==1),[2,3]);
class2=data(find(label==0),[2,3]);
 
%核心代码
mu1=mean(class1);%均值
mu2=mean(class2);
s1=cov(class1);%协方差
s2=cov(class2);
sw=s1+s2; %类内散度矩,对应(式3.33)
sb=(mu1-mu2)'*(mu1-mu2); %类间散度矩,对应(式3.33)
[V,D]=eig(inv(sw)*sb) %求矩阵inv(sw)*sb的全部特征值,构成对角阵D,并求inv(sw)*sb的特征向量构成V的列向量
w=V(:,2)%取较大特征值对应的特征向量,(w的闭式解是inv(sw)*sb的N-1个特征值所对应的的特征向量组成的矩阵
pre_value1=class1*w;%预测值
pre_value2=class2*w;
pre_value
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值