Проблема машинного обучения: диагностируя программу в Java / отличный (datamining, машинное обучение)

Это - своего рода фиктивная таблица с единственной записью, используемой для выбора, когда Вы на самом деле не интересуетесь данными, но вместо этого хотите результаты некоторой системной функции в избранном операторе:

, например, select sysdate from dual;

См. http://www.adp-gmbh.ch/ora/misc/dual.html

19
задан Jon Seigel 22 May 2010 в 23:35
поделиться

5 ответов

Привет, как сказал Ганн Бирнер, это проблема классификации. Наилучший алгоритм классификации для ваших нужд, о котором я знаю, - это алгоритм Росс Куинлан. Концептуально это очень легко понять.

Для стандартных реализаций алгоритмов классификации лучшим выбором является Weka. http://www.cs.waikato.ac.nz/ml/weka/ . Я изучал Weka, но не использовал его, так как обнаружил его слишком поздно.

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

http://www.run.montefiore.ulg.ac.be/~francois/software/jaDTi/

Сказав все это, вашей задачей будет создание удобного интерфейса через Интернет. . Для этого набор данных будет иметь ограниченное использование. Набор данных в основном работает при условии, что у вас уже есть обучающий набор, и вы вводите новый набор тестовых данных за один шаг, и вы сразу получаете ответ (-ы).

Но мое приложение, возможно, и ваше тоже, было пошаговое обнаружение пользователей с функциями для перемещения вперед и назад по узлам дерева решений.

Чтобы создать такое приложение, я создал документ PMML из своего обучающего набора и построил Java Engine, который проходит каждый узел дерева просят пользователя ввести ввод (текст / радио / список) и использовать значения в качестве входных для следующего возможного предиката узла.

Стандарт PMML можно найти здесь: http://www.dmg.org / Здесь вам понадобится только TreeModel. Подключаемый модуль XML NetBeans - хороший редактор с поддержкой схем для разработки PMML. Altova XML может работать лучше, но стоит $ $$.

Также можно использовать СУБД для хранения набора данных и автоматического создания PMML! Я не пробовал этого.

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

7
ответ дан 30 November 2019 в 03:43
поделиться

Существуют различные алгоритмы, которые попадают в категорию «машинного обучения», и то, что подходит для вашей ситуации, зависит от типа данных, с которыми вы имеете дело.

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

Я бы посмотрел на некоторые стандартные тексты, такие как Russel & Norvig («Искусственный интеллект: современный подход») и другие вводные в AI / машинное обучение, и посмотрел бы, сможете ли вы легко адаптировать упомянутые ими алгоритмы. к вашим конкретным данным. См. Также О'Рейли, «Программирование коллективного разума».

6
ответ дан 30 November 2019 в 03:43
поделиться

Это проблема классификации, а не интеллектуального анализа данных. Общий подход состоит в том, чтобы извлечь признаки из каждого экземпляра данных и позволить алгоритму классификации изучить модель по признакам и результату (который для вас равен 0 или 1). Предположительно, каждый из ваших 30 вопросов будет отдельной особенностью.

Есть много методов классификации, которые вы можете использовать. Популярны машины опорных векторов, как и максимальная энтропия. Я не использовал библиотеку машинного обучения Java, но, на первый взгляд, я не вижу ни того, ни другого. В проекте OpenNLP реализована максимальная энтропия. LibSVM имеет машинную реализацию опорных векторов. Вам почти наверняка придется изменить свои данные так, чтобы их могла понять библиотека.

Удачи!

Обновление: Я согласен с другим комментатором, что Рассел и Норвиг - отличная книга по ИИ, в которой обсуждаются некоторые из этих вопросов. В книге Бишопа «Распознавание образов и машинное обучение» подробно рассматриваются вопросы классификации, если вас интересуют мелкие и грязные детали.

6
ответ дан 30 November 2019 в 03:43
поделиться

Я настоятельно рекомендую вам использовать Weka для вашей задачи
Это набор алгоритмов машинного обучения с удобным интерфейсом, который позволяет использовать множество различных функций и стратегий выбора модели
С его помощью вы можете делать много действительно сложных вещей, не прибегая к программированию или математике
Производители также опубликовали неплохой учебник , в котором объясняются практические аспекты интеллектуального анализа данных
Как только вы освоите его, вы сможете использовать его API для интеграции любого из его классификаторов в свои собственные java-программы

13
ответ дан 30 November 2019 в 03:43
поделиться

Ваша задача классическая для нейронных сетей, которые предназначены в первую очередь для решения именно классификационных задач. Нейронная сеть имеет достаточно простую реализацию на любом языке, и это «мейнстрим» «машинного обучения», более близкий к ИИ, чем что-либо другое. Вы просто реализуете (или получаете существующую реализацию) стандартную нейронную сеть, например, многослойную сеть с обучением путем обратного распространения ошибок, и даете ей обучающие примеры в цикле. После некоторого времени вы научитесь работать на реальных примерах. Вы можете узнать больше о нейронных сетях здесь: http://en.wikipedia.org/wiki/Neural_network http://en.wikipedia.org/wiki/Artificial_neural_network Также вы можете получить ссылки на многие готовые реализации здесь: http://en.wikipedia.org/wiki/Neural_network_software

3
ответ дан 30 November 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: