欢迎来到天天文库
浏览记录
ID:39465978
大小:662.00 KB
页数:29页
时间:2019-07-04
《Machine Learning tools inside Matlab》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MachineLearningwithMatlab1概述Matlab中集成了一套用于统计和机器学习的工具包,即StatisticsandMachinelearningToolbox,极大方便了机器学习开发者的算法研究和原理验证。该工具包可解决回归、分类和聚类等机器学习问题,并支持多种监督和非监督算法,包括SVM、决策树、KNN、k-means、k-medoids、高斯混合模型、隐藏马尔科夫模型等。此外,还支持多种选择关键特征的算法,包括PCA、顺序特征选择、逐步回归、正则化等。下面将结合用户手册,对该工具包的使用进行介绍。2Son
2、icWALL,Inc.ConfidentialPage29of292021/8/101支持数据类型该工具包支持多种数据类型作为输入,括号里的是数据类型。为了方便理解这些数据类型的使用方法,将结合示例程序对其进行说明。其中,红色部分为代码,绿色部分为输出。支持的数据类型包括:Ø具有单精度(single)或双精度(double)的数值标量、向量和矩阵Ø字符串矩阵(cellstr);字符(char)、逻辑(logical)或类型(categorical)矩阵;类型变量的数值矩阵(single/double)。典型示例就是类标签。不推荐使
3、用nominal和ordinal类型,它们可能会在以后的版本删除。Ø表格(table)是上述数据类型的矩阵形式,用于表示异构数据。典型示例是混合了类型变量和数值变量的回归分析。不推荐使用dataset类型,可能会在以后的版本中删除。如果函数不支持table类型,就采用single或double的矩阵。ØgpuArray类型可作为函数的输入参数,在GPU中执行。由于该类型与IDS无关,这里就不做进一步介绍。有兴趣的话,请查询MatlabHelp。此外,不支持的数据类型包括:Ø复数Ø自定义的数值类型Ø用于非分组数据的带符号整数Ø稀疏矩
4、阵1.1数值single/double1.1.1基本操作>a=4;b=single(4);class(a)ans=doubleclass(b)ans=SonicWALL,Inc.ConfidentialPage29of292021/8/10single说明:默认情况下,声明一个数值变量属于double类型,通过single函数可以强制转成single类型,降低所需的存储空间。single函数的输入可以是任何数值对象,甚至可以是数组。1.1逻辑logical1.1.1基本操作>A=[1-32;547;-813];M=mod(A,2)
5、M=110101011L=logical(mod(A,2))L=110101011class(M)ans=doubleclass(L)ans=logicalA(M)errorA(L)ans=15-3173说明:虽然M和L的数值是相同的,但类型不同,M为double类型,L为logical类型。这也导致了A(L)是有效的,而A(M)是无效的。SonicWALL,Inc.ConfidentialPage29of292021/8/101.1字符串矩阵cellstr1.1.1基本操作>S=['abc';'def';'ghi'];C=cel
6、lstr(S);whosSNameSizeBytesClassAttributesS3x318charwhosCNameSizeBytesClassAttributesC3x1354cell说明:cellstr函数可以将矩阵S转换成字符向量的cell矩阵。其中,S可以是字符串矩阵、类型(categorical)矩阵、日期时间矩阵等。1.2无大小的类型nominal(不推荐)1.2.1基本操作:创建、比较、设置>loadfisheririsunique(species)ans='setosa''versicolor''virgini
7、ca'speciesNom=nominal(species);class(speciesNom)ans=nominalgetlevels(speciesNom)ans=setosaversicolorvirginicagetlabels(speciesNom)ans='setosa''versicolor''virginica'>speciesNom2=nominal(species,{'seto','vers','virg'});getlevels(speciesNom2)ans=setoversvirgSonicWALL,In
8、c.ConfidentialPage29of292021/8/10getlabels(speciesNom2)ans='seto''vers''virg'isequal(speciesNom=='setosa',speciesNom2=='seto
此文档下载收益归作者所有