Model klasifikasi untuk prediksi peringkat film

11

Saya agak baru dalam penambangan data, dan saya sedang mengerjakan model klasifikasi untuk prediksi peringkat film.

Saya telah mengumpulkan set data dari IMDB, dan saya berencana untuk menggunakan pohon keputusan dan pendekatan tetangga terdekat untuk model saya. Saya ingin tahu alat penambangan data mana yang tersedia secara bebas yang dapat menyediakan fungsi yang saya butuhkan.

K Hein
sumber

Jawaban:

5

Hein,

ada banyak alat dan lib dengan fungsi yang tersedia.

Yang akan dipilih tergantung apakah Anda ingin menggunakan gui untuk pekerjaan Anda atau jika Anda ingin menanamkannya di beberapa program lain.

Alat penambangan data mandiri (ada ohters seperti WEKA dengan antarmuka Java):

  • Penambang cepat
  • jeruk
  • Rattle gui untuk R
  • KNIME

Berbasis teks:

  • GNU R

Libs:

  • Scikit untuk Python
  • Mahout di Hadoop

Jika Anda tahu bahasa pemrograman dengan cukup baik, saya akan menggunakan lib untuk bahasa itu atau mencoba R. Jika tidak, Anda dapat mencoba salah satu alat dengan gui.

Contoh pohon dalam 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)

Seperti yang disarankan analisis dengan R mengharuskan Anda untuk membuat kode sendiri, tetapi Anda akan menemukan paket untuk sebagian besar tugas klasifikasi yang akan bekerja di luar kotak. Gambaran umum dapat ditemukan di sini Tampilan Tugas Pembelajaran Mesin

Untuk memulai dengan RapidMinder, Anda harus melihat di Youtube. Ada beberapa screencast, bahkan untuk pohon keputusan.

audijenz
sumber
1
Saya ingin downvote, tetapi Anda baru, jadi: Anda cukup mendaftar satu set alat (jawaban yang agak umum) tanpa demonstrasi mengapa itu cocok untuk tugas spesifik OP. Saya sarankan untuk memberikan perincian lebih lanjut, jika tidak jawaban Anda dapat digantikan oleh stats.stackexchange.com/questions/2007/… . Jangan tersinggung, silakan anggap sebagai saran yang ramah :)
steffen
@steffen: dengan hormat, tanda terima audijenz untuk 4 upvotes dan 0 downvotes mengatakan sebaliknya. Saya percaya dia telah menjawab pertanyaan dengan baik. Ia bertanya "alat penambangan data mana yang tersedia secara bebas yang dapat menyediakan fungsionalitas yang saya butuhkan," dan jawabannya memberikan itu dan banyak lagi. Sebenarnya, jauh lebih banyak daripada jawaban apa pun di utas yang Anda tautkan.
rolando2
1
@ rolando2 Saya menambahkan komentar SEBELUM audijenz mengeditnya dan saya sudah memutakhirkan jawaban yang diedit;).
steffen
@steffen: Saya berdiri terkoreksi!
rolando2
5

Weka adalah perangkat pembelajaran mesin gratis dan open source. Mereka memiliki GUI serta API untuk melakukan panggilan dari kode Java Anda jika Anda mau.

Mereka memiliki banyak algoritma klasifikasi termasuk beberapa algoritma pohon keputusan. Ini tersedia di UI. Tetangga terdekat sedikit lebih rumit dan sepertinya Anda harus menggunakan API secara langsung .

Saya pikir Rapid Miner mungkin mendukung hal semacam ini, tetapi saya belum pernah menggunakannya untuk tujuan seperti itu sebelumnya.

Anda mungkin juga mempertimbangkan R , tetapi itu mungkin mengharuskan tangan Anda sedikit lebih kotor.

Perhatikan bahwa Netflix telah melakukan banyak pekerjaan dalam klasifikasi peringkat film. Beberapa tahun yang lalu mereka menawarkan hadiah $ 1 juta kepada grup yang dapat meningkatkan klasifikasi mereka. Anda mungkin tertarik membaca bagaimana berbagai tim mendekati masalah itu.

Michael McGowan
sumber
Terima kasih Michael, saya sudah mencoba Weka untuk algoritma pohon keputusan, tetapi saya menemukan bahwa nilai numerik tidak didukung untuk sebagian besar algoritma pohon keputusan. Dalam set data saya, saya memiliki nilai numerik seperti peringkat (label kelas), anggaran, id direktur, id aktor, dll. Jadi bagaimana saya bisa menangani nilai-nilai numerik itu? (Saya tidak yakin apakah saya harus membuka utas baru untuk pertanyaan saya). Apakah Anda punya saran tentang algoritma lain yang cocok?
K Hein
2
@ K Hein 1) Saya menyarankan untuk menggunakan Random Forests (RF) daripada DTs. Lihat misalnya stats.stackexchange.com/questions/10001/… . 2) variabel numerik: RF dapat menangani label numerik dan diskrit, Anda harus mencoba kedua pendekatan; director_id, actor_id bukan fitur numerik, ini bisa berupa boolean (aktor berpartisipasi?) atau nominal (aktor utama); anggaran dapat didiskritisasi atau membiarkan RF menanganinya. Dalam hal ini algoritma mencari titik perpecahan yang optimal. Saya sarankan untuk bermain-main dan kembali lagi nanti dengan pertanyaan yang lebih spesifik;).
steffen
@steffen Terima kasih Steffen! Saya akan coba dengan RF, tapi saya masih punya beberapa pertanyaan tentang komentar Anda. Katakanlah jika saya ingin mengambil actor_id sebagai boolean, maka untuk setiap actor_id yang unik, saya memiliki atribut boolean seperti isActor1Particated (say for actor_id = 1)? Jika saya ingin mengubah actor_id ke atribut nominal, bagaimana saya harus melanjutkannya? Saya akan sangat berterima kasih jika Anda dapat memberikan beberapa deskripsi karena saya benar-benar baru di area penambangan data.
K Hein
1
@KHein ide saya di balik saran nominal adalah untuk membatasi aktor ke yang paling penting dengan membuat fitur seperti first_actor, second_actor dll. Bagaimanapun: Bagaimana menangani informasi dengan panjang variabel (aktor, sutradara, kata kunci dll.) Adalah topik untuk pertanyaan terpisah.
steffen
@KHein Ketika Anda mengajukan pertanyaan "Cara menangani informasi dengan panjang variabel", harap tautkan ke sini :-)
Darren Cook
1

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

Orsino
sumber
1
(-1): Meskipun Weka memang Alat Data Mining yang memang berisi implementasi NN dan DT, jawabannya sangat umum sehingga bisa menjawab banyak pertanyaan. Jika Anda berpikir bahwa Weka cocok untuk tugas khusus prediksi peringkat yang diberikan data jarang berdimensi sangat tinggi, mengapa Anda tidak menunjukkan contoh (atau tautan ke contoh). Jangan tersinggung, silakan anggap sebagai saran ramah.
steffen