Film derecelendirme tahmini için sınıflandırma modeli


11

Veri madenciliği konusunda biraz yeniyim ve film derecelendirme tahmini için bir sınıflandırma modeli üzerinde çalışıyorum.

IMDB'den veri setleri topladım ve modelim için bir karar ağacı ve en yakın komşu yaklaşımları kullanmayı planlıyorum. Hangi serbestçe kullanılabilir veri madenciliği aracının ihtiyacım olan işlevselliği sağlayabileceğini bilmek istiyorum.

Yanıtlar:


5

Hein,

mevcut işlevselliğe sahip birçok araç ve kitap vardır.

Hangisini seçeceğiniz, çalışmanız için bir gui kullanmak isteyip istemediğinize veya başka bir programa gömmek isteyip istemediğinize bağlıdır.

Bağımsız Veri madenciliği araçları (Java arayüzlü WEKA gibi diğer özellikler vardır):

  • Hızlı Madenci
  • Portakal
  • R için çıngırak gui
  • KNIME

Metin tabanlı:

  • GNU R

libs:

  • Python için Scikit
  • Mhout üzerinde Hadoop

Bir programlama dilini yeterince iyi biliyorsanız, o dil için bir lib kullanacağım veya R'yi deneyeceğim. Değilse, gui ile araçlardan birini deneyebilirsiniz.

R'de bir ağaç örneği:

# 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)

Önerildiği gibi R ile analiz, kendinizi kodlamanızı gerektirir, ancak çoğu sınıflandırma görevi için kutunun dışında çalışacak bir paket bulacaksınız. Genel bakışı burada bulabilirsiniz Makine Öğrenimi Görev Görünümü

RapidMinder'ı kullanmaya başlamak için Youtube'a bir göz atmalısınız. Karar ağaçları için bile bazı ekranlar var.


1
İndirmek istiyorum, ama yenisiniz, bu yüzden: OP'nin özel görevi için neden uygun olduğunu göstermeden bir dizi aracı (oldukça genel bir cevap) listeliyorsunuz. Daha fazla ayrıntı sağlamanızı öneririm, aksi takdirde cevabınızın istatistikleri.stackexchange.com/questions/2007/… ile değiştirilebilir . Hücum yok, lütfen dostça bir tavsiye olarak alın :)
steffen

@steffen: saygıyla, audijenz'in 4 yukarı ve 0 aşağı oyu alması aksini söylüyor. Soruyu güzel cevapladığını düşünüyorum. "Hangi serbestçe kullanılabilir veri madenciliği aracının ihtiyacım olan işlevleri sağlayabileceğini" sordu ve yanıt bunu ve daha fazlasını verdi. Aslında, bağladığınız konudaki cevaplardan çok daha fazlası.
rolando2

1
@ rolando2 audijenz düzenlemeden ÖNCE yorumu ekledim ve düzenlenen cevabı zaten iptal ettim;).
steffen

@steffen: Düzeltilmiş duruyorum!
rolando2

5

Weka , ücretsiz ve açık kaynaklı bir makine öğrenimi araç takımıdır. İsterseniz bir GUI yanı sıra Java kodundan aramak için bir API var.

Birkaç karar ağacı algoritması da dahil olmak üzere birçok sınıflandırma algoritması vardır. Bunlar kullanıcı arayüzünde mevcuttur. En yakın komşular biraz daha zor ve API'yi doğrudan kullanmanız gerekiyor gibi görünüyor .

Rapid Miner'ın muhtemelen bu tür şeyleri desteklediğini düşünüyorum , ancak daha önce bu tür amaçlar için kullanmadım.

R'yi de düşünebilirsiniz , ancak bu ellerinizi biraz daha kirletmeyi gerektirebilir.

Netflix'in film derecelendirme sınıflandırmasında bir ton çalışma yaptığını unutmayın. Birkaç yıl önce , gruba sınıflandırmalarını en iyi şekilde artırabilecek 1 milyon dolarlık bir ödül sundular. Çeşitli ekiplerin bu probleme nasıl yaklaştığını okumak isteyebilirsiniz.


Teşekkürler Michael, karar ağacı algoritmaları için Weka'yı denedim, ancak karar ağacı algoritmalarının çoğunda sayısal değerlerin desteklenmediğini buldum. Veri kümelerimde, derecelendirme (sınıf etiketi), bütçe, yönetmen kimliği, aktör kimliği, vb. Gibi sayısal değerlere sahibim. Peki bu sayısal değerleri nasıl işleyebilirim? (Sorum için yeni bir iş parçacığı açmak gerekir emin değilim). Başka uygun bir algoritma hakkında öneriniz var mı?
K Hein

2
@K Hein 1) DT'ler yerine Rastgele Ormanlar (RF) kullanmanızı öneririm. Örneğin, stats.stackexchange.com/questions/10001/… adresine bakın . 2) sayısal değişkenler: RF hem sayısal hem de ayrık etiketleri işleyebilir, her iki yaklaşımı da denemelisiniz; director_id, actor_id sayısal bir özellik değildir, ya bir boole (aktör katıldı?) ya da nominal (ana aktör); bütçe isteğe bağlı olabilir veya RF'nin bunları ele almasına izin verebilir. Bu durumda algoritma, en uygun ayrılma noktasını arar. Oyun oynamayı ve daha sonra daha spesifik sorularla tekrar gelmenizi öneririm;).
steffen

@steffen Teşekkürler Steffen! RF ile bir deneyeceğim, ancak hala yorumunuzla ilgili birkaç sorum var. Eğer actor_id'i boolean olarak almak istersem, o zaman her benzersiz actor_id için isActor1Particated gibi bir boolean özniteliğim var (actor_id = 1 için diyelim)? Actor_id öğesini nominal özniteliğe değiştirmek istersem, nasıl devam etmeliyim? Veri madenciliği alanında gerçekten yeni olduğum için bazı açıklamalar sunabilirseniz çok minnettar olurum.
K Hein

1
@Kominal önerinin arkasındaki fikrim, first_actor, second_actor vb. Gibi özellikler oluşturarak aktörleri en önemli olanlarla sınırlamaktı. Her neyse: Değişken uzunluktaki bilgilerle (aktörler, yönetmenler, anahtar kelimeler vb.) ayrı bir soru.
steffen

@KHein "Değişken uzunluktaki bilgilerle nasıl başa çıkılır" sorusunu sorduğunuzda, lütfen buraya bağlantı verin :-)
Darren Cook

1

Belki ... WEKA? http://www.cs.waikato.ac.nz/ml/weka/


1
(-1): Weka gerçekten de NN ve DT'nin bir uygulamasını içeren bir Veri Madenciliği Aracı olmasına rağmen, cevap o kadar geneldir ki bir ton soruyu cevaplayabilir. Weka'nın son derece yüksek boyutlu seyrek veriler verilen derecelendirme tahmininin özel görevi için uygun olduğunu düşünüyorsanız, neden bir örnek (veya bir örneğe bağlantı) göstermiyorsunuz. Hiçbir suç, lütfen dostça bir öneri olarak alın.
steffen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.