【MATLAB第96期】基于MATLAB的SVM(线性)、SVM(高斯)、决策树、KNN等机器学习算法回归及分类Boost集成学习模型(含不同模型权重)
引言
文章使用Boost集成学习方法,对多个机器学习模型进行融合,并通过算法得到对应权重。
因暂时精力有限,仅展示了测试集预测结果,以及有限的机器学习算法模型,包括不同核函数的支持向量机svm(linear、gaussian)、不同NumNeighbors值的K邻近KNN算法以及决策树算法。
后期将不定期更新训练集预测效果、多种机器学习算法以及多种集成算法的结果。
一、分类预测
1、数据设置:
12特征变量,1因变量,4分类
%% 1.清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 2.导入数据
res = xlsread('数据集C.xlsx');
%% 3.划分训练集和测试集
temp = randperm(357);
P_train = res(temp(1: 240), 1: 12)';
T_train = res(temp(1: 240), 13)';
M = size(P_train, 2);
P_test = res(temp(241: end), 1: 12)';
T_test = res(temp(241: end), 13)';
N = size(P_test, 2);
%% 4.数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input );
t_train = T_train;
t_test = T_test ;
2、训练学习器
Learner = {‘SVM(线性)’, ‘SVM(高斯)’, ‘KNN(1)’, ‘KNN(2)’, ‘KNN(3)’, ‘决策树’}
3、集成结果
二、回归预测
1、数据设置:
7特征变量,1因变量
%% 1.清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 2.导入数据
res = xlsread('数据集.xlsx');
%% 3.划分训练集和测试集
temp = randperm(103);
P_train = res(temp(1: 80), 1: 7)';
T_train = res(temp(1: 80), 8)';
M = size(P_train, 2);
P_test = res(temp(81: end), 1: 7)';
T_test = res(temp(81: end), 8)';
N = size(P_test, 2);
%% 4.数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
2、训练学习器
Learner = {‘SVM(线性)’, ‘SVM(高斯)’, ‘决策树’};
3、集成结果
三、代码获取
1.阅读首页置顶文章
2.关注CSDN
3.根据自动回复消息,回复“96期”以及相应指令,即可获取对应下载方式。