MATLAB机器学习工具箱
moboyou 2025-04-23 14:10 37 浏览
MATLAB机器学习工具箱
MATLAB包含统计和机器学习工具箱(Statistics and Machine Learning Toolbox),其包含如下一些子模块:探索性数据分析、数据降维、机器学习、回归和方差分析、概率分布拟合及假设检验等功能模块。
1.工具箱简介
机器学习算法使用计算方法直接从数据中“学习”信息,不把预定方程假设为模型。不同的机器学习算法,按照解决问题的性质,可以分为分类(回归)、聚类和强化学习问题。相应的,在Statistics and Machine Learning Toolbox中提供用于执行受监督和无/非监督机器学习的方法。分类算法使用户可以将一个分类应变量建模为一个或多个预测元的函数。Statistics and Machine Learning Toolbox提供涵盖多种参数化和非参数化分类算法的应用程序和函数,如logistic回归、朴素贝叶斯、k近邻、SVM等。
分类学习器应用程序(Classification Learner App)提供了一个机器学习应用常用的操作,如交互式探查数据、特征选择、指定交叉验证方案、训练模型和评估结果。分类学习器应用程序用于使用监督式机器学习来训练模型对数据进行分类,使用它可以执行常见任务,例如导入数据和指定交叉验证方案;探索数据和选择特征;使用多种分类算法训练模型;比较和评估模型;在计算机视觉和信号处理等应用场合中共享训练过的模型。
除此之外,分类学习器集成了多种可视化方式来方便用户选择模型,进行模型评估和比较。训练好的模型也可以直接导入MATLAB的工作空间,来对新的数据预测,也可以直接生成代码,方便和其他应用集成。
Statistics and Machine Learning Toolbox中也实现了很多聚类算法,聚类算法通过根据相似度测量对数据分组来发现数据集中的规律。可用的算法包括k-均值、k-中心点、分层聚类、高斯混合模型和隐马尔可夫模型。当不知道聚类的数量时,可以使用聚类评估技术根据特定指标确定数据中存在的聚类数量。
2.分类学习器基本流程
对遇构建机器学习应用,通常包括五部分,分别是数据导入、数据的探索和特征选择、训练模型、比较模型和输出模型。
2.1数据导入
首先为了启动分类学习器,可以直接在命令行输入“classification Learner”或者在MATLAB的菜单栏中选择“应用程序”选项卡下的分类学习器应用classification Learner。
导入数据的方法分为两种方式,点击新建对话后,可选择从工作区或文件中导入数据。演示数据通过fishertable=readtable('fisheriris.csv')导入。
该窗口主要目的是用来设置训练数据的相关属性、标签及设置验证集。导入数据依次对应3个步骤,第一步中主要功能是选择数据集,且设置数据集矩阵中的行(rows)作为一个变量,还是将列(columns)作为一个变量;第二步中需要向算法声明哪些维度是输入量,哪些是输出量,对于分类问题来说就是选择哪几个变量作为属性值,哪个变量作为标签。预测变量对应输入,响应变量对应标签。此时导入数据的工作就完成了。
为了优化算法中的一些超参数,需要一定的手段来评估不同参数的表现,其中,验证集的目的是用来对算法的超参数调优。验证集应该是训练集的一部分。但是当训练集数量较少(因此验证集的数量更少)时,将用到交叉验证法。所谓k折交叉验证就是把训练集均分成k份,其中k-1用来训练,1份用来验证。然后循环取k-1份来训练,其中1份来验证,最后取所有k次验证结果的平均值作为算法验证结果。点击开始会话。
2.2选择模型并调整训练参数
该激活的窗口包含了训练一个机器学习应用的核心要素,其大体分为六部分。最上边的菜单栏提供了特征选择、算法选择、训练模型、可视化绘图及输出等操作。特征选择模块用于选择输入特征,即选择属性特征,也可以利用PCA方法自动选择。
分类学习算法分成四大类,分别是决策树类、判别分析类、支持向量机类、神经网络类。除了简单地点击Train进行训练外,还可以通过Advanced按钮设置一些训练的参数。
2.3输出模型
当用户选择一个训练模型后,它就会出现在窗口的右侧方框中。用户可以选择多个模型,依次训练。得到的每个分类器的分类精度会显示在方框中。其中分类效果最好的模型会以方框突出显示。当前模型一栏显示当前模型的一些详细信息。
训练完毕后,用户不仅仅得到一个分类的精度值,同时用户还可以通过各种图形来直观地观测当前模型的表现。当然,图示化训练数据对于数据探索,发现数据的模式也是大有脾益。可以绘制的图形包括训练数据的散点图、混淆矩阵、ROC曲线等。在窗口的最右侧可以设置绘图参数。
通过可视化窗口界面,用户可以再次调整模型,如进一步的特征提取,或者设置更加合理的超参数值,来改善模型的表现。
一但得到满意的模型,可以通过两种方式加以利用。一种是用户导出训练好的模型到工作空间中,这个时候用户将发现变量空间多了一个结构体变量,这个变量含有一个用于预测的成员函数,此时,用户将可以用它来做预测。但是如果用户希望更改模型,或者把它集成到其他的应用,则需要用到另一种方法,也是最通用的方法,即代码的形式使用。
3.分类学习器算法优化与选择
使用工具箱的方法并不是智能的,同样需要对数据进行预处理,并根据经验和分析选择合适的数据特征。另外,机器学习各类算法也具有不同的特点,使用者应在不断的实践中了解各类机器学习算法,在特定的应用场合应选择适合数据自身的算法。
3.1特征选择
在分类学习器中可以通过对原始数据做散点图来分析是否需要或排除某个特征。选择不同特征作为坐标轴,如果数据某一类别数据很好地分开,说明这个特征是有用的。如果某个特征对于分类没有任何作用,则可以考虑把它排除。在fisheriris数据集中选择X和Y分别为PetalLength和PetalWidth,可以看到setosa类能够被很好地分开。
在分类学习器窗口,也可以通过勾选耨个特征,观察分类器的表现。如果删除某个特征后可以提高模型的性能,那么应该排除这个特征,尤其是当收集该数据比较昂贵和困难的时候。具体操作为单击特征组中的特征选择按钮,可以取消勾选特征中特征名称后的复选框。
利用主成分分析来降低特征空间的维度,有助于防止过拟合。PCA能够消除数据中的冗余信息,产生一个新的变量集,该变量集称为主成分。在工具箱中使用PCA包括以下步骤:(1)在分类器的特征中单击PCA按钮;(2)在高级PCA选项中选中启用PCA,并设置响应参数(一般采用默认)。至此,用户已完成了对PCA的设置,之后,当用户点击Train的时候,PCA会首先对数据做变换和处理,然后进行模型训练。
在分类学习器中也可以利用平行坐标图(Parallel Coordinates Plot)来选择特征,具体操作为单击分类学习器窗口的绘图中的平行坐标图按钮,生成平行坐标图。
在平行坐标图中其实它就是把每个特征列在列在一个一维的轴上画出来,然后把每个记录(一个样本点)依次连接起来,最后用不同的颜色表示不同的类别,错分的类别用虚线表示。如果某个特征具有很好的区分度,那么在坐标轴上就会出现明显的聚类现象。从图中可以看出PetalLength和PetalWidth特征具有很好的分类效果。
3.2选择分类器算法
各分类器算法有各自的特点,依赖于具体的需求,如速度、存储、灵活性、可解释性等,会有不同的选择。如果对于一个数据没有特别深刻的理解,或者特别适合的模型,最开始用户可以选择All Quick-To-Train,这个选项会用所有高效的模型对数据进行训练,能够快速地得到不同分类器的表现。但一般来说,不同类型算法用不同的特点,有大概的了解也会有利于用户选择分类器算法。下表对不同类型分类器算法进行了比较。
4.工具箱分类学习实例
本节通过实例来阐述如何使用分类学习器APP。所述的实例是基于fisheriris数据集。中文名为安德森鸢尾花数据集(Anderson’s Iris Data Set),也称鸢尾花数据集(Iris Data Set)或费雪鸢尾花数据集(Fisher’s Iris Data Set),是一类多重变量分析的数据集。其数据集包含了150个样本,都属于鸢尾属下的3个亚属,分别是山鸢尾、变色鸢尾和维吉尼亚鸢尾。4个特征被用于样本的定量分析,它们分别是花萼和花瓣的长度和宽度。因此算法的任务就是基于这4个特征,利用不同的分类算法来分辨它们到底属于哪个亚属。
下面介绍利用Classification Learner实现分类算法的步骤。
(1)在MATLAB命令行中输入命令,进行fisheriris数据集的加载,命令为“fishertable=readtable(‘fisheriris.csv’);”。
(2)对fisheriris数据集的四项特征的数据进行归一化处理,经典的方法有min-max标准化、Z-score标准化、小数点定标标准化。
(3)在上述3种归一化方法种,在本实例中选择第一种方法进行处理。然后MATLAB的“应用程序”选项卡中选择Classification Learner。
(4)经过上一步骤,会出现一个分类学习器窗口。在分类学习器窗口中单击新建对话按钮,此时将出现一个用于数据处理的窗口,按照上节方法进行设置,分别设置预测变量和响应变量及一些关于交叉验证的参数。本实例采取默认设置。之后单击该窗口右下角开始会话。此时,分类学习器创建了一个数据的散点图。可发现散点的分布形式没有发生变化,仅仅是坐标轴的范围发生了改变,这就是对数据进行归一化后的数据结果。用户可以通过选择不同的特征来绘图,从而观察哪些变量能够很好地区分数据。值得注意的是,通过其他方式进行归一化处理,散点的分布形式会有一定的变化。本实例中样本属性特征为4,且各特征对于训练都有作用,因此不进行删减特征处理及PCA主成分分析。
为了应用判别分析算法,单击CLASSIFICATION LEARNER选项卡CLASSIFIER组中的下拉按钮,选择ALL选项,然后单击TRAINING组中的Train按钮,此时,就可以开始训练模型了,经过2~3分钟的训练后。同样,也可以在CLASSIFIER组中的下拉列表中单独选择决策树算法、SVM、logistic回归及集成方法。这里为了方便,这里直接选择ALL选项,它会对训练数据应用所有的可用的分类器。
在图的左侧可以看到总共24个分类算法,最好的分辨率达到了98%的识别率,相应的识别算法包括ComplexTree、Medium Tree、Simple Tree、Quadratic SVM、Medium Gaussian SVM。需要具体了解训练算法的相关参数及训练时间,可单击相应算法,则在其左下角的现有模型窗格中显示。
另外,在散点显示图中,则发现显示为“X”的点,这些点表示预测错误的点,单击图中的散点,可显示出具体的数据信息。
为了观察每个类预测的准确率,可以单击画图组中的混淆矩阵按钮。也可以单击ROC曲线。
(5)最后,为了导出模型,在导出模型下拉列表中可以选择不同的导出方式。本实例中采用导入工作空间的方法,即选择导出模型中的导出紧凑模型。
采用默认值,单击“确定”按钮。此时在MATLAB的工作空间中便显示了一个名为trainedClassifier的结构体数据,即为训练好的模型。
为了利用训练好的数据模型进行新样本的预测,需要调用和使用它的成员函数XXX,predicFcn,其中XXX为模型名称,本实例中使用格式如下:
Yfit=trainedClassifier.predicFcn(T)
其中,T是新预测数据样本,它的形式和数据类型必须于训练中的数据保持一致,且不包含标签。另外,值得注意的是,需要对样本数据采用同样的归一化方法进行训练。
相关推荐
- Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录
-
首先介绍一下此函数:SHEETSNAME函数用于获取工作表的名称,有三个可选参数。语法:=SHEETSNAME([参照区域],[结果方向],[工作表范围])(参照区域,可选。给出参照,只返回参照单元格...
- Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用
-
一、函数概述HOUR函数是Excel中用于提取时间值小时部分的日期时间函数,返回0(12:00AM)到23(11:00PM)之间的整数。该函数在时间数据分析、考勤统计、日程安排等场景中应用广泛。语...
- Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用
-
原创版权所有介绍一个信息管理系统,要求可以实现:多条件、模糊查找,手动输入的内容能去空格。先看效果,如下图动画演示这样的一个效果要怎样实现呢?本文所用函数有Filter和Search。先用filter...
- FILTER函数介绍及经典用法12:FILTER+切片器的应用
-
EXCEL函数技巧:FILTER经典用法12。FILTER+切片器制作筛选按钮。FILTER的函数的经典用法12是用FILTER的函数和切片器制作一个筛选按钮。像左边的原始数据,右边想要制作一...
- office办公应用网站推荐_office办公软件大全
-
以下是针对Office办公应用(Word/Excel/PPT等)的免费学习网站推荐,涵盖官方教程、综合平台及垂直领域资源,适合不同学习需求:一、官方权威资源1.微软Office官方培训...
- WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!
-
办公最常用的60个函数大全:从入门到精通,效率翻倍!在职场中,WPS/Excel几乎是每个人都离不开的工具,而函数则是其灵魂。掌握常用的函数,不仅能大幅提升工作效率,还能让你在数据处理、报表分析、自动...
- 收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程
-
原创版权所有全程图解,方便阅读,内容比较多,请先收藏!Xlookup是Vlookup的升级函数,解决了Vlookup的所有缺点,可以完全取代Vlookup,学完本文后你将可以应对所有的查找难题,内容...
- 批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数
-
批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数在电商运营、物流对账等工作中,经常需要统计快递“揽收到签收”的耗时——比如判断某快递公司是否符合“3天内送达”的服务承...
- Excel函数公式教程(490个实例详解)
-
Excel函数公式教程(490个实例详解)管理层的财务人员为什么那么厉害?就是因为他们精通excel技能!财务人员在日常工作中,经常会用到Excel财务函数公式,比如财务报表分析、工资核算、库存管理等...
- Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!
-
工作中,经常需要从多个单元格区域中提取唯一值,如体育赛事报名信息中提取唯一的参赛者信息等,此时如果复制粘贴然后去重,效率就会很低。如果能合理利用Tocol函数,将会极大地提高工作效率。一、功能及语法结...
- Excel中的SCAN函数公式,把计算过程理清,你就会了
-
Excel新版本里面,除了出现非常好用的xlookup,Filter公式之外,还更新一批自定义函数,可以像写代码一样写公式其中SCAN函数公式,也非常强大,它是一个循环函数,今天来了解这个函数公式的计...
- Excel(WPS表格)中多列去重就用Tocol+Unique组合函数,简单高效
-
在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该...
- Excel(WPS表格)函数Groupby,聚合统计,快速提高效率!
-
在前期的内容中,我们讲了很多的统计函数,如Sum系列、Average系列、Count系列、Rank系列等等……但如果用一个函数实现类似数据透视表的功能,就必须用Groupby函数,按指定字段进行聚合汇...
- Excel新版本,IFS函数公式,太强大了!
-
我们举一个工作实例,现在需要计算业务员的奖励数据,右边是公司的奖励标准:在新版本的函数公式出来之前,我们需要使用IF函数公式来解决1、IF函数公式IF函数公式由三个参数组成,IF(判断条件,对的时候返...
- Excel不用函数公式数据透视表,1秒完成多列项目汇总统计
-
如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...
- 一周热门
- 最近发表
-
- Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录
- Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用
- Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用
- FILTER函数介绍及经典用法12:FILTER+切片器的应用
- office办公应用网站推荐_office办公软件大全
- WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!
- 收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程
- 批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数
- Excel函数公式教程(490个实例详解)
- Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!
- 标签列表
-
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- css class选择器用法 (25)
- css样式引入 (30)
- css教程文字移动 (33)
- php简单源码 (36)
- php个人中心源码 (25)
- php小说爬取源码 (23)
- 云电脑app源码 (22)
- html画折线图 (24)
- docker好玩的应用 (28)
- linux有没有pe工具 (34)
- 可以上传视频的网站源码 (25)
- 随机函数如何生成小数点数字 (31)
- 随机函数excel公式总和不变30个数据随机 (33)
- 所有excel函数公式大全讲解 (22)
- 有动图演示excel函数公式大全讲解 (32)
