2014-12-21 3 views
1

Я использовал sklearn для машинного моделирования обучения в течение последних нескольких лет и привык к тому, что кажется очень логичным и сплоченной рамки:R для пользователя 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(), по-видимому, по умолчанию использует какой-либо поиск в сетке). Кроме того, карет, кажется, использует plyr за кулисами, что испортило некоторые из dplyr-методов, таких как обобщение. Поскольку я много обрабатываю данные с dplyr, это проблема. Можете ли вы помочь мне разобраться, каков эквивалент каретки модели sklearn/fit/predict_proba? Кроме того, есть ли способ решить проблему plyr/dplyr?

ответ

1

Эквивалент предсказания в библиотеке caret будет состоять в том, чтобы изменить тип в ?predict.train. Это должно быть изменено следующим образом:

predict(model, data, type="prob") 

Если вы хотите смешать dplyr/plyr то самый простой способ явно вызвать его с помощью:

dplyr::summarise 

или

plyr::summarise 

Если вы уже попытался использовать predict(..., type="prob") и придумал странную ошибку, которую вы не поняли и отказались, я бы порекомендовал читать в этой теме: Predicting Probabilities for GBM with caret library

Смежные вопросы