当前位置:网站首页>【回归预测-lssvm分类】基于最小二乘支持向量机lssvm实现数据分类代码
【回归预测-lssvm分类】基于最小二乘支持向量机lssvm实现数据分类代码
2022-07-30 14:07:00 【Matlab科研工作室】
1 内容介绍
在信息爆炸的新时代,由于全球科技与经济迅猛发展,数据充斥在各行各业,数据的结构也变得多样化.其中对于数据的分类最常见,伴随着数据分类的同时出现两大处理难点,一个是非均衡问题,另一个就是高维问题.但是传统的数据方法在进行数据挖掘时,低维平衡数据被重点关注,传统分类方法有线性判别分析,Logistic判别模型,支持向量机算法,K近邻算法,决策树算法,随机森林算法,神经网络学习,等.但是目前各个领域充斥着大量高维非均衡数据,而传统方法对非均衡数据分类问题的关注比较缺失.目前对于非均衡数据分类时,由于数量本身的严重偏斜,分类器整体的分类准确度良好恰恰归功于多数类样本的正确分类.
2 仿真代码
%基于SVM的iris数据辨识
clear;
clc;
A=load('irisdata.txt'); %导入数据
data = A(:,1:4); %1—4列数据是鸢尾花的4个特征:花萼和花瓣的长度和宽度
labels = A(:,5); %最后一列是属性标签。1代表山鸢尾(iris-setosa),
%2代表变色鸢尾(iris-versicolor),3代表维吉尼亚鸢尾(iris-virginica)
%将第一类的1-20,第二类的51-70,第三类的101-120做为训练集
train_iris=[data(1:20,:);data(51:70,:);data(101:120,:)];
%相应的训练集的标签也要分离出来
train_iris_labels = [labels(1:20);labels(51:70);labels(101:120)];
%将第一类的21-50,第二类的71-100,第三类的121-150做为测试集
test_iris=[data(21:50,:);data(71:100,:);data(121:150,:)];
%相应的测试集的标签也要分离出来
test_iris_labels = [labels(21:50);labels(71:100);labels(121:150)];
%数据预处理 将训练集和测试集进行归一化处理 归一化到[0,1]区间
[mtrain,ntrain] = size(train_iris);
[mtest,ntest] = size(test_iris);
dataset = [train_iris;test_iris];
% mapminmax为MATLAB自带的归一化函数
[dataset_scale,ps] = mapminmax(dataset',0,1)
dataset_scale = dataset_scale';
train_iris = dataset_scale(1:mtrain,:);
test_iris = dataset_scale( (mtrain+1):(mtrain+mtest),: );
% SVM网络训练
model = svmtrain(train_iris_labels, train_iris, '-c 2 -g 1');
%% SVM网络预测
[predict_label,accuracy] = svmpredict(test_iris_labels,test_iris,model);
figure;
hold on;
plot(test_iris_labels,'o');
plot(predict_label,'r*');
xlabel('测试集样本','FontSize',12);
ylabel('类别标签','FontSize',12);
legend('实际测试集分类','预测测试集分类');
title('测试集的实际分类和预测分类图','FontSize',12);
grid on;
snapnow;
3 运行结果
4 参考文献
[1]李飞. 基于改进粒子群算法的支持向量机参数优化[D]. 河北工业大学.
[1]沈会. 基于最小二乘支持向量机方法的统计优化预测模型[D]. 武汉理工大学, 2018.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
边栏推荐
- 开始学习C语言了
- Digital signal processing course lab report (what foundation is needed for digital signal processing)
- 时序数据库在船舶风险管理领域的应用
- Jenkins自动化部署项目
- No-code development platform application visible permission setting introductory tutorial
- redis6.0 源码学习(五)ziplist
- Flask框架——Flask-Mail邮件
- 关于容器的小案例
- 43.【list链表的定义及初始化】
- 如何在 TiDB Cloud 上使用 Databricks 进行数据分析 | TiDB Cloud 使用指南
猜你喜欢
A new generation of open source free terminal tools, so cool
Flask框架——Sijax
激光雷达点云语义分割论文阅读小结
[Advanced ROS] Lecture 11 Robot co-simulation based on Gazebo and Rviz (motion control and sensors)
一文读懂网络效应对Web3的重要意义
ECCV 2022 | Towards Data Efficient Transformer Object Detectors
A Small Case About Containers
内容产品进化三板斧:流量、技术、产品形态
The way of programmers' cultivation: do one's own responsibilities, be clear in reality - lead to the highest realm of pragmatism
Shell变量与赋值、变量运算、特殊变量、重定向与管渠
随机推荐
LeetCode二叉树系列——145.二叉树的后序遍历
CF338E Optimize!
ESP32 反复重启问题 Arduino屏蔽断电探测器
我为何从开发人员转做测试,3年软件测试工程师,带你聊聊这其中的秘辛
BI-SQL丨WHILE
Chapter6 : Has Artificial Intelligence Impacted Drug Discovery?
关于String的一些思考
The path to uniting the programmer: "titles bucket" to the highest state of pragmatic
A simple change for problem, knapsack problem sets of shell
(HR面试)最常见的面试问题和技巧性答复
(一)Multisim安装与入门
开始学习C语言了
LeetCode二叉树系列——144.二叉树的最大深度
无代码开发平台应用可见权限设置入门教程
The way of programmers' cultivation: do one's own responsibilities, be clear in reality - lead to the highest realm of pragmatism
无代码开发平台全部应用设置入门教程
LeetCode二叉树系列——116.填充每个节点的下一个右侧指针
时序数据库在船舶风险管理领域的应用
Six-faced ant financial clothing, resisting the bombardment of the interviewer, came to interview for review
那些破釜沉舟入局Web3.0的互联网精英都怎么样了?