【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比

【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比

一、数据介绍

基于UCI葡萄酒数据集进行葡萄酒分类及产地预测

共包含178组样本数据,来源于三个葡萄酒产地,每组数据包含产地标签及13种化学元素含量,即已知类别标签。
把样本集随机分为训练集和测试集(70%训练,30%测试),根据已有数据集训练一个能进行葡萄酒产地预测的模型,以正确区分三个产地所产出的葡萄酒,
分别采用PCA+Kmeans、PCA+LVQ、BP神经网络等方法进行模型的训练与测试,准确率都能达到95%左右。

二、效果展示

1.PCA-Kmeans

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

train_accuracy = 0.95

test_accuracy = 0.98

2.PCA-LVQ

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.BP

在这里插入图片描述
在这里插入图片描述

三、代码展示(部分代码)

clear all;
wine_data = xlsread('wine.xlsx');  %分类标签默认第一列

method = 'BP';%PK: PCA & Kmeans 
%PL:        PCA & LVQ  
%BP:         BP Neural Network'
rate = 0.7;%训练集70%,测试集30%
N = size(unique(wine_data(:,1)),1);;

total_cnt = size(wine_data,1);
train_cnt = round(total_cnt*rate);
test_cnt = total_cnt - train_cnt;

rand_idx = randperm(total_cnt);
train_idx = rand_idx(1:train_cnt);
test_idx = rand_idx(train_cnt+1:total_cnt);

train_data = wine_data(train_idx,2:size(wine_data,2));
train_class = wine_data(train_idx,1);
test_data = wine_data(test_idx,2:size(wine_data,2));
test_class = wine_data(test_idx,1);
dim = size(wine_data,2)-1;

%矩阵z-score标准化
train_SM = zeros(train_cnt,dim);
data_mean = mean(train_data);
data_std = std(train_data);
test_SM = zeros(test_cnt,dim);
for j = 1:dim
    train_SM(:,j) = (train_data(:,j) - data_mean(j)) / data_std(j);
    test_SM(:,j) = (test_data(:,j) - data_mean(j)) / data_std(j);
end

四、代码获取

私信回复“58期”即可获取下载链接。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
随着我国葡萄酒业的逐步发展,葡萄酒生产企业的规模和数量不断扩大。但中国的葡萄酒业仍面临着进口酒的激烈竞争以及质量检测体系不明确带来的市场紊乱。针对这些问题,本文分析了葡萄酒质量人工品尝存在的不足,并提出了如何提高基于数据挖掘技术的葡萄酒质量等级的识别率,对中国葡萄酒市场的稳定发展以及更好地酿造出高质量的葡萄酒有着实际的应用价值。在数据挖掘中,经常会遇到不平衡数据的分析。相对于多数类来说,少数类样本对准确率的影响力小,这意味着对所有样本进行分类,可以在不识别出任何少数类样本的情况下得到很高的正确率,识别少数类的分类规则也就被忽略了。本文的创新点在于从不平衡样本中提取平衡样本进行建模并对测试样本预测,进行多次的循环,得到多次的预测结果,选择次数出现最多的预测结果作为最终的预测结果,大大提高了低质量葡萄酒的识别率。本文采用BP神经网络对葡萄酒种类进行模式识别,通过对在意大利同一区域里三种的葡萄酒的化学成分分析,数据含有178个样本,每个样本含有13个特征分量,每个样本的类别标签已定。其中将这178个样本的65%作为训练样本,另外35%作为测试样本,用训练样本对BP神经网络进行训练可以得到相对应的分类模型,在利用训练好的模型对测试样本进行分类识别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风飘摇的土木狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值