几年里,我一直使用 sklearn 进行机器学习建模,并且逐渐习惯了一个看起来非常合乎逻辑和有凝聚力的框架:
from sklearn.ensemble import RandomForestClassifier
# define a model
clf = RandomForestClassifier()
# fit the model to data
clf.fit(X,y)
#make prediction on a test set
preds = clf.predict_proba(X_test)[:,1]
我现在正在尝试学习一些R,并希望开始做一些我在sklearn中所做的相同的事情。来自 sklearn 世界的第一件事是跨包的多样化语法。这是可以理解的,但有点不方便。插入符号似乎是这个问题的一个很好的解决方案,在所有不同的R包(即randomForest,gbm,...(之间创建内聚力。尽管我仍然对某些默认选择感到困惑(即 train(( 方法似乎默认为某种网格搜索(。此外,插入符号似乎在幕后使用 plyr,这搞砸了一些 dplyr 方法,如 summarise。由于我使用 dplyr 进行了很多数据操作,这是一个问题。你能帮我弄清楚插入符号相当于sklearn的模型/适合/predict_proba吗?另外,有没有办法处理 plyr/dplyr 问题?
相当于在caret
库中进行预测是在 ?predict.train
中更改类型。应将其更改为:
predict(model, data, type="prob")
如果要混合 dplyr/plyr,那么使用以下命令显式调用它的最简单方法:
dplyr::summarise
或
plyr::summarise
如果您已经尝试使用predict(..., type="prob")
并提出了一个您不理解并放弃的奇怪错误,我建议您阅读此线程:使用插入符号库预测 GBM 的概率