机器学习是比较宽泛的概念,从国赛历年优秀论文来看,机器学习越来越成为优秀论文不可或缺的因素之一。因此,从本篇开始将进入到机器学习的简单应用。此篇博文将简单记录机器学习的一些基础概念、评判标准和matlab工具箱的使用。由于笔者有一定机器学习基础,因此仅记录比较重要的一些概念,小白阅读可能产生一定难度,更多基础概念可以拉到底部参考资料观看视频了解。

回归问题的评估指标

回归问题是监督学习的内容之一。
评判回归模型的好坏有以下几个指标:

其中,均方根误差RMSE用得最多,可以优先选择使用。

分类问题的评估指标

分类问题是监督学习的另一部分的内容。

首先要理解正类的概念:
“在机器学习中,我们通常将更关注的事件定义为正类事件。(生活中我们通常会更关注那些结果不好的情况的出现) ”——周志华《机器学习》
正类,比如医学中,肿瘤阳性就是正类。

分类之后,可以得到混淆矩阵

评判分类模型的好坏有以下几个指标:

  • 分类准确率(Accuracy)

  • 查全率或召回率(Recall,记为 R)

  • 查准率或精确率(Precision,记为 P)

    用查坏人的例子可以通俗理解查全率R和查准率P:
    查全率 R: 宁可错杀一千个好人,不可漏过一个坏人。(全部识别成坏人时查全率为 1)
    查准率 P: 宁可漏过坏人,不可错杀无辜的好人。(让 FP 尽量小一点,没有充足的证据不会轻易判断一个人是坏人)

  • F1分数(F1 Score)
    F1 分数是查全率和查准率的调和平均数。

    化简得到:

  • ROC 曲线和 AUC

    将不同的模型的 ROC 曲线绘制在同一张图内,最靠近左上角的那条曲线代表的模型的分类效果最好。

留出法

将样本分成训练集和测试集,通过测试集来反应模型的泛化能力,该方法被称作留出法。
缺陷:训练的样本数量减少。

k 折交叉验证

为了弥补留出法的缺陷,提出k 折交叉验证法。
我们先将数据集 D 随机的划分为 k 个大小相似的互斥子集。每一次用 k-1 个子集的并集作为训练集,剩下的一个子集作为测试集;这样就可以获得 k 组训练/测试集,从而可进行 k 次训练和测试,最终返回的是这 k 次测试的平均结果,通常 k 取 10,此时称为 10 折交叉验证。

图片很容易理解,相当于10份样本轮流做测试集,最后返回的是平均结果。
注意!!该方法仅用来进行筛选模型的好坏,筛选出来的模型不能直接用,要将所有样本全部导入训练再用,否则,浪费了1/k(一份)的样本。

过拟合的原因和解决方法

原因:
1.模型中参数设置的过多导致模型过于复杂
2.训练集的样本量不够
3.输入了某些完全错误的的特征(例如:用人的身高来判别西瓜的好坏)

解决方法:
1.通过前面介绍的交叉验证的方法来选择合适的模型,并对参数进行调节
2.扩大样本数量、训练更多的数据
3.对模型中的参数增加正则化(即增加惩罚项,参数越多惩罚越大)

欠拟合的解决方法

1.增加模型的参数
2.从数据中挖掘更多的特征来增加输入的变量
3.选择更加复杂的模型
4.使用一些集成算法(如装袋法(Bagging),提升法(Boosting))

Classification Learner工具箱实操

Classification Learner工具箱简介

Classification Learner是matlab自带的一个工具箱,里面内置了多种机器学习模型可供调用,无需编程,一键搞定。

导入数据

下面以著名的多分类鸢尾花数据集为例。

在matlab中选择导入数据

144组训练集作为d1:

6组测试集作为d2:

工具箱设置

选择Classification Learner工具箱:

新建会话

选择交叉验证方法,K设置为10折。

选择全部模型,开始训练:

训练结果演示

训练好之后,matlab会自动将准确度最高的模型标注出来:

此外,还有ROC曲线之类的图像可供选择,可以放到论文里。

导出模型

选择效果最好的模型,勾选导出

模型预测

有了模型之后,可以将d2测试集导进去进行预测。

 yfit = trainedModel.predictFcn(d2)

trainedModel是导出模型的默认名字。
运行完之后,预测结果会在命令行进行打印。

注:matlab导出模型后,会自动运用所有的数据(full model),因此不用担心是否因交叉验证而丢失一组数据。

论文应用

在2020国赛C题中,有一篇论文使用了该工具箱,并将结果非常清晰地展现了出来。
排版简洁工整,值得学习:


完整的论文我上传到了我的资源内2020国赛C题优秀论文

参考资料

本博文视频和内容主要参考自数学建模清风第四次直播:利用matlab快速实现机器学习

