Модель классификации для прогнозирования рейтинга фильмов

11

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

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

К Хейн
источник

Ответы:

5

Hein,

Есть много инструментов и библиотек с доступной функциональностью.

Какой из них выбрать, зависит от того, хотите ли вы использовать графический интерфейс для своей работы или хотите встроить его в какую-либо другую программу.

Автономные инструменты интеллектуального анализа данных (есть и другие, как WEKA с интерфейсом Java):

  • Rapid Miner
  • апельсин
  • Погремушка GUI для R
  • KNIME

На основе текста:

  • GNU R

Libs:

  • Scikit для Python
  • Mahout на Hadoop

Если вы достаточно хорошо знаете язык программирования, я бы использовал lib для этого языка или попробовал бы R. Если нет, вы можете попробовать один из инструментов с графическим интерфейсом.

Пример дерева в R:

# we are using the iris dataset
data(iris)

# for our tree based model we use the rpart package
# to download it type install.packages("rpart")
library(rpart)

# Building the tree
fit <- rpart(Species ~ Petal.Length + Petal.Width, method="class", data=iris)

# Plot the tree
plot(fit)
text(fit)

Как и предполагалось, анализ с использованием R требует от вас написания кода самостоятельно, но вы найдете пакет для большинства задач классификации, который будет работать «из коробки». Обзор можно найти здесь Machine Learning Task View

Чтобы начать работать с RapidMinder, вам нужно взглянуть на Youtube. Есть несколько скринкастов, даже для деревьев решений.

audijenz
источник
1
Я хотел бы понизить голос, но вы новичок, поэтому: вы просто перечисляете набор инструментов (довольно общий ответ) без демонстрации того, почему он подходит для конкретной задачи ОП. Я предлагаю предоставить более подробную информацию, в противном случае ваш ответ может быть заменен stats.stackexchange.com/questions/2007/… . Без обид, пожалуйста, примите это как дружеский совет :)
steffen
@steffen: с уважением, получение Audijenz 4 голосов и 0 голосов говорит об обратном. Я считаю, что он / она хорошо ответил на вопрос. Она спросила, «какой свободно доступный инструмент интеллектуального анализа данных может предоставить необходимые мне функции», и ответ дал это и многое другое. На самом деле, гораздо больше, чем любой из ответов в теме, которую вы связали.
rolando2
1
@ rolando2 Я добавил комментарий ДО того, как audijenz отредактировал его, и я уже проголосовал за отредактированный ответ;).
Штеффен
@steffen: я исправлюсь!
rolando2
5

Weka - это бесплатный набор инструментов для машинного обучения с открытым исходным кодом. Они имеют графический интерфейс, а также API для вызова из вашего кода Java, если хотите.

У них есть много алгоритмов классификации, включая несколько алгоритмов дерева решений. Они доступны в пользовательском интерфейсе. Ближайшие соседи немного сложнее, и кажется, что вы должны использовать API напрямую .

Я думаю, что Rapid Miner, вероятно, поддерживает такие вещи, но я раньше не использовал их для таких целей.

Вы также можете рассмотреть R , но это может потребовать немного более грязных рук.

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

Майкл МакГоуэн
источник
Спасибо, Майкл, я попробовал Weka для алгоритмов дерева решений, но обнаружил, что числовые значения не поддерживаются для большинства алгоритмов дерева решений. В моих наборах данных у меня есть числовые значения, такие как рейтинг (метка класса), бюджет, идентификатор директора, идентификатор актера и т. Д. Итак, как я могу обработать эти числовые значения? (Я не уверен, что мне следует открыть новую ветку для моего вопроса). Есть ли у вас какие-либо предложения по любому другому подходящему алгоритму?
К Хейн
2
@K Hein 1) Я предлагаю использовать случайные леса (RF) вместо DT. См. Например, stats.stackexchange.com/questions/10001/… . 2) числовые переменные: RF может обрабатывать как числовые, так и дискретные метки, вы должны попробовать оба подхода; Director_id, actor_id не числовая функция, это либо логическое (актер участвовал?) или номинальное (основной актер); Бюджет может быть дискретизирован или позволить РФ справиться с ними. В этом случае алгоритм ищет оптимальную точку разделения. Я предлагаю поиграть и вернуться позже с более конкретными вопросами;).
Штеффен
@steffen Спасибо, Штеффен! Я попробую с РФ, но у меня еще есть несколько вопросов относительно вашего комментария. Допустим, если я хочу принять actor_id как логическое значение, то для каждого уникального actor_id у меня есть логический атрибут, например isActor1Particated (скажем, для actor_id = 1)? Если я хочу изменить actor_id на номинальный атрибут, как мне это сделать? Я был бы очень признателен, если бы вы могли дать некоторые описания, так как я действительно новичок в области интеллектуального анализа данных.
К Хейн
1
@KHein моя идея, стоящая за номинальным предложением, заключалась в том, чтобы ограничить актеров наиболее важными, создав такие функции, как first_actor, second_actor и т. Д. В любом случае: как обращаться с информацией переменной длины (актеры, режиссеры, ключевые слова и т. Д.) - тема для отдельный вопрос.
Штеффен
@KHein Когда вы задаете вопрос «Как обращаться с информацией переменной длины», пожалуйста, связывайтесь с ним здесь :-)
Даррен Кук
1

Может быть ... ВЕКА? http://www.cs.waikato.ac.nz/ml/weka/

Orsino
источник
1
(-1): Несмотря на то, что Weka действительно является инструментом интеллектуального анализа данных, который действительно содержит реализацию NN и DT, ответ настолько универсален, что может дать ответ на массу вопросов. Если вы считаете, что Weka подходит для особой задачи прогнозирования рейтинга с учетом крайне многомерных разреженных данных, почему бы вам не показать пример (или ссылку на пример). Без обид, пожалуйста, примите это как дружеское предложение.
Штеффен