0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MATLAB数据建模方法中的机器学习方法介绍

MATLAB 来源:djl 作者:马文辉 2019-09-16 14:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

近年来,全国赛的题目中,多多少少都有些数据,而且数据量总体来说呈不断增加的趋势, 这是由于在科研界和工业界已积累了比较丰富的数据,伴随大数据概念的兴起及机器学习技术的发展, 这些数据需要转化成更有意义的知识或模型。 所以在建模比赛中, 只要数据量还比较大, 就有机器学习的用武之地。

1.MATLAB机器学习概况

机器学习 ( Machine Learning ) 是一门多领域交叉学科,它涉及到概率论、统计学、计算机科学以及软件工程。机器学习是指一套工具或方法,凭借这套工具和方法,利用历史数据对机器进行“训练”进而“学习”到某种模式或规律,并建立预测未来结果的模型。

机器学习涉及两类学习方法(如图1):有监督学习,主要用于决策支持,它利用有标识的历史数据进行训练,以实现对新数据的标识的预测。有监督学习方法主要包括分类和回归;无监督学习,主要用于知识发现,它在历史数据中发现隐藏的模式或内在结构。无监督学习方法主要包括聚类。

MATLAB数据建模方法中的机器学习方法介绍

图1 机器学习方法

MATLAB 统计与机器学习工具箱(Statistics and Machine Learning Toolbox)支持大量的分类模型、回归模型和聚类的模型,并提供专门应用程序(APP),以图形化的方式实现模型的训练、验证,以及模型之间的比较。

分类

分类技术预测的数据对象是离散值。例如,电子邮件是否为垃圾邮件,肿瘤是癌性还是良性等等。 分类模型将输入数据分类。 典型应用包括医学成像,信用评分等。MATLAB 提供的分类算法包括:

MATLAB数据建模方法中的机器学习方法介绍

图2 分类算法家族

回归

回归技术预测的数据对象是连续值。 例如,温度变化或功率需求波动。 典型应用包括电力负荷预测和算法交易等。回归模型包括一元回归和多元回归,线性回归和非线性回归,MATLAB 提供的回归算法有:

MATLAB数据建模方法中的机器学习方法介绍

图3 回归算法家族

聚类

聚类算法用于在数据中寻找隐藏的模式或分组。聚类算法构成分组或类,类中的数据具有更高的相似度。聚类建模的相似度衡量可以通过欧几里得距离、概率距离或其他指标进行定义。MATLAB 支持的聚类算法有:

MATLAB数据建模方法中的机器学习方法介绍

图4 聚类算法家族

以下将通过一些示例演示如何使用 MATLAB 提供的机器学习相关算法进行数据的分类、回归和聚类。

2.分类技术

支持向量机(SVM)

SVM 在小样本、非线性及高维数据分类中具有很强的优势。在 MATLAB 中,可以利用 SVM 解决二分类问题。同时也可以使用 SVM 进行数据的多分类划分。

1) 二分类

以下示例显示了利用 MATLAB 提供的支持向量机模型进行二分类,并在图中画出了支持向量的分布情况(图5中圆圈内的点表示支持向量)。MATLAB 支持 SVM 的核函数(KernelFunction 参数)有:线性核函数(Linear),多项式核函数(Polynomial)、高斯核函数(Gaussian)。

%% 支持向量机模型

loadfisheriris;

% 数据只取两个分类:‘versicolor' 和 'virginica'

inds = ~strcmp(species,'setosa');

% 使用两个维度

X = meas(inds,3:4);

y = species(inds);

tabulate(y)

Value Count Percent

versicolor 50 50.00%

verginica 50 50.00%

%% SVM模型训练,使用线性核函数

SVMModel = fitcsvm(X, y,'KernelFunction','linear');

%% 查看进行数据划分的支持向量

sv = SVMModel.SupportVectors;

figure

gscatter( X( : , 1) , X( : , 2) ,y)

holdon

plot(sv( : , 1) , sv( : , 2) ,'ko','MarkerSize', 10)

legend('versicolor','virginica','Support Vector')

holdoff

MATLAB数据建模方法中的机器学习方法介绍

图5 支持向量分布

2)多分类

MATLAB 多分类问题的处理是基于二分类模型.下面的示例演示如何利用 SVM 的二分类模型并结合 fitcecoc 函数解决多分类问题。

% 导入Fisher' s iris数据集

loadfisheriris

X = meas;

Y = species;

tabulate(Y)

Value Count Percent

setosa 50 33.33%

versicolor 50 33.33%

virginica 50 33.33%

% 创建SVM模板(二分类模型),并对分类变量进行标准化处理

% predictors

t = templateSVM('Standardize', 1);

