2015-05-05 5 views
1

У меня есть прогноз моих данных в другом классификаторе. Я хотел бы ансамблировать их результаты, чтобы получить лучший конечный результат. Возможно ли это в R?
позволяет сказать:ансамбли от разных классификаторов в регионе R

SVMpredict=[1 0 0 1...] 
RFpredict=[1 1 0 1 ...] 
NNpredict=[0 0 0 1 ...] 

возможно объединить результаты любого ансамбля техники в R как?
благодаря

Отредактировано:
я запускаю классификаторов на различных образцах (мой случай ДНК хромосом). В некоторых образцах SVM работает лучше других, чем RF. Я хочу, чтобы метод собирал результаты, рассматривая, какой классификатор работает лучше.
например, если я беру среднее значение вероятности выхода и округляя их, это будет считаться равным эффективному результату. но когда SVM работал лучше, мы должны рассмотреть результаты для SVM (с точностью 86%), имеет 60% значение и 25% (точность 72%) для RF и 15% NN (точность 64%). (эти цифры являются лишь примерами для пояснения)
есть все равно, что я могу это сделать?

+0

Хотя я не тестировал, вы можете найти следующий пакет полезным - https://github.com/zachmayer/caretEnsemble –

ответ

1

Это зависит от структуры выхода вашего классификатора. Если {0,1} результат, так как Вы указали, Вы можете просто сделать среднее из предсказаний, а затем усреднить и вокруг него:

round((SVMpredict+RFpredict+NNpredict)/3) 

Если Вы знаете, производительность классификаторов, взвешенное среднее является хорошая идея - предпочитают те, которые работают лучше. Hardcore apporach - оптимизировать весы с помощью функции optim.

Если вы знаете вероятностные вероятности для каждого предсказания, лучше усреднять их, а не позволять им просто голосовать ({0,1} выходный результат выше).

+0

спасибо за доверие. Вероятности усреднения - хороший способ, если все они равны эффективны в прогнозировании. что, если бы SVM в некоторых случаях предсказала лучше. его следует рассматривать как более важные вероятности. (Я редактировал мой вопрос). еще раз спасибо. – Cina

+0

Если ваш результат является вероятностью, вы можете просто сделать «0.6 * SVMpredict + 0.25 * RFpredict + 0.15 * NNpredict'. Задача состоит в том, как найти лучшие коэффициенты. Настройте набор валидаций и настройте коэффициент, чтобы максимизировать производительность на нем (метод называется укладкой). Вы можете сделать это вручную или с помощью функции 'optim'. –