Привет Как сказал Ганн Бирнер, это проблема классификации. Лучший алгоритм классификации для ваших потребностей, который я знаю, это алгоритм Росса Квинлана. Это концептуально очень легко понять.
Для стандартных реализаций алгоритмов классификации лучше всего подходит Weka. http://www.cs.waikato.ac.nz/ml/weka/. Я изучал Weka, но не использовал, так как обнаружил это слишком поздно.
Я использовал гораздо более простую реализацию под названием JadTi. Это работает довольно хорошо для небольших наборов данных, таких как ваш. Я использовал это совсем немного, так что могу с уверенностью сказать, так. JadTi можно найти по адресу:
http://www.run.montefiore.ulg.ac.be/~francois/software/jaDTi/
Сказав все это, вашей задачей будет создание удобного интерфейса через Интернет. Для этого набор данных будет иметь ограниченное использование. Набор данных в основном работает при условии, что у вас уже есть обучающий набор, и вы вводите новый набор тестовых данных за один шаг, и вы сразу получаете ответ (ы).
Но мое приложение, возможно, и ваше, представляло собой пошаговое обнаружение пользователей с функциями, позволяющими переходить туда-сюда по узлам дерева решений.
Чтобы создать такое приложение, я создал документ PMML из своего обучающего набора и создал движок Java, который перебирает каждый узел дерева, запрашивая у пользователя ввод (текст / радио / список) и используя значения как входные данные для следующего возможного предиката узла.
Стандарт PMML можно найти здесь: http://www.dmg.org/ Здесь вам нужна только TreeModel. Плагин NetBeans XML - это хороший редактор с поддержкой схем для разработки PMML. Altova XML может работать лучше, но стоит $$.
Можно также использовать СУБД для хранения вашего набора данных и автоматического создания PMML! Я этого не пробовал.
Удачи в вашем проекте, пожалуйста, дайте мне знать, если вам нужны дополнительные материалы.