R语言有很多包可以做机器学习(Machine Learning)的任务。机器学习的任务主要有有监督的学习方式和无监督的学习方式。
有监督学习:在正确结果指导下的学习方式,若是正确结果是定性的,属于分类问题;若正确结果是定量的,属于回归问题。
无监督学习:在没有正确结果指导下的学习方式,例如:聚类分析、降维处理等
有很多R包可以做机器学习,本文介绍RForML之核心包:e1071
一、 e1071包简介
e1071包实现了机器学习里面的SVM(支持向量机)算法,NB(朴素贝叶斯)算法、模糊聚类算法、装袋聚类算法等。
二、e1071包安装和加载
e1071包是R的扩展包,需要先安装,再加载,才能使用这个包里面函数做机器学习任务。
安装和加载e1071包的代码
if(!suppressWarnings(require(e1071)))
{
install.packages('e1071')
require(e1071)
}
三、e1071包做机器学习
e1071包做预测,即分类和回归。
1、分类问题
利用SVM算法对UCI的glass数据进行分类
SVM算法
R代码
##第一步:载入mlbench的Glass数据集
if(!suppressWarnings(require(mlbench)))
{
install.packages('mlbench')
require(mlbench)
}
data(Glass, package="mlbench")
##第二步:数据集划分:训练集和测试集
index
testindex
testset
trainset
##第三步:构建SVM模型
svm.model
##第四步:SVM模型应用到测试数据集
svm.pred
##第五步:模型结果评估
##1混淆矩阵
table(pred = svm.pred, true = testset[,10])
##2计算Accuracy和Kappa值
classAgreement(table(pred = svm.pred, true = testset[,10]))
2、回归问题
回归算法
R代码
##第一步:载入mlbench的Ozone数据集
if(!suppressWarnings(require(mlbench)))
{
install.packages('mlbench')
require(mlbench)
}
data(Ozone, package="mlbench")
View(Ozone)
##第二步:数据集划分,训练集和测试集7:3
index
testindex
trainset
dim(trainset)
testset
dim(testset)
##第三步:创建SVM模型
svm.model
##第四步:利用SVM 模型预测目标变量的值
svm.pred
##第五步:计算MSE(Mean Squared Error)
crossprod(svm.pred - testset[,3]) / length(testindex)
参考资料
作者:JackWang
个人介绍:专注于从数据中学习,努力发掘数据之洞见,积极利用数据之价值。