2012-03-26 4 views
4

Я только начинаю работать с Mahout, и одна вещь, которая сильно озадачила меня, - это отсутствие линейной регрессии. Даже логистическая регрессия, которая намного сложнее, в какой-то степени поддерживается исследованиями, но все они молчат о линейном регрессионном фронте!Почему Mahout еще не имеет линейной регрессии

Из того, что я понимаю, МНК является одним из самых простых задач, чтобы решить -

Y = Xb + е

имеет линейное регрессионное решение Ь = (Х^ТЕ)^(- 1) X^TY, где X^T транспонируется на X, и если матрица (X^TX) получается сингулярной (т. Е. Не обратимой), то вполне нормально отображать сообщение об ошибке, даже если существует решение с использованием обобщенного обратного.

Вычисление как X^T X, так и X^Y - это просто вычисления сумм и суммы произведений элементов, что, пожалуй, самое простое в использовании MapReduce.

(что заставляет меня думать ... есть ли модуль, который поддерживает собственные матричные операции, необходимые для вычисления регрессии cofficients? Это сделало бы регрессионного модуль ненужными действительно ...)

Могу ли я что-то отсутствует, что делает регрессии трудно вычислить в Махуте?

ответ

5

Я не знаю, есть ли «что» для таких вещей. Этого просто не существует.

Однако я думаю, что это противоположность того, что вы полагаете; это слишком «легко». Если вы не решаете решение десяти миллионов уравнений, это, вероятно, не та шкала, к которой призывает Hadoop. Существует множество существующих пакетов, которые могут действительно хорошо работать на одной машине. Если вы хотите что-то еще на Java из Apache, просто посмотрите на Commons Math, например.

Нельзя сказать, что в проекте не может быть прекрасной нераспространяемой версии, но поскольку акцент в основном крупномасштабный и Hadoop, это, вероятно, «почему».

+1

@kalEl далее - mahout - проект с открытым исходным кодом, если вы считаете, что это просто, просто добавьте его самостоятельно –

0

Я думаю, что это просто потому, что сложность инверсии матрицы NxN равна O (N^3) и подвержена числовой неустойчивости, что довольно часто встречается с разреженными высокоразмерными матрицами.

Есть ли у кого-нибудь другое объяснение или кто-то может подтвердить мои мысли?

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