第4讲MATLAB数据建模方法(下)机器学习方法.PDF
第4 讲 MATLAB 数据建模方法(下) :机器学习方法
作者:马文辉,MathWorks 中国
近年来,全国赛的题目中,多多少少都有些数据,而且数据量总体来说呈不
断增加的趋势, 这是由于在科研界和工业界已积累了比较丰富的数据,伴随大
数据概念的兴起及机器学习技术的发展, 这些数据需要转化成更有意义的知识
或模型。 所以在建模比赛中, 只要数据量还比较大, 就有机器学习的用武之
地。
1 MATLAB 机器学习概况
机器学习(Machine Learning)是一门多领域交叉学科,它涉及到概率论、统
计学、计算机科学以及软件工程。机器学习是指一套工具或方法,凭借这套工具
和方法,利用历史数据对机器进行“训练”进而“学习”到某种模式或规律,并
建立预测未来结果的模型。
机器学习涉及两类学习方法 (如图1):有监督学习,主要用于决策支持,它
利用有标识的历史数据进行训练,以实现对新数据的标识的预测。有监督学习方
法主要包括分类和回归;无监督学习,主要用于知识发现,它在历史数据中发现
隐藏的模式或内在结构。无监督学习方法主要包括聚类。
图1 机器学习方法
MATLAB 统计与机器学习工具箱 (Statistics and Machine Learning
Toolbox)支持大量的分类模型、回归模型和聚类的模型,并提供专门应用程序
(APP),以图形化的方式实现模型的训练、验证,以及模型之间的比较。
分类
分类技术预测的数据对象是离散值。例如,电子邮件是否为垃圾邮件,肿瘤
是癌性还是良性等等。分类模型将输入数据分类。 典型应用包括医学成像,信
用评分等。MATLAB 提供的分类算法包括:
图2 分类算法家族
回归
回归技术预测的数据对象是连续值。例如,温度变化或功率需求波动。 典
型应用包括电力负荷预测和算法交易等。回归模型包括一元回归和多元回归,线
性回归和非线性回归,MATLAB 提供的回归算法有:
图3 回归算法家族
聚类
聚类算法用于在数据中寻找隐藏的模式或分组。聚类算法构成分组或类,类
中的数据具有更高的相似度。聚类建模的相似度衡量可以通过欧几里得距离、概
率距离或其他指标进行定义。MATLAB 支持的聚类算法有:
图4 聚类算法家族
以下将通过一些示例演示如何使用MATLAB 提供的机器学习相关算法进行数
据的分类、回归和聚类
2 分类技术
支持向量机(SVM)
SVM 在小样本、非线性及高维数据分类中具有很强的优势。在 MATLAB 中,
可以利用SVM 解决二分类问题。同时也可以使用SVM 进行数据的多分类划分。
1) 二分类
以下示例显示了利用MATLAB 提供的支持向量机模型进行二分类,并在图中
画出了支持向量的分布情况(图1 中圆圈内的点表示支持向量)。MATLAB 支持SVM
的核函数(KernelFunction 参数)有:线性核函数(Linear),多项式核函数
(Polynomial)、高斯核函数(Gaussian)。
图5 支持向量分布
2) 多分类
MATLAB 多分类问题的处理是基于二分类模型.下面的示例演示如何利用
SVM 的二分类模型并结合fitcecoc 函数解决多分类问题。
MATLAB 的fitcecoc 函数支持多种二分类模型,例如, templateKNN,
templateTree, templateLinear, templateNaiveBayes, 等等。
3 回归
回归模型描述了响应(输出)变量与一个或多个预测变量(输入)变量之间
的关系。 MATLAB 支持线性,广义线性和非线性回归模型。以下示例演示如何训
练逻辑回归模型。
逻辑回归
在MATLAB 中,逻辑回归属于广义线性回归的范畴,可以通过使用fitglm 函
数实现逻辑回归模型的训练。
4 聚类
聚类是将数据集分成组或类。 形成类,使得同一类中的数据非常相似,而
不同类中的数据差异非常明显。
层次聚类
下面以层次聚类方法为例,演示如何利用MATL