当下人工智能可谓火热,很多行业在陆续接入相关的功能以及服务。可是大家想不想在R语言中实践下呢? 想不想我都要讲一下,供想实践的参考吧。
首先,确定好人工智能的范围,分享一张被各位专家学者引用烂了的图:
很眼熟吧,那么范围确定了,那我们就来介绍下目前流行的方法:
深度学习中目前流行的框架当然并不是在R语言中设计的,并且目前来说这块R语言比较薄弱。不过目前还是有学者在里面努力着,下面是目前R语言中可用或者在测的深度学习资源:
- 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)
- 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算法等
- 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)。
具体的应用案例将会在后面的文章中一一列举。敬请期待!