Многомерная полиномиальная регрессия (предпочтительно C / C++, Java или Scala)
Учитывая набор (N+1)-мерных вещественных векторов с N независимыми и 1 зависимыми значениями, я хотел бы вычислить полином степени 1 (линейный), 2 (квадратичный) или выше, который обеспечивает достаточно хорошее соответствие (например, как определено ошибкой наименьших квадратов). Другими словами, при применении к элементам коллекции полином должен сопоставлять независимые значения каждого из них с соответствующим зависимым значением (с некоторой разумной погрешностью).
Я ожидаю, что размерность независимых переменных должна находиться в диапазоне 2..8, и работать на сборах 20..200 элементов. Я надеюсь вписать многочлен в миллисекунды, а не в секунды. :- )
Я быстро нашел алгоритмы полиномиальной регрессии для одномерных данных, но не смог придумать ничего практического для многомерных данных. Меня интересуют в первую очередь описания алгоритмов или исходный код. Есть указания?
2 ответов:
Вы можете изучить платформуWeka data mining and machine learning - она чрезвычайно всеобъемлюща и включает в себя все виды различных алгоритмов регрессии.
Большим бонусом является то, что все это с открытым исходным кодом, так что вы также можете изучить код, если хотите.
Я искал тот же самый код и нашел два хороших примера этого.
См.net.источник-горн.openforecast
В частности, смотрите класс Regressionmodelв качестве начальной точки
И простая реализация одного класса, которая предназначена для гораздо больших наборов данных, чем вы упомянули
Http://blog.locut.us/2009/11/14/polynomial-regression-on-a-large-dataset-in-java/
Comments