Machine Learning With R

R里面机器学习的模型分布在各个包里面,在使用的过程中肯能会有觉得不方便的时候,像python的sklearn模块有各种机器学习模型,集中在一起。
在R里面有两个专门做机器学习的包,一个是caret,一个是mlr,这里介绍mlr

mlr

1.数据预处理 :

  • 创建哑变量 createDummyFeatures(obj = ,target = ,method = )
  • 数据标准化 normalizeFeatures(obj= ,target = ,method = ) method: 1.center 2.scale 3.standardize 4.range
library(mlbench)
data("Soybean")
head(Soybean)
soy <- createDummyFeatures(Soybean,target = "Class")

2.创建一个任务

  • 创建一个分类任务 makeClassifTask(data=,target=)
  • 创建一个回归任务 makeRegerTask(data=,taget=)
  • 创建一个多分类任务 makeMultilabelTask(data,taget=)
  • 创建一个聚类任务 makeClusterTask(data=,taget=)

3.创建一个学习器
这里就是指定你要训练什么模型,怎么训练
makeLearner(cl=,predict.type=)
cl指的是训练什么模型,常见有 'lassif.xgboost
predict.type指的是是预测概率还是直接预测标签prob预测的就是概率

mlr有超过70种不同的算法可以使用,使用View(listLearners()) 查看所有的算法

4.训练模型
设置超参数 setParamSet(learner=)
获取超参数 getParamSet(learner=)
训练模型: train(learner=,task=)
预测结果:predict(object=,task=,newdata=)

衡量模型效果
performance(pred=,measures=)
可以通过 listMeasures() 查看有哪些可以作为评判的指标

> head(listMeasures())
[1] "multilabel.f1"    "rsq"              "kappa"           
[4] "multiclass.brier" "fn"               "fp"  

混淆矩阵:
calculateConfusionMatrix(pred = )
计算ROC:
calculateROCMeasures(pred = )

  1. 抽样
    makeResampleDesc(method = )其中method必须为:
  • cv,iters=
  • LOO,iters=
  • RepCV,reps=,folds=
  • Subsample,iter=,split=
  • Boosttrap iters=
  • Holdout,split=

介绍一个简单的例子

library(mlr)
library(mlbench)
data("Soybean")
soy <- createDummyFeatures(Soybean, target = "Class")
tsk <- makeClassifTask(data = soy, target = "Class")
ho <- makeResampleInstance("Holdout", tsk)
tsk.train <- subsetTask(tsk, ho$train.inds[[1]])
tsk.test <- subsetTask(tsk, ho$test.inds[[1]])

lrn <- makeLearner('classif.xgboost', nrounds = 10)
cv <- makeResampleDesc('CV', iters = 5)
res <- resample(lrn, tsk.train, cv, acc)



ps <-
  makeParamSet(
    makeNumericParam('eta', 0.1),
    makeNumericParam('lambda', 0, 200),
    makeIntegerParam('max_depth', 1, 20)
  )
tc <- makeTuneControlMBO(budget=100)
tr <- tuneParams(lrn,tsk.train,cv5,acc,ps,tc)




mdl <- train(learner = lrn,task = tsk.train)
prd <- predict(mdl,tsk.test)
calculateConfusionMatrix(prd)

另外,推荐一个网站:https://rdrr.io/

Machine Learning With R_第1张图片
image.png

你可能感兴趣的:(Machine Learning With R)