怎样入手学习R的算法?

更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer/column

作者:CDA数据分析师

R是目前学习R语言中应用最广泛的平台。当你认真起来学习R的时候你会找到学习R的窍门。

它之所以功能强大是因为很多机器学习的算法都是现有的。然而其中一个问题是这些算法都是由第三方提供的,这似乎让这些算法的使用看起来没有一致性。因此它会放慢你学习的步伐,而且影响程度很大,那是因为你需要学着如何不断的运用在每个包里的算法对数据做出模型以用来做出某些预测,而且要不断的重复。

对于处在这个阶段的人来说,你会发现你是如何可以克服这些在在R的算法中,涉及机器学习中的困难。如果能按照你提早准备好这些方法来系统的学习它,会显得先对容易得心应手。

大部分的算法都是缺乏一致性的

R是一个庞大的系统。第三方开源R包提供资源,能允许相关学者和教授获取可用的功能最强大的算法,而这些就掌握在我们这些实践者的手里。

这里又有一个问题,且亲身经历过的,是如何学习R并把相关的来自不同的R包的算法运用到R中。这种不一致性也延伸到了文档,它们有些提供了现有的实用例子用于分类,但忽略了回归分析,而有一些压根就没有提供例子。

这都意味着如果你想尝试使用使用不同R包中不同的算法,你必须要花一些时间分析比较出哪种方法比较合适,并且还要对每种方法逐一做出相关的预测。这会花费你很多时间,尤其是面对那些层次不齐的例子和描述。

下面我来总结一下这些可能遇到的困难:

不一致性:算法的使用,对于分析不同的模型,为了能适配其数据及其模型本身来说,都是不一样的。而他们最终还是用于产生模型的预测。这意味着你需要学习每一个和每一种算法的运用,从而能让你把这些工作实例合拢在一起,从而让你单独针对这个问题进行解答。

分散的算法:这些算法在不同R包中实施起来是不一样的,同时这也使得找出这些R包中提供了一个你需要的实施方案的算法变得困难,更不用说那些提供了常用的实现方法了。此外,这些文档对于一个R包来说也许分散在多个帮助文件中,网站甚至它的简介。这意味着你需要做大量的研究以此找出这样的一个算法,更不用说编辑一系列的你可能会选择的算法。

不完整性:一个算法的文档几乎不可能是完整的。一个使用实例可能可能不是现有的。倘若是这样,这可能不被论证为一个典型的问题。这意味着你很难快速的掌握如何执行这样的一个你需要完成操作。

复杂性:每种算法在它的执行能力的复杂度已经描述上的复杂度都是不一样的。这会对你从使用一个包到另一个包造成不必要的伤害。你肯定想如何如何把所得到的算法和参数进行最有效的利用,就像你不想用很大篇幅的PDF文件仅仅写一个“你好,世界”这样小题大做。

拥有一本属于你自己的工具书

你可以利用一个收集各种算法的工具书或文档来帮助你更好的完成工作。你拥有了它以后,你可以从中找出R的机器学习算法的实例并且你可以复制粘贴这些算法,通过这样解决你实际遇到的特定问题。

为了能帮助你更好的在你的工作中使用这样的工具书,你需要确信你知道这些关键的使用原则:

单一性:每段实例代码都必须是单一的,完整的以及可执行的。

单指这些代码:每种方法都必须都必须关注于这些代码,它们在机器学习中有少量的注释(这里有一些优秀的书籍介绍到他们,不要把这些概念混淆)。

简便性:每种方法都在最常用的实例展现出来,而它们可能是在你寻找的时候你所需要的算法。当你想要咨询这些正式的文档的时候你只需要找出相关的参数因此你可以找出最有效的算法。

便携性:这些方法都提供了一个这样的解释,它们都是可以查找或现有的,可浏览和查阅的(一本记录使用方法的书)。

一致性:这些实例代码都是一致的,同时也是伴随着相同代码结构和风格的传统(下载数据,合适的模型,用于模型)。

一本算法工具书可以让你使用R平台用于机器学习和解决复杂的问题。

你可以直接运用这些算法和功能。

你可以发现你所需要的算法。

你可以通过大致浏览就能明白这些算法的工作原理。

你可以使用一个属于你自己的方法,同时用它来使用这些算法并把它们整理成一个你想要的方式。

你可以最有效的使用这里的算法和功能。

在R中算法的用途

我们已经大致的说了这样的一些实例来描述它们大致的情况。

我也在此提供一些R当中机器语言学习用途的实例,它们以算法类型或相似度整理成如下:

线性回归分析:普通的最小二乘回归法、逐步回归法、主成分回归法以及偏最小二乘法。

改进线性回归:岭回归、最小绝对收缩和选择运算子及其弹性网络。

非线性回归分析:多变量自适应回归的刺(MARS)、支撑向量机(SVM)、k进邻判别法(kNN)和神经网络。

非线性回归决策树:分类与回归树(CART)、条件决策树、模态树、规则系统、套装车、随即森林、梯度提升机(GBM)和立体主义。

线性分类:后勤回归分析、线性判别分析(IDA)和偏最小二乘判别式。

非线性分类:混合判别分析(MDA)、二次判别分析(QDA)、正则化判别分析(RDA),神经网络、灵活判别分析(FDA),支撑向量机(SVM)、k最邻(kNN)和朴素贝叶斯。

非线性决策树分类:分类回归树(CART)、C4.5、部件、包装车、随即森林、梯度提升机(GBM)现有的C5.0.

总结

在这篇文章中,你会发现R语言是非常受欢迎的,而且其机器语言学习功能强大,但是不足的是这种功能需要时间来操作他。

同时,你会发现R语言当中,地址限制的一种方式就是制定这样的一本书,包含了一些完整且专一的算法,而且这些算法对于你来说是很容易找到且你可以按照你的方式把它们运用到实际问题中。

最后,你会在广阔的算法类型范围中看到一些R中关于机器学习算法的方法的实例,同时你在这种已经给你提供相关方案的工作中找到这样的一些向导。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180226A0QSZG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动