在过去的几年里,我一直使用 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 世界中您注意到的第一件事是包之间的不同语法。这是可以理解的,但有点不方便。 caret 似乎是解决该问题的一个很好的解决方案,它在所有不同的 R 包(即 randomForest、gbm 等)之间创建了内聚力。 尽管我仍然对一些默认选择感到困惑(即 train() 方法似乎默认为某种网格搜索)。另外,caret 似乎在幕后使用 plyr,这会搞乱一些 dplyr 方法,例如 summarise。由于我使用 dplyr 进行大量数据操作,这是一个问题。 你能帮我弄清楚 sklearn 的 model/fit/predict_proba 的插入符号相当于什么吗?另外,有没有办法解决plyr/dplyr问题?
最佳答案
与在 caret
库中进行预测的等效操作是更改 ?predict.train
中的类型。应改为:
predict(model, data, type="prob")
如果您想混合使用 dplyr/plyr,那么显式调用它的最简单方法是:
dplyr::summarise
或
plyr::summarise
如果您已经尝试使用 predict(..., type="prob")
并出现了一个您不理解并放弃的奇怪错误,我建议您阅读在此线程中:Predicting Probabilities for GBM with caret library
关于python - sklearn 用户的 R 插入符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27591655/