% 基于SVM二分类模型进行训练并生成多分类模型

Mdl = fitcecoc( X, Y,'Learners', t , . . .'ClassNames', {'setosa','versicolor','virginica'})

Mdl =

ClassificationECOC

ResponseName: 'Y'

CategoricalPredictors: [ ]

ClassNames: {'setosa' 'versicolor' 'virginica'}

ScoreTransform: 'none'

BinaryLearners: {3*1 cell}

CodingName: 'onevsone'

MATLAB 的 fitcecoc 函数支持多种二分类模型,例如, templateKNN, templateTree, templateLinear, templateNaiveBayes, 等等。

3. 回归

回归模型描述了响应(输出)变量与一个或多个预测变量(输入)变量之间的关系。 MATLAB 支持线性,广义线性和非线性回归模型。以下示例演示如何训练逻辑回归模型。

逻辑回归

在 MATLAB 中,逻辑回归属于广义线性回归的范畴,可以通过使用 fitglm 函数实现逻辑回归模型的训练。

% 判定不同体重、年龄和性别的人的吸烟概率

loadhospital

dsa = hospital;

% 指定模型使用的计算公式

% 公式的书写方式符合 Wilkinson Notation, 详情请查看:

% http://cn.mathworks.com/help/stats/wilkinson-notation.html

modelspec ='Smoker ~ 1+ Age + Weight + Sex + Age:Weight + Age:Sex + Weight:Sex';

% 通过参数 ’Disribution' 指定 ‘binomial' 构建逻辑回归模型

mdl = fitglm(dsa, modelspec,'Distribution','binomial')

MATLAB数据建模方法中的机器学习方法介绍

4.聚类

聚类是将数据集分成组或类。 形成类,使得同一类中的数据非常相似,而不同类中的数据差异非常明显。

层次聚类

下面以层次聚类方法为例,演示如何利用 MATLAB 进行聚类分析。

% 数据导入

loadfisheriris

% MATLAB中层次聚类是通过linkage函数实现

% 通过参数可以配置距离计算方法

% 类内距离的计算方法:'euclidean' ,欧几里得距离

eucD = pdist(mean ,'euclidean');

% 类间距离的计算方法:'ward' ,最小化两个类内点之间聚类平方和

Z = linkage(eucD,'ward');

% 使用 cophenetic 相关系数评价聚类计算过程(类内距离最小,类间距离最大)

% 值越大表明距离计算结果越好

cophenet(Z, eucD)

ans = 0.872828315330562

%生成4个类别的聚类结果

c = cluster(Z,'maxclust', 4);

可以显示层次聚类生成的聚类树,使用 dendrogram 函数:

% 查看层次聚类树

dendrogram(Z)

MATLAB数据建模方法中的机器学习方法介绍

图6 层次聚类

