Это похоже на этот вопрос , когда ОП хотел построить систему рекомендаций. В двух словах, нам предоставляется набор обучающих данных, состоящий из оценок пользователей фильмов (например, 1-5 звезд) и набора атрибутов для каждого фильма (год, жанр, актеры и т. Д.). Мы хотим создать рекомендацию, чтобы он мог показывать возможные рейтинги для невидимых фильмов. Таким образом, данные inpt выглядят так:
user movie year genre ... | rating
---------------------------------------------
1 1 2006 action | 5
3 2 2008 drama | 3.5
...
и для фильма без рейтинга X:
10 20 2009 drama ?
мы хотим предсказать рейтинг. Выполнение этого для всех невидимых фильмов, затем сортировка по прогнозируемому рейтингу фильма и вывод первых 10 дает вам систему рекомендаций.
Самый простой подход - использовать алгоритм k-ближайший сосед . Среди фильмов с рейтингом найдите «самые близкие» фильмы X и объедините их рейтинги, чтобы получить прогноз.
Этот подход имеет то преимущество, что его очень просто реализовать с нуля.
Существуют и другие более сложные подходы. Например, вы можете построить дерево решений , подгонять набор правил к данным обучения. Вы также можете использовать байесовские сети , искусственные нейронные сети , машины опорных векторов , среди многих других ... Пройдя через каждый из них, будет нелегко для кого-то без правильный фон.
Тем не менее, я ожидаю, что вы будете использовать внешний инструмент / библиотеку. Теперь вы, похоже, знакомы с байесовскими сетями, поэтому простая наивная байесовская сеть на самом деле может быть очень мощной. Одним из преимуществ является то, что он позволяет прогнозировать по недостающим данным.
Основная идея была бы несколько такой же; возьмите входные данные, которые у вас есть, обучите модель, а затем используйте ее для прогнозирования класса новых экземпляров.
Если вы хотите поиграть с разными алгоритмами в простом, интуитивно понятном пакете, который не требует программирования, я предлагаю вам взглянуть на Weka (мой первый выбор), Orange или RapidMiner . Самым сложным будет подготовить набор данных в требуемом формате. Остальное так же просто, как выбрать алгоритм и применить его (всего за несколько кликов!)
Я думаю, что для тех, кто не хочет вдаваться в подробности, я бы порекомендовал использовать метод ближайшего соседа, так как он интуитивно понятен и прост в реализации. Тем не менее, можно использовать Weka (или один из других инструментов) стоит посмотреть.