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


11

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

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

Відповіді:


5

Хайн,

є безліч інструментів та ліфтів із доступною функціональністю.

Який вибрати, залежить від того, чи хотіли б ви використовувати gui для своєї роботи або хочете вставити її в якусь іншу програму.

Автономні інструменти для видобутку даних (є такі, як WEKA з інтерфейсом Java):

  • Швидкий шахтар
  • Помаранчевий
  • Гуркіт гуї для Р
  • КНІМ

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

  • GNU R

Терези:

  • Scikit для Python
  • Mahout на Hadoop

Якщо ви досить добре знаєте мову програмування, я б скористався lib для цієї мови або спробую R спробувати. Якщо ні, то ви можете спробувати один із інструментів з gui.

Приклад дерева в 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 вимагає, щоб ви кодували себе, але ви знайдете пакет для більшості завдань класифікації, які працюватимуть поза коробкою. Огляд можна знайти тут Перегляд завдань машинного навчання

Щоб розпочати роботу з RapidMinder, ви повинні подивитися на Youtube. Існують деякі скріншоти, навіть для дерев рішень.


1
Мені хотілося б озвучити, але ви новачок, тому: Ви просто перелічите набір інструментів (досить загальна відповідь) без демонстрації, чому він підходить для конкретного завдання ОП. Пропоную надати більше деталей, інакше вашу відповідь можна буде замінити stats.stackexchange.com/questions/2007/… . Без образи, прийміть це як дружню пораду :)
steffen

@steffen: з повагою, отримання Audijenz 4 оновлених і 0 знижок говорить про інше. Я вважаю, що він / він добре відповів на питання. Він запитав "який вільно доступний інструмент пошуку даних може надавати потрібні мені функції", і відповідь дав це та інше. Насправді набагато більше, ніж будь-яка відповідь у потоці, яку ви пов’язали.
rolando2

1
@ rolando2 Я додав коментар ДО ПІД редагування його audijenz, і я вже підтримав відредаговану відповідь;).
steffen

@steffen: Я виправлений!
rolando2

5

Weka - це безкоштовний та відкритий набір інструментів машинного навчання з відкритим кодом. У них є графічний інтерфейс, а також API для дзвінка з вашого коду Java, якщо ви хочете.

Вони мають багато алгоритмів класифікації, включаючи кілька алгоритмів дерева рішень. Вони доступні в інтерфейсі користувача. Найближчі сусіди трохи складніші, і здається, вам доведеться використовувати API безпосередньо .

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

Ви також можете розглянути R , але це може зажадати, щоб руки були трохи бруднішими.

Зауважте, що Netflix провів багато робіт у класифікації рейтингів фільмів. Кілька років тому вони запропонували групі приз на мільйон доларів, який міг би покращити їх класифікацію. Можливо, вам буде цікаво прочитати, як різні команди підходили до цієї проблеми.


Дякую Майклу, я спробував Weka для алгоритмів дерева рішень, але виявив, що числові значення не підтримуються для більшості алгоритмів дерева рішень. У своїх наборах даних у мене є числові значення, такі як рейтинг (ярлик класу), бюджет, ідентифікатор режисера, ідентифікатор актора тощо. Як я можу обробляти ці числові значення? (Я не впевнений, чи повинен я відкрити нову тему для свого питання). Чи є якісь пропозиції щодо будь-якого іншого відповідного алгоритму?
K Hein

2
@K Hein 1) Я пропоную використовувати випадкові ліси (РФ) замість ДТ. Див , наприклад , stats.stackexchange.com/questions/10001 / ... . 2) числові змінні: РФ може обробляти як цифрові, так і дискретні мітки, ви повинні спробувати обидва підходи; режисер_id, актор_id не є числовою ознакою, це або булева (актор брав участь?), або номінальна (головний актор); бюджет можна дискретизувати або дозволити РФ обробляти їх. У цьому випадку алгоритм шукає оптимальну точку розколу. Я пропоную пограти і повернутися пізніше з більш конкретними питаннями;).
steffen

@steffen Дякую Steffen! Я спробую з РФ, але у мене все ще є кілька питань щодо вашого коментаря. Скажімо, якщо я хочу взяти act_id як булевий, то для кожного унікального актора_id я маю булевий атрибут на зразок isActor1Particated (скажімо, дляктор_id = 1)? Якщо я хотів би змінити act_id на номінальний атрибут, як мені це зробити? Буду дуже вдячний, якщо ви зможете надати деякі описи, оскільки я дійсно новачок у галузі видобутку даних.
K Hein

1
@KHein моя ідея за номінальною пропозицією полягала в тому, щоб обмежити акторів найважливішими, створюючи такі функції, як first_actor, second_actor тощо. Як би там не було: Як поводитися з інформацією різної довжини (актори, режисери, ключові слова тощо) - це тема для окреме питання.
steffen

@KHein Коли ви задаєте питання "Як поводитися з інформацією змінної довжини", будь ласка, посилайтесь на це тут :-)
Darren Cook

1

Може бути ... WEKA? http://www.cs.waikato.ac.nz/ml/weka/


1
(-1): Хоча Weka - це справді інструмент обміну даними, який дійсно містить реалізацію NN та DT, відповідь є настільки загальним, що може відповісти на безліч питань. Якщо ви вважаєте, що Weka підходить для спеціального завдання прогнозування рейтингу з урахуванням надзвичайно багатовимірних розріджених даних, чому б вам не показати приклад (або посилання на приклад). Без образи, прийміть це як дружню пропозицію.
steffen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.