2015-10-31 2 views
1

Мне было поручено решить проблему классификации чувств, используя scikit-learn, python и mapreduce. Мне нужно использовать mapreduce для параллелизации проекта, создавая таким образом несколько классификаторов SVM. Затем я должен «усреднять» классификаторы вместе, но я не уверен, как это работает, или если это возможно. Результатом классификации должен быть один классификатор, обученный, усредненный классификатор.Объединение классификаторов SVM в MapReduce

Я написал код, используя scikit-learn SVM Linear kernel, и он работает, но теперь мне нужно привести его в уменьшающий карту, параллельный контекст, и я даже не знаю, с чего начать.

Любые советы?

+1

Посмотрите на оценки ансамблей, такие как упаковка и форсирование, они позволяют комбинировать базовые оценки. По меньшей мере, мешки можно легко распределять между машинами. Но я не знаю, как обучение классификатора связано с уменьшением карты. Может быть, вы не поняли свою задачу? Или вам просто нужно использовать Map-reduce на этапе предварительной обработки данных? Кроме того, если вы хотите тренировать некоторый алгоритм в распределенной форме - я бы рекомендовал вам посмотреть Apache Spark и MLib, в которых есть некоторые готовые к использованию algos. –

ответ

0
  1. Убедитесь, что все необходимые библиотеки (scikit учиться, NumPy, панды) установлены на каждом узле кластера.

  2. Ваш картограф будет обрабатывать каждую строку ввода, т. Е. Вашу учебную строку, и испускать ключ, который в основном представляет собой складку, для которой вы будете обучать ваш классификатор.

  3. Ваш редуктор будет собирать линии для каждой складки, а затем запускать классификатор склеров на всех линиях для этой складки.

  4. Затем вы можете усреднять результаты по каждой складке.

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