Mô hình phân loại để dự đoán xếp hạng phim


11

Tôi hơi mới đối với việc khai thác dữ liệu và tôi đang nghiên cứu một mô hình phân loại để dự đoán xếp hạng phim.

Tôi đã thu thập các tập dữ liệu từ IMDB và tôi đang dự định sử dụng cây quyết định và các phương pháp tiếp cận hàng xóm gần nhất cho mô hình của mình. Tôi muốn biết công cụ khai thác dữ liệu có sẵn miễn phí nào có thể cung cấp chức năng mà tôi yêu cầu.

Câu trả lời:


5

Thì

có rất nhiều công cụ và lib với chức năng có sẵn.

Lựa chọn nào tùy thuộc vào việc bạn muốn sử dụng gui cho công việc của mình hay bạn muốn nhúng nó vào một số chương trình khác.

Các công cụ khai thác dữ liệu độc lập (có các ohters như WEKA với giao diện Java):

  • Công cụ khai thác nhanh
  • trái cam
  • Rô gui cho R
  • KIẾM

Văn bản dựa trên:

  • GNU R

Thiên Bình:

  • Scikit cho Python
  • Mahout trên Hadoop

Nếu bạn biết một ngôn ngữ lập trình đủ tốt, tôi sẽ sử dụng lib cho ngôn ngữ đó hoặc thử R. Nếu không bạn có thể thử một trong những công cụ với gui.

Một ví dụ về cây trong 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)

Như đã đề xuất, việc phân tích với R yêu cầu bạn tự viết mã, nhưng bạn sẽ tìm thấy một gói cho hầu hết các nhiệm vụ phân loại sẽ hoạt động tốt. Tổng quan có thể được tìm thấy ở đây Machine Learning Task View

Để bắt đầu với RapidMinder, bạn nên xem qua Youtube. Có một số screencasts, ngay cả đối với cây quyết định.


1
Tôi muốn downvote, nhưng bạn là người mới, vì vậy: Bạn chỉ cần liệt kê một bộ công cụ (một câu trả lời khá chung chung) mà không cần giải thích lý do tại sao nó phù hợp với nhiệm vụ cụ thể của OP. Tôi đề nghị cung cấp thêm chi tiết, nếu không câu trả lời của bạn có thể được thay thế bằng stats.stackexchange.com/questions 2007 / Fiêu . Không xúc phạm, xin vui lòng coi đó là một lời khuyên thân thiện :)
steffen

@steffen: trân trọng, nhận được 4 lượt upvote và 0 lượt tải của audijenz nói khác. Tôi tin rằng anh ấy / anh ấy đã trả lời câu hỏi độc đáo. Nó hỏi "công cụ khai thác dữ liệu có sẵn miễn phí nào có thể cung cấp các chức năng mà tôi yêu cầu", và câu trả lời đã cho điều đó và hơn thế nữa. Thực tế, nhiều hơn bất kỳ câu trả lời nào trong chuỗi bạn đã liên kết.
rolando2

1
@ rolando2 Tôi đã thêm nhận xét TRƯỚC KHI audijenz đã chỉnh sửa nó và tôi đã đưa ra câu trả lời đã chỉnh sửa;).
steffen

@steffen: Tôi đứng sửa!
rolando2

5

Weka là một bộ công cụ học máy miễn phí và mã nguồn mở. Họ có GUI cũng như API để gọi từ mã Java của bạn nếu bạn muốn.

Chúng có nhiều thuật toán phân loại bao gồm một số thuật toán cây quyết định. Đây là có sẵn trong giao diện người dùng. Hàng xóm gần nhất khó khăn hơn một chút và có vẻ như bạn phải sử dụng API trực tiếp .

Tôi nghĩ Rapid Miner có thể hỗ trợ loại điều này, nhưng tôi chưa từng sử dụng nó cho các mục đích như vậy trước đây.