以上只是简单的介绍了一下 MATLAB 支持的机器学习算法的使用方式,更多的信息可以查看 MathWorks 官网和 MATLAB 帮助文档。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4423

    浏览量

    68085
  • 机器学习
    +关注

    关注

    67

    文章

    8571

    浏览量

    137444
  • 数据分析
    +关注

    关注

    2

    文章

    1526

    浏览量

    36430
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    多种储能技术在MATLAB和Simulink建模与仿真

    面对这些实际需求,MATLAB & Simulink 展现出了强大的优势。它不仅支持对各种储能技术进行灵活建模,更为“多种储能技术”提供了统一的仿真与分析平台。无论是电池储能、超级电容,还是
    的头像 发表于 05-12 13:48 212次阅读
    多种储能技术在<b class='flag-5'>MATLAB</b>和Simulink<b class='flag-5'>中</b>的<b class='flag-5'>建模</b>与仿真

    机器学习数据质量双保障:从“验证”到“标记”

    机器学习的世界里,有句老话尤为贴切:“garbagein,garbageout”(输入垃圾,输出垃圾)。无论模型架构多先进、算法多精妙,数据的质量始终是决定模型性能的核心。本文聚焦数据
    的头像 发表于 04-24 15:48 180次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>中</b>的<b class='flag-5'>数据</b>质量双保障:从“验证”到“标记”

    机器学习特征工程:分类变量的数值化处理方法

    编码是机器学习流程里最容易被低估的环节之一,模型没办法直接处理文本形式的分类数据,尺寸(Small/Medium/Large)、颜色(Red/Blue/Green)、城市、支付方式等都是典型的分类
    的头像 发表于 02-10 15:58 530次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>特征工程:分类变量的数值化处理<b class='flag-5'>方法</b>

    学习单片机快速方法

    。因为从我的学习过程来看,光看理论等于没学。单片机必须是理论加实践,而且要大量实践,在实践的过程寻找理论。这才是最快捷的学习方法。这好比你学习汉语,你不可能什么字都会写,遇到不懂的,
    发表于 01-14 07:42

    量子机器学习入门:三种数据编码方法对比与应用

    在传统机器学习数据编码确实相对直观:独热编码处理类别变量,标准化调整数值范围,然后直接输入模型训练。整个过程更像是数据清洗,而非核心算法组
    的头像 发表于 09-15 10:27 1083次阅读
    量子<b class='flag-5'>机器</b><b class='flag-5'>学习</b>入门:三种<b class='flag-5'>数据编码方法</b>对比与应用

    AI 驱动三维逆向:点云降噪算法工具与机器学习建模能力的前沿应用

    在三维逆向工程领域,传统方法在处理复杂数据和构建高精度模型时面临诸多挑战。随着人工智能(AI)技术的发展,点云降噪算法工具与机器学习建模能力
    的头像 发表于 08-20 10:00 941次阅读
    AI 驱动三维逆向:点云降噪算法工具与<b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>建模</b>能力的前沿应用

    ANSACFD网格细化方法

    在上一篇文章中介绍了CFD网格细化方法之Size Field功能,在本篇文章我们将继续介绍其他CFD网格细化方法
    的头像 发表于 08-06 15:07 4660次阅读
    ANSA<b class='flag-5'>中</b>CFD网格细化<b class='flag-5'>方法</b>

    测量误差溯源:系统误差与随机误差的数学建模与分离方法

    校准不当或环境因素,具有重复性;而随机误差则由随机噪声引起,呈现离散分布。本文将通过数学建模揭示这些误差的本质,并讨论高效分离方法,为提升测量精度(如电流测量的数值稳定性)提供理论支持。接下来,我们将深入探讨
    的头像 发表于 07-25 09:36 1594次阅读

    ARM入门学习方法分享

    。 以下是一些入门学习方法的分享: 一、 理解基本概念:首先,了解ARM是什么以及它的基本概念是很重要的。ARM(Advanced RISC Machines)指的是一种精简指令集计算机(RISC
    发表于 07-23 10:21

    多温区可变建模的SMT回流焊温度曲线智能仿真方法研究

    基于多温区可变建模理念,开发了一套先进的“SMT焊温度曲线智能仿真系统”。系统充分考虑不同回流炉结构温区数量的多样性,采用动态建模方法,实现温区数量的灵活配置与
    的头像 发表于 07-17 10:20 891次阅读
    多温区可变<b class='flag-5'>建模</b>的SMT回流焊温度曲线智能仿真<b class='flag-5'>方法</b>研究

    FPGA在机器学习的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为一种灵活且高效的硬件加速平台
    的头像 发表于 07-16 15:34 3193次阅读

    无刷直流电机模糊PI控制系统建模与仿真

    摘 要:从无刷直流电机(BIDCM)的工作原理和结构出发,在分析了 BLDCM数学模型的基础上,采用模块化方法,在Matlab/Simulink 建立了 BLDCM 转速、电流双闭环控制系统模型
    发表于 07-07 18:25

    明晚开播 |数据智能系列讲座第7期:面向高泛化能力的视觉感知系统空间建模与微调学习

    鹭岛论坛数据智能系列讲座第7期「面向高泛化能力的视觉感知系统空间建模与微调学习」明晚8点精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目面向高泛化能力的视觉感知系统空间建模与微
    的头像 发表于 06-24 08:01 1303次阅读
    明晚开播 |<b class='flag-5'>数据</b>智能系列讲座第7期:面向高泛化能力的视觉感知系统空间<b class='flag-5'>建模</b>与微调<b class='flag-5'>学习</b>

    利用MATLAB对交流电机调速系统进行建模和仿真

    是借助计算机及相关技术,对真实系统的运行过程和状态进行数字化模拟的技术。Simulink作为MATLAB的一个组件,能够实现对动态系统的建模、仿真和综合分析。本文在Simulink环境建立面向电气
    发表于 06-06 14:31

    直播预约 |数据智能系列讲座第7期:面向高泛化能力的视觉感知系统空间建模与微调学习

    建模与微调学习报告简介构建高效、物理一致且具备良好泛化能力的视觉感知系统,是视觉智能、边缘计算与具身机器人中的关键挑战。为提升系统的泛化与适应能力,一类方法致力于构
    的头像 发表于 05-29 10:04 821次阅读
    直播预约 |<b class='flag-5'>数据</b>智能系列讲座第7期:面向高泛化能力的视觉感知系统空间<b class='flag-5'>建模</b>与微调<b class='flag-5'>学习</b>