Совет по алгоритму Mahout

На самом деле мне нужна лишь подсказка, с чего я могу начать.

Я немного знаком с Mahout, по крайней мере, теоретически. Я знаю, как это работает, как настроить и т. д., и я мог бы создать простую систему рекомендаций, основанную на совместной фильтрации.

Однако сейчас я пытаюсь сделать что-то более сложное, и даже прочитав немало о разных алгоритмах, я не уверен, в каком направлении двигаться.

Быстро то, что я хочу сделать, это:

Конечная цель состоит в том, чтобы определить один скаляр («оценку») каждого из набора сущностей на основе некоторых «известных» сущностей. Сущности взаимодействуют друг с другом, известные оценки влияют и определяют неизвестные. Вы можете представить это на следующем примере.

У меня много белой одежды и несколько цветных; красный, синий, зеленый... Я закинул их в стиральную машину. Я хочу знать, какие цвета приобретут белые после стирки.

Что нужно учитывать:

  • делаем серию стирок с разными "актёрами"... часть белья стирается в 1-й и 3-й стирке, часть только во 2-й, часть стирается во всех
  • при последовательных стирках вещи, которые раньше были белыми, а теперь цветными, также влияют на остальные, но не так сильно (поскольку они не такие цветные)
  • некоторые цвета не «окрашивают» так сильно, как другие. например красный цвет оказывает сильное влияние на большую часть одежды, а зеленый не так сильно
  • эффект окрашивания также зависит от того, сколько белья находится в одной стирке. Если стирать красную рубашку с белой футболкой, она станет намного ярче, чем если бы было 100 других белых футболок.
  • одежда не "теряет" свой цвет при воздействии на других

Вы можете видеть, что при расчете объектам фактически назначено 2 скаляра:

  • цветовой оттенок (это также определяет «силу окраски», как упоминалось выше). Оттенок можно представить в виде числа, скажем, от 0 до 1. Когерентность между мощностью окраски и номером цвета нелинейна. Это больше похоже на то, что концы шкалы имеют большую мощность окраски (0 и 1), а середина (0,5) — меньшую.
  • "светлость" цвета (насколько объект окрашен, для исходно окрашенной одежды - 1, для белой - 0), который в то же время определяет и мощность окраски независимо от оттенка

Итак, еще раз то, что я знаю:

  • какая одежда стиралась в какой последовательной стирке
  • Я знаю первоначальный цвет некоторых из них, остальные изначально белые

Что я хочу знать: - оттенок всей одежды в конце стирки

Проблема в том, что я не знаю, с какого (типа) алгоритма мне начать. Если вы были так любезны дочитать до сих пор, пожалуйста, предложите мне что-нибудь (или дополнительное чтение).

Очевидно, я не прошу подробностей, опять же, только намеки.

Спасибо!


person gphilip    schedule 01.03.2012    source источник
comment
Это не похоже на проблему машинного обучения; похоже, что вы можете просто запрограммировать симулятор... В каждом цикле стирки вы обновляете цвет и силу окраски белой одежды на основе цвета и силы окраски другой одежды. Это не сложно закодировать, и похоже, что у вас есть вся информация для этого, не так ли? Машинное обучение используется для вывода вероятностных распределений (думайте о них как о шаблонах) на основе данных. Я не понимаю, как это применимо здесь.   -  person Diego    schedule 02.03.2012
comment
AFAIK Mahout предназначен не только для задач машинного обучения. Я думал, что это подходящий инструмент, потому что я работаю с большим набором данных, и выходные данные имеют такие же характеристики, как и классическое задание Mahout. Я думаю, что описанную выше проблему можно реализовать с помощью MapReduce, но я не знаю, существует ли какой-либо аналогичный алгоритм. Мне нужно, чтобы это было масштабируемым, поэтому я думаю, что Mahout поверх мощности Hadoop MapReduce может быть подходящим решением.   -  person gphilip    schedule 02.03.2012


Ответы (1)


Единственное, что я могу придумать, похоже на проблему, это PageRank. Это вычисляется своего рода итеративным моделированием. Каждая страница имеет какое-то влияние (цвет), которое течет по ее ссылкам (носки, которыми она смывается), и в какой-то момент влияние страницы достигает устойчивого состояния (конечный цвет). Вы можете поискать алгоритмы PageRank, но по сути это вопрос вычисления собственных векторов большой, эээ, цветовой матрицы носка.

person Sean Owen    schedule 03.03.2012