lda降维代码MATLAB
时间: 2023-09-28 18:14:14 浏览: 66
以下是一个使用MATLAB进行线性判别分析(LDA)降维的示例代码:
```matlab
% 假设我们有两个类别的样本数据,每个类别有n个样本
% 假设我们的特征维度是d维
% 假设我们的样本数据矩阵X的大小为 d × (2n)
% 生成示例数据
n = 100; % 每个类别的样本数量
d = 2; % 特征维度
mean1 = [1, 1]; % 类别1的均值向量
mean2 = [3, 3]; % 类别2的均值向量
covariance = [1, 0.5; 0.5, 1]; % 协方差矩阵
% 生成类别1的样本
X1 = mvnrnd(mean1, covariance, n)';
% 生成类别2的样本
X2 = mvnrnd(mean2, covariance, n)';
% 将样本数据合并到一个矩阵中
X = [X1, X2];
% 标签向量,表示每个样本所属的类别
labels = [ones(1, n), 2*ones(1, n)];
% 使用LDA进行降维
ldaModel = fitcdiscr(X', labels');
ldaCoeff = ldaModel.Coeffs(1,2).Linear; % 获取LDA投影向量
X_lda = X' * ldaCoeff; % 对原始数据进行投影
% 可视化降维结果
figure;
gscatter(X_lda(:,1), zeros(size(X_lda,1),1), labels, 'rg'); % 降维结果散点图
legend('Class 1', 'Class 2');
```
这段代码首先生成了两个类别的示例数据,然后使用LDA模型进行训练。接下来,通过获取LDA投影向量,将原始数据进行投影得到降维后的数据。最后,我们将降维结果可视化展示出来,其中每个类别用不同的颜色表示。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体情况进行修改和优化。希望对你有所帮助!如果有任何问题,请随时提问。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)