MATLAB 中的机器学习
什么是机器学习?
机器学习教计算机做对人类来说很自然的事情:从经验中学习。机器学习算法使用计算方法直接从数据“学习”信息,而不依赖预先确定的方程作为模型。随着可用于学习的样本数增加,算法会自适应地提高性能。
机器学习使用两种类型的方法:有监督学习(例如分类和回归),它基于已知的输入和输出数据训练模型,以便能够预测将来的输出;无监督学习(例如聚类),它在输入数据中查找隐藏的模式或内在结构。

有监督机器学习的目标是建立模型,在存在不确定性的情况下基于证据进行预测。有监督学习算法接受一组已知的输入数据和已知的数据响应(输出),并训练模型以对新数据的响应作出合理的预测。有监督学习使用分类和回归方法来开发预测模型。
分类方法预测分类响应,例如电子邮件是真实的还是垃圾邮件,或肿瘤是恶性的还是良性的。分类模型将输入数据分类到各个类别中。典型应用包括医学成像、图像和语音识别以及信用评分。
回归方法预测连续响应,例如温度变化或电力需求波动。典型应用包括电力载荷预测和算法交易。
无监督学习在数据中查找隐藏的模式或内在结构。它适用于对由标注响应的输入数据组成的数据集进行推断。聚类是最常见的无监督学习方法。它用于探索性数据分析,以发现数据中隐藏的模式或分组。聚类的应用包括基因序列分析、市场调研和目标识别。
选择正确的算法
选择正确的算法可能看起来很难 - 有几十种有监督和无监督机器学习算法,每种算法都采用不同的学习方法。没有最好的方法或万能的方法。找到正确的算法一定程度上需要反复试错 - 即使经验丰富的数据科学家也无法在不尝试的情况下判断算法是否有效。高度灵活的模型倾向于通过对可能是噪声的微小变化进行建模来对数据进行过拟合。简单的模型更容易解释,但可能准确度较低。因此,选择正确的算法需要在模型速度、准确度和复杂度等方面进行权衡。试错是机器学习的核心 - 如果一种方法或算法不起作用,您可以尝试另一种。MATLAB® 提供了多种工具,帮助您尝试各种机器学习模型并选择最佳模型。

要查找帮助您解决机器学习任务的 MATLAB App 和函数,请查阅下表。有些机器学习任务通过使用 App 变得更简单,而其他任务则使用命令行功能。
| 任务 | MATLAB App 和函数 | 产品 | 了解更多信息 |
|---|---|---|---|
| 分类以预测分类响应 | 使用分类学习器自动训练一系列模型并帮助您选择最佳模型。您可以生成 MATLAB 代码以与脚本结合使用。 有关更多选项,您可以使用命令行界面。 | Statistics and Machine Learning Toolbox™ | |
| 回归以预测连续响应 | 使用回归学习器自动训练一系列模型并帮助您选择最佳模型。您可以生成 MATLAB 代码以与脚本和其他函数选项结合使用。 有关更多选项,您可以使用命令行界面。 | Statistics and Machine Learning Toolbox | |
| 聚类 | 使用聚类分析函数。 | Statistics and Machine Learning Toolbox | 聚类分析和建立分类模型检测 |
| 计算金融学任务,例如信用评分 | 使用用于信用风险分析建模的工具。 | Financial Toolbox™ 和 Risk Management Toolbox™ | 信用风险 (Financial Toolbox) |
| 使用神经网络进行深度学习的分类和回归 | 使用预训练网络和函数来训练卷积神经网络。 | Deep Learning Toolbox™ | 在 MATLAB 中进行深度学习 (Deep Learning Toolbox) |
| 人脸识别、运动检测和目标检测 | 使用深度学习工具进行图像处理和计算机视觉。 | Deep Learning Toolbox 和 Computer Vision Toolbox™ | 识别、目标检测和语义分割 (Computer Vision Toolbox) |
以下系统化的机器学习工作流可以帮助您应对机器学习挑战。您可以在 MATLAB 中完成整个工作流。

要将最佳训练模型集成到生产系统中,您可以使用 MATLAB Compiler™ 部署 Statistics and Machine Learning Toolbox 机器学习模型。对于许多模型而言,您可以使用 MATLAB Coder™ 生成用于预测的 C/C++ 代码。
在分类学习器中训练分类模型
使用分类学习器训练模型,通过有监督机器学习对数据进行分类。该 App 允许您使用各种分类器以交互方式探索有监督机器学习。
自动训练一系列模型以帮助您选择最佳模型。模型类型包括决策树、判别分析、支持向量机、逻辑回归、最近邻、朴素贝叶斯、核逼近、集成和神经网络分类器。
浏览您的数据,指定验证方案,选择特征并可视化结果。默认情况下,该 App 通过应用交叉验证来防止过拟合。您也可以选择留出法验证。验证结果可帮助您为数据选择最佳模型。图和性能测度反映验证模型的结果。
将模型导出到工作区以对新数据进行预测。除了具有指定验证方案的模型外,该 App 始终基于完整数据训练模型,而完整模型是您导出的模型。
从 App 生成 MATLAB 代码以创建脚本,使用新数据进行训练,处理大型数据集或修改代码以进行进一步分析。
要了解详细信息,请参阅Train Classification Models in Classification Learner App。

有关更多选项,您可以使用命令行界面。请参阅分类。
在回归学习器中训练回归模型
使用回归学习器训练模型,通过有监督机器学习预测连续数据。该 App 允许您使用各种回归模型以交互方式探索有监督机器学习。
自动训练一系列模型以帮助您选择最佳模型。模型类型包括线性回归模型、回归树、高斯过程回归模型、支持向量机、核逼近模型、回归树集成和神经网络回归模型。
探索您的数据,选择特征并可视化结果。与分类学习器类似,回归学习器默认应用交叉验证。结果和可视化反映验证模型。您可以使用这些结果为数据选择最佳模型。
将模型导出到工作区以对新数据进行预测。除了具有指定验证方案的模型外,该 App 始终基于完整数据训练模型,而完整模型是您导出的模型。
从 App 生成 MATLAB 代码以创建脚本,使用新数据进行训练,处理大型数据集或修改代码以进行进一步分析。
要了解详细信息,请参阅Train Regression Models in Regression Learner App。

有关更多选项,您可以使用命令行界面。请参阅回归。
训练神经网络进行深度学习
Deep Learning Toolbox 使您能够使用卷积神经网络进行深度学习,以用于分类、回归、特征提取和迁移学习。该工具箱提供简单的 MATLAB 命令来创建和互连深度神经网络的各个层。示例和预训练网络使得使用 MATLAB 进行深度学习变得容易,即使没有高级计算机视觉算法或神经网络方面的丰富知识也不会感觉困难。
要了解详细信息,请参阅在 MATLAB 中进行深度学习 (Deep Learning Toolbox)。
另请参阅
主题
- Train Regression Models in Regression Learner App
- Train Classification Models in Classification Learner App
- 聚类分析和建立分类模型检测
- 信用风险 (Financial Toolbox)
- 识别、目标检测和语义分割 (Computer Vision Toolbox)
- 在 MATLAB 中进行深度学习 (Deep Learning Toolbox)