一、学习目标。
(1)了解机器学习算法在数学建模中的应用。
(2)掌握机器学习算法中的二分类、多分类、回归、聚类算法。
二、实例演练。
1、谈谈你对机器学习算法与数学建模的了解。
机器学习 ( Machine Learning ) 是一门多领域交叉学科,它涉及到概率论、统计学、计算机科学以及软件工程。机器学习是指一套工具或方法,凭借这套工具和方法,利用历史数据对机器进行“训练”进而“学习”到某种模式或规律,并建立预测未来结果的模型。机器学习涉及两类学习方法:有监督学习,主要用于决策支持,它利用有标识的历史数据进行训练,以实现对新数据的标识的预测。有监督学习方法主要包括分类和回归;无监督学习,主要用于知识发现,它在历史数据中发现隐藏的模式或内在结构。无监督学习方法主要包括聚类。
近年来,全国赛的题目中,多多少少都有些数据,而且数据量总体来说呈不断增加的趋势, 这是由于在科研界和工业界已积累了比较丰富的数据,伴随大数据概念的兴起及机器学习技术的发展, 这些数据需要转化成更有意义的知识或模型。 所以在建模比赛中, 只要数据量还比较大, 就有机器学习的用武之地。
2、用二分类算法对fisheriris数据集进行分析。
以下示例显示了利用 MATLAB 提供的支持向量机模型进行二分类,并在图中画出了支持向量的分布情况(图1中圆圈内的点表示支持向量)
(1)导入数据并处理数据。
%% 支持向量机模型
clc,clear,close all
load fisheriris % 导入数据集,fisheriris是Matlab自带的数据集
%fisheriris数据类别分为3类,setosa,versicolor,virginica.每类植物有50个样本,共150个。
% 读取数据集中的两个分类‘versicolor' 和 'virginica'
inds = ~strcmp(species,'setosa'); % 产生样本标签,属于setosa类的样本类别为0,其他类别(versicolor,virginica)样本类别为1
% 使用两个维度,即第三列和第四列数据。
X = meas(inds,3:4); % 在meas数据矩阵中,前50行数据移除,后100行数据移除;保留第三、四列的数据
y = species(inds); % 移除前50行的种类,保留后50行的种类。
tabulate(y) % tabulate()用于统计数值的个数和频率
运行结果:
下面,我将对这段代码进行详细的分析:
fisheriris是Matlab自带的数据集,fisheriris数据类