Bạn cũng có thể xem xét R , nhưng điều đó có thể đòi hỏi đôi tay của bạn bẩn hơn một chút.

Lưu ý rằng Netflix đã thực hiện rất nhiều công việc trong phân loại xếp hạng phim. Vài năm trước họ đã trao giải thưởng trị giá 1 triệu đô la cho nhóm có thể cải thiện khả năng phân loại của họ nhiều nhất. Bạn có thể thích đọc cách các đội khác nhau tiếp cận vấn đề đó.


Cảm ơn Michael, tôi đã thử Weka cho các thuật toán cây quyết định, nhưng tôi thấy rằng các giá trị số không được hỗ trợ cho hầu hết các thuật toán cây quyết định. Trong các tập dữ liệu của tôi, tôi có các giá trị số như xếp hạng (nhãn lớp), ngân sách, id giám đốc, id diễn viên, v.v ... Làm thế nào tôi có thể xử lý các giá trị số đó? (Tôi không chắc có nên mở một chủ đề mới cho câu hỏi của mình không). Bạn có bất cứ đề nghị về bất kỳ thuật toán phù hợp khác?
K Hein

2
@K Hein 1) Tôi đề nghị sử dụng Rừng ngẫu nhiên (RF) thay vì DT. Xem ví dụ: stats.stackexchange.com/questions/10001/ . 2) biến số: RF có thể xử lý cả nhãn số và nhãn rời rạc, bạn nên thử cả hai cách tiếp cận; director_id, Act_id không phải là một tính năng số, nó là một boolean (diễn viên tham gia?) hoặc một danh nghĩa (diễn viên chính); ngân sách có thể được rời rạc hoặc để RF xử lý chúng. Trong trường hợp này, thuật toán tìm kiếm điểm phân chia tối ưu. Tôi đề nghị chơi xung quanh và quay lại sau với những câu hỏi cụ thể hơn;).
steffen

@steffen Cảm ơn Steffen! Tôi sẽ thử với RF, nhưng tôi vẫn có một vài câu hỏi liên quan đến nhận xét của bạn. Giả sử nếu tôi muốn lấy diễn viên_id làm boolean, thì với mỗi diễn viên duy nhất, tôi có một thuộc tính boolean như isActor1Particated (nói cho Act_id = 1)? Nếu tôi muốn thay đổi Act_id thành thuộc tính danh nghĩa, tôi nên tiến hành như thế nào? Tôi sẽ rất biết ơn nếu bạn có thể cung cấp một số mô tả vì tôi thực sự mới đối với khu vực khai thác dữ liệu.
K Hein

1
@KHein ý tưởng của tôi đằng sau gợi ý danh nghĩa là hạn chế các tác nhân đến những người quan trọng nhất bằng cách tạo các tính năng như First_actor, second_actor, v.v ... Dù sao: Làm thế nào để xử lý thông tin có độ dài thay đổi (diễn viên, đạo diễn, từ khóa, v.v.) là một chủ đề cho một câu hỏi riêng biệt
steffen

@KHein Khi bạn đặt câu hỏi "Cách xử lý thông tin có độ dài thay đổi", vui lòng liên kết với nó tại đây :-)
Darren Cook

1

Có thể là ... WEKA? http://www.cs.waikato.ac.nz/ml/weka/


1
(-1): Mặc dù Weka thực sự là một Công cụ khai thác dữ liệu thực sự chứa triển khai NN và DT, nhưng câu trả lời rất chung chung nên có thể trả lời rất nhiều câu hỏi. Nếu bạn nghĩ rằng Weka phù hợp với nhiệm vụ đặc biệt là dự đoán xếp hạng được cung cấp dữ liệu thưa thớt cực kỳ cao cấp, tại sao bạn không hiển thị một ví dụ (hoặc liên kết đến một ví dụ). Không xúc phạm, xin vui lòng coi đó là một đề nghị thân thiện.
steffen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.