Model klasyfikacyjny do przewidywania ocen filmów

11

Jestem trochę nowy w eksploracji danych i pracuję nad modelem klasyfikacyjnym do przewidywania ocen filmów.

Zebrałem zestawy danych z IMDB i planuję użyć drzew decyzyjnych i podejść do najbliższego sąsiada dla mojego modelu. Chciałbym wiedzieć, które swobodnie dostępne narzędzie do eksploracji danych może zapewnić wymaganą funkcjonalność.

K Hein
źródło

Odpowiedzi:

5

Hein

dostępnych jest wiele narzędzi i bibliotek.

Wybór zależy od tego, czy chcesz używać GUI do pracy, czy też chcesz osadzić go w innym programie.

Autonomiczne narzędzia do eksploracji danych (istnieją takie jak WEKA z interfejsem Java):

  • Szybki górnik
  • Pomarańczowy
  • GUI grzechotki dla R.
  • KNIME

Tekstowy:

  • GNU R

Libs:

  • Scikit dla Python
  • Mahout na Hadoop

Jeśli znasz język programowania wystarczająco dobrze, użyłbym biblioteki lib dla tego języka lub spróbuję. Jeśli nie, możesz wypróbować jedno z narzędzi z GUI.

Przykład drzewa w 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)

Zgodnie z sugestią analiza za pomocą R wymaga samodzielnego kodowania, ale znajdziesz pakiet dla większości zadań klasyfikacyjnych, które będą działać od razu po wyjęciu z pudełka. Przegląd można znaleźć tutaj Widok zadań uczenia maszynowego

Aby rozpocząć korzystanie z RapidMinder, powinieneś zajrzeć na Youtube. Istnieje kilka screencastów, nawet dla drzew decyzyjnych.

audijenz
źródło
1
Chciałbym przegłosować, ale jesteś nowy, więc: Po prostu wymieniasz zestaw narzędzi (raczej ogólna odpowiedź) bez wykazania, dlaczego jest on odpowiedni do konkretnego zadania PO. Sugeruję podać więcej szczegółów, w przeciwnym razie twoja odpowiedź może zostać zastąpiona przez stats.stackexchange.com/questions/2007/… . Bez obrazy, proszę przyjmij to jako przyjazną radę :)
steffen
@steffen: z szacunkiem, otrzymanie 4 pozytywnych opinii i 0 negatywnych opinii przez audijenz mówi inaczej. Wierzę, że on / ona dobrze odpowiedział na pytanie. Zapytano „które swobodnie dostępne narzędzie do eksploracji danych może zapewnić wymagane przeze mnie funkcje”, a odpowiedź dała to i wiele więcej. Znacznie więcej niż jakakolwiek odpowiedź w wątku, który dowiązałeś.
rolando2,
1
@ rolando2 Dodałem komentarz ZANIM edytowałem go audijenz i już głosowałem za zredagowaną odpowiedzią;).
steffen
@steffen: Stoję poprawiony!
rolando2,
5

Weka to darmowy pakiet narzędzi do uczenia maszynowego typu open source. Mają GUI, a także interfejs API do wywołania z kodu Java, jeśli chcesz.

Mają wiele algorytmów klasyfikacji, w tym kilka algorytmów drzewa decyzyjnego. Są one dostępne w interfejsie użytkownika. Najbliżsi sąsiedzi są nieco trudniejsi i wydaje się, że musisz bezpośrednio korzystać z interfejsu API .

Myślę, że Rapid Miner prawdopodobnie obsługuje tego typu rzeczy, ale wcześniej nie używałem go do takich celów.

Możesz również rozważyć R , ale może to wymagać zabrudzenia rąk.

Pamiętaj, że Netflix wykonał mnóstwo pracy w zakresie klasyfikacji ocen filmów. Kilka lat temu zaoferowali grupie nagrodę w wysokości 1 miliona dolarów, która może najbardziej poprawić ich klasyfikację. Być może zechcesz przeczytać, jak różne zespoły podeszły do ​​tego problemu.

Michael McGowan
źródło
Dzięki Michael, wypróbowałem Weka dla algorytmów drzewa decyzyjnego, ale stwierdziłem, że wartości liczbowe nie są obsługiwane dla większości algorytmów drzewa decyzyjnego. W moich zestawach danych mam wartości liczbowe, takie jak ocena (etykieta klasy), budżet, identyfikator reżysera, identyfikator aktora itp. Jak więc sobie poradzić z tymi wartościami liczbowymi? (Nie jestem pewien, czy powinienem otworzyć nowy wątek na moje pytanie). Czy masz jakieś sugestie dotyczące innego odpowiedniego algorytmu?
K Hein
2
@K Hein 1) Sugeruję użycie Losowych Lasów (RF) zamiast ID. Zobacz np . Stats.stackexchange.com/questions/10001/… . 2) zmienne numeryczne: RF może obsługiwać zarówno etykiety numeryczne, jak i dyskretne, należy wypróbować oba podejścia; id_rejestratora, id_docenta nie jest funkcją numeryczną, jest albo wartością logiczną (aktor uczestniczył?), albo nominalną (główny aktor); budżet można zdyskretyzować lub pozwolić RF na ich obsługę. W takim przypadku algorytm szuka optymalnego punktu podziału. Proponuję pobawić się i wrócić później z bardziej szczegółowymi pytaniami;).
steffen
@steffen Thanks Steffen! Spróbuję z RF, ale wciąż mam kilka pytań dotyczących twojego komentarza. Powiedzmy, że jeśli chcę wziąć actor_id jako boolean, to dla każdego unikalnego actor_id mam atrybut boolean taki jak isActor1Particated (na przykład dla actor_id = 1)? Jeśli chciałbym zmienić actor_id na atrybut nominalny, jak mam to zrobić? Byłbym bardzo wdzięczny, gdybyś mógł podać kilka opisów, ponieważ jestem naprawdę nowy w obszarze eksploracji danych.
K Hein,
1
@KHein, moim pomysłem za nominalną sugestią było ograniczenie aktorów do najważniejszych poprzez stworzenie funkcji takich jak first_actor, second_actor itp. W każdym razie: Jak radzić sobie z informacjami o zmiennej długości (aktorzy, reżyserzy, słowa kluczowe itp.) Jest tematem osobne pytanie.
steffen
@KHein Kiedy zadajesz pytanie „Jak sobie radzić z informacjami o zmiennej długości”, proszę link do niego tutaj :-)
Darren Cook
1

Może być ... WEKA? http://www.cs.waikato.ac.nz/ml/weka/

Orsino
źródło
1
(-1): Chociaż Weka jest rzeczywiście narzędziem do eksploracji danych, które rzeczywiście zawiera implementację NN i DT, odpowiedź jest tak ogólna, że ​​mogłaby być odpowiedzią na mnóstwo pytań. Jeśli uważasz, że Weka nadaje się do specjalnego zadania przewidywania ocen, biorąc pod uwagę bardzo duże, rzadkie dane, dlaczego nie pokazujesz przykładu (lub linku do przykładu). Bez obrazy, przyjmij to jako przyjazną sugestię.
steffen