R语言与机器学习.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

R语言与机器学习

R语?机器学习算法实现

kNN(k-NearestNeighbors,k近邻)

原理:计算距离,找到测试数据的k个近邻,根据k个近邻的分类预测测试数据的分类

应?k近邻需要将各个特征转换为?个标准的范围(归?化处理),可以应?min-max标准化(所有值落在0~1范围,新数据=(原数据-最?值)/(最?值-最?值)),也可以应?z-score标准化(新数据=(原数据-均值)/标准差)。

对于名义变量(表?类别),可以进?哑变量编码,其中1表??个类别,0表?其它类别,对于n个类别的名义变量,可以?n-1个特征进?哑变量编码,?如(?,中,低),可以??、中两类的哑变量表?这三类(?:1是,0其它,中:1是,0,其它)

优点:简单且有效,对数据分布没有要求,训练阶段很快;

缺点:不产?模型,在发现特征之间的关系上的能?有限,分类阶段很慢,需要?量的内存,名义变量和缺失数据需要额外处理

R代码:

使?class包的knn函数,对于测试数据中的每?个实例,该函数使?欧?距离标识k个近邻,然后选出k个近邻中?多数所属的那个类,如果票数相等,测试实例会被随机分配。

dt_pred-knn(train=dt_train,test=dt_test,class=dt_train_labels,k=3)#train:?个包含数值型训练数据的数据库;test:?个包含数值型测试数据的数据框;class训练数据每??分类的?个因?变量;k:标识最近邻数据的?个整数(通常取实例数的平?根);该函数返回?个向量,该向量含有测试数据框中每??的预测分类

尽管kNN是并没有进?任何学习的简单算法,但是却能处理及其复杂的任务,?如识别肿瘤细胞的肿块。对R?带iris数据?kNN进?训练、预测并与实际结果对?

llibrary(class)library(gmodels)

#preparedata

set.seed(12345)#setrandomseedinordertorepeattheresultiris_rand-iris[order(runif(150)),]

iris_z-as.data.frame(scale(iris_rand[,-5]))#zscorenormalizetrain-iris_z[1:105,]

test-iris_z[106:150,]train.label-iris_rand[1:105,5]test.label-iris_rand[106:150,5]

#kNN

pred-knn(train,test,train.label,k=10)

#comfusionmatrix

CrossTable(pred,test.label,prop.r=F,prop.t=F,prop.chisq=F)

这个结果显?kNN对测试数据全部预测正确朴素贝叶斯分类

原理:基于朴素贝叶斯定理,根据先验概率计算预测实例的属于不同类别的总似然,再将某类别的似然除以不同类别似然的和得到预测实例在某类别的概率

应?朴素贝叶斯算法每个特征必须是分类变量,对于数值型变量,可以将数值型特征离散化(分段),可以根据直?图查看数据明显的分隔点,如果没有明显的分隔点,可以使?三分位数,四分位数,五分位数,分段太少会把重要信息丢失

拉普拉斯估计:对于某些从来没有出现的概率为0的,会影响概率的估计,拉普拉斯估计本质上是在概率表的每个计数加上?个较?的数,这样保证每?类中每个特征发?的概率是?零的。

优点:简单、快速、有效;能处理噪声数据和缺失数据;需要?来训练的例?相对较少,但同样能处理好?量的例?;很容易获得?个预测的估计概率值;缺点:依赖于?个常?的错误假设,即?样的重要性和独?特征;应?在?量数值特征的数据集时并不理想;概率的估计值相对于预测的类??更加不可靠。R代码:

使?维也纳理??学统计系开发的e1071添加包中的naiveBayes

m-naiveBayes(train,class,laplace=0)#train:数据框或者包含训练数据的矩阵,class:包含训练数据每??的分类的?个因?向量,laplace:控制拉普拉斯估计的?个数值,可以进?调节看是否会提?模型性能;该函数返回?个朴素贝叶斯模型对象,该对象能够?于预测

p-predict(m,test,type=class)#m:由函数naiveBays()训练的?个模型,test:数据框或者包含测试数据的矩阵,包含与?来建?分类器的训练数据的相同特征;type:值为class或者raw,标识预测向量最可能的类别值或者原始预测的概率值

libra

您可能关注的文档

文档评论(0)

论文修改排版 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档