R语言开启人工智能之旅

2019-07-31 14:47:50 浏览数 (1)

当下人工智能可谓火热,很多行业在陆续接入相关的功能以及服务。可是大家想不想在R语言中实践下呢? 想不想我都要讲一下,供想实践的参考吧。

首先,确定好人工智能的范围,分享一张被各位专家学者引用烂了的图:

很眼熟吧,那么范围确定了,那我们就来介绍下目前流行的方法:

深度学习中目前流行的框架当然并不是在R语言中设计的,并且目前来说这块R语言比较薄弱。不过目前还是有学者在里面努力着,下面是目前R语言中可用或者在测的深度学习资源:

  1. darch http://cran.um.ac.ir/web/packages/darch/index.html 该方法基于Hinton两篇经典之作"A fast learning algorithm for deep beliefnets" (G. E. Hinton, S. Osindero, Y.W. Teh) 和 "Reducing the dimensionality of data with neural networks" (G. E. Hinton, R.R.Salakhutdinov)
  2. deepnet http://cran.r-project.org/web/packages/deepnet/index.html Deepnet 实现了基于Deep Learning结构和Neural Network相关算法,包括BP,RBM训练,Deep Belief Net,Deep Auto-Encoder。作者称后续有时间会继续实现CNN和RNN算法等
  3. Rdbn

https://github.com/dankoc/Rdbn

Rdbn实现R环境的RBMs和DBNs的训练和学习。目前只是在github上有源代码。

机器学习由于限制较少,R语言中的算法基本可以实现首先给大家介绍下基础的概念,机器学习有三种方式:

1. 监督式学习

监督式学习算法包括一个目标变量(因变量)和用来预测目标变量的预测变量(自变量)。通过这些变量我们可以搭建一个模型,从而对于一个已知的预测变量值,我们可以得到对应的目标变量值。重复训练这个模型,直到它能在训练数据集上达到预定的准确度。 属于监督式学习的算法有:回归模型,决策树,随机森林,K邻近算法,逻辑回归等。

2. 无监督式学习

与监督式学习不同的是,无监督学习中我们没有需要预测或估计的目标变量。无监督式学习是用来对总体对象进行分类的。它在根据某一指标将客户分类上有广泛应用。 属于无监督式学习的算法有:关联规则,K-means聚类算法等。

3. 强化学习

这个算法可以训练程序做出某一决定。程序在某一情况下尝试所有的可能行动,记录不同行动的结果并试着找出最好的一次尝试来做决定。 目前得到应用在大家熟知的“阿尔法元”

常见的机器学习算法

以下是最常用的机器学习算法,大部分问题都可以通过它们解决:

代码语言:javascript复制
1.线性回归 (Linear Regression)
2.逻辑回归 (Logistic Regression)
3.决策树 (Decision Tree)
4.支持向量机(SVM)
5.朴素贝叶斯 (Naive Bayes)
6.K邻近算法(KNN)
7.K-均值算法(K-means)
8.随机森林 (Random Forest)
9.降低维度算法(Dimensionality Reduction Algorithms)

下面主要介绍当下流行的算法:

1. 支持向量机(SVM)

a. 安装相应的包: install.packages('e1071')。

b. 载入相应的包: library('e1071')。

2. K邻近算法(KNN)

a. 安装相应的包: install.packages('kknn')。

b. 载入相应的包:library(kknn)。

3. K-均值算法(K-means)

a. 安装相应的包: install.packages('cluster')。

b. 载入相应的包:library(cluster)。

具体的应用案例将会在后面的文章中一一列举。敬请期待!

0 人点赞