数学建模暑期集训24:机器学习与Classification Learner工具箱实操相关推荐

  1. 数学建模暑期集训6:用SPSS对数据进行多元线性回归分析

    在本专栏的第六篇数学建模学习笔记(六)多元回归分析算法(matlab)博文中,记录了如何用matlab进行多元回归分析.本篇则将使用spss软件达到同样的效果,且使用起来比matlab更为方便. 空谈 ...

  2. 数学建模暑期集训14:博弈论与纳什均衡

    前言 博弈论的内容在数学建模中比较少见,但2020年国赛B题确实考到了这一部分,因此掌握一些基本的原理方法还是有所必要.并且,博弈论本身和模糊综合评价类型比较类似,都是难度不高,不太依赖编程的方法,掌 ...

  3. 数学建模暑期集训26:遗传算法

    遗传算法是优化类问题的经典智能算法.本篇将介绍遗传算法的基本概念以及利用遗传算法来求解单目标规划模型. 达尔文进化论的基本思想 遗传算法的设计是受到达尔文进化论的启发.先看下面这张图的几个基本概念. ...

  4. 数学建模暑期集训21:主成分分析(PCA)

    当遇到指标众多的场景时,以前通常的处理方法基本采用逐步回归的思想.即判断各指标之间的相关程度,保留几个重要的指标, 剔除其它不重要的指标.相关方法有:三大相关系数计算法.多元线性回归法.随机森林法.灰 ...

  5. 数学建模暑期集训15:matlab求解多目标规划模型

    多目标规划模型的求解方法 1.传统优化算法 1.1主要目标法 1.2分层序列法 1.3加权法 1.4理想点法 2.智能优化算法 遗传算法等- 例题实战:MATLAB中多目标遗传算法求解法 通用形式 例 ...

  6. 数学建模暑期集训17:蒙特卡洛法

    定义 蒙特卡罗⽅法⼜称统计模拟法,是⼀种随机模拟⽅法,将所求解的问题同⼀定的概率模型相联系,⽤电⼦计算机实现统计模拟或抽样,以获得问题的近似解.为象征性地表明这⼀⽅法的概率统计特征,故借⽤赌城蒙特卡罗 ...

  7. matlab篮球队需要五名队员,2016年数学建模暑期训练题目

    2016年武汉理工大学数学建模暑期培训练习题 1.编写MATLAB 和lingo 程序求解下列方程(组) (1)4 x sin x cos x += (2) x x 24-= (3)求方程 ()074 ...

  8. 浅谈数学、数学建模与人工智能(机器学习,深度学习)之间的关系?

    前言:         说来也巧合,我在大学里加入的第一个社团就是数学建模,各种各样的社团对我没有完全没有吸引力,什么舞蹈.爱心.创业.英语等,加入数学建模的原因有二:一是可以参加比赛,二是可以认识更 ...

  9. 数学建模常用模型24:时间序列分析

    给大家安利一款朋友开发的自研国产数据分析基础工具,一键式自动分析,自动生成分析模板,5分钟掌握主流61个统计类数学模型(几乎涵盖SPSS绝大部分功能),以及23个有监督机器学习(包括随机森林,SVM, ...

  10. 【数学建模暑期培训】Matlab数据分析 数据处理 数据挖掘

    文章目录 数据预处理任务 数据集成 数据变换 数据清洗 数据规约 主要处理函数 数据预处理任务 数据清洗:去掉数据中的噪声,纠正不一致 数据集成:将多个数据源合并成一致的数据存储,构成一个完整的数据集 ...

最新文章

  1. SQL Server递归查询无限级分类
  2. PTP4L命令手册(谷歌翻译)
  3. C++类构造函数初始化列表
  4. FreeBSD学习总结
  5. jQuery加载一个html页面到指定的div里
  6. confluence 5 mysql_Centos 6.5 安装 Atlassiana Crowd+JIRA+Confluence(Wiki)之一 数据库篇(MySQL5.1)...
  7. Docker框架使用系列教程(五)容器间的链接
  8. rxjs interval和take的混合使用
  9. AMD迎接变革:加速OpenCL的未来
  10. C语言字符5,c语言总览5:字符输入和输出
  11. ubuntu英伟达显卡驱动安装记录2
  12. 【datawhale-gitmodel】以波士顿房价数据进行数据分析和数据可视化
  13. adams c语言,Adams2013编译C语言用户子程序生成dll超详细教程讲解
  14. 量化投资中收益率的计算方法
  15. 分布式统一框架的设计与实现(数据库)
  16. 土地利用分类数据类型和下载
  17. 国家各个政府机构网站
  18. html的nofollow、noindex标签
  19. ue4设置图片大小_如何达成照片级渲染效果,UE4来助你一臂之力
  20. 草根精神改变历史,山寨模式创造未来

热门文章

  1. 青空格斗SolanoBattle源代码分享(我的2020大一游戏作)
  2. VTK:二次六面体用法实战
  3. 一口气说出 OAuth2.0 的四种授权方式,面试官会高看一眼
  4. vga接口和hdmi接口的区别
  5. installshield 安装mysql数据库_使用 InstallShield 安装和卸载SQL Server 数据库
  6. make_blobs
  7. hadoopsnappy解压_Hadoop安装配置snappy压缩
  8. ​社交产品盈利方式产品模式设计案例
  9. 通过easyx窗口实现贪吃蛇
  10. 路由器选华硕还是tp_路由器,网件的好还是华硕的好?