2011-01-27 5 views
6

Я новичок в изучении машин ... Я разрабатываю инструмент, в котором мне нужно предсказать значение переменной на основе комбинации нескольких переменных .... Реализация должна быть в Java ...Basic machine learning

Plz помочь ...

Спасибо ...

+6

Это домашнее задание? – Hery

+0

no :) Я знаю, что мой вопрос очень абстрактный ... Мне нужна идея, чтобы начать свою работу ... – Rahim

+2

Я настоятельно рекомендую вам взглянуть на Weka (http://www.cs.waikato.ac.nz/ml/weka /) - очень хорошие инструменты для машинного обучения на основе Java – mikera

ответ

4

Если вы хотите начать с чего-то простого, рассмотрите квазилинейную модель, такую ​​как логистическая регрессия или линейный дискриминантный анализ: их легко понять, и для них есть код для всего Интернета. Также рассмотрим некоторые из более простых (единичных) нейронных моделей (персептрон, правило дельта и т. Д.): Они очень просты в программировании. Если вы хотите продолжить это, я предлагаю получить книгу, например «Компьютерные системы, которые учат», Вайсс и Куликовски.

6

Eсть хороший открытый курс Стэнфорда о механическом обучении с видео-лекциями и т. д.
Посмотрите here.

1

звучит как многовариантная линейная регрессия, выполнит эту работу.

2

Я также начинал с K-Nearest-Neighbors - они являются самыми простыми - и можно экспериментировать с различными предварительными обработками данных, дистанционными измерениями и т. Д. Они также приводят к очень хорошим (хотя и очень медленным) предсказаниям ,

2

Если переменная, которая должна быть предсказана, является непрерывной, то регрессионными моделями являются ключ. Существуют много методов регрессии, включая наименьшие квадраты, полиномиальные модели, ANN и SVM. Конечно, каждый метод может иметь свое предположение или параметры.

MATLAB - одна из хорошо документированных вычислительных сред. я бы посоветовал посетить следующую страницу документации MATLAB по нелинейной регрессии: http://www.mathworks.com/help/stats/nonlinear-regression-1.html#btcgzas-1

Вы можете начать с помощью глобального метода поиска, такие как генетические алгоритмы ГаЗа для настройки параметров данной полиномиальной модели регрессии.

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

0

Перед тем, как погрузиться в код, так как вы новичок, я предлагаю вам ознакомиться с основными принципами и закрепиться на этом. Вам не нужно читать кандидатскую диссертацию, но по крайней мере основные термины в SVM, логистической регрессии и нейронных сетях были бы полезны. Есть много материалов в Интернете через Стэнфорд, курсы Курсеры и книги, предложенные в других ответах.

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

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

2

Weka соответствует вашим потребностям. Он имеет регрессию и реализуется на Java.

0

Если это проблема с регрессией, я бы предложил вам начать с таких вещей, как логистика или линейная регрессия в Matlab. Есть библиотеки, и вы можете получить код для него. Таким образом, сначала проверьте и найдите путем сравнения ошибки в выборке (из данных, которые вы рассматриваете для производства), и ошибки вне образца (чтобы проверить ваши прогнозы против данных, которые не учитывались при составлении этих прогнозов), количество и порядок функции и количество необходимых данных обучения. Если данные обучения меньше, используйте меньше функций или регуляризации. Если количество и порядок функций очень велики и их трудно определить, перейдите в нейтральные сети или SVM (см., Если есть библиотека SVM для java), и когда у вас есть идеальная система в Matlab, тогда разверните ее на Java. Насколько я понял, системы ML требуют хорошей ручной настройки, прежде чем они станут пригодными для практического использования, и такие среды, как Matlab/Ocatve, являются лучшими платформами для этой тонкой настройки.

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