2011-12-24 35 views
6

Tôi hiện đang thử nghiệm với một nhiệm vụ ML liên quan đến đào tạo được giám sát của một mô hình phân loại. Cho đến nay, tôi đã có ~ 5 triệu ví dụ đào tạo và ~ 5 triệu ví dụ về xác thực chéo. Mỗi ví dụ có, tại thời điểm này, 46 tính năng, tuy nhiên tôi có thể muốn tạo thêm 10 tính năng nữa trong tương lai gần, vì vậy bất kỳ giải pháp nào cũng nên để lại một số chỗ để cải thiện.Nhiệm vụ học máy: công cụ nào để sử dụng?

Vấn đề của tôi là như sau: Tôi sử dụng công cụ nào để giải quyết vấn đề này? Tôi muốn sử dụng các khu rừng ngẫu nhiên hoặc SVM, tuy nhiên tôi sợ rằng điều này có thể quá chậm trong trường hợp của tôi. Tôi đã xem xét Mahout, nhưng quay đi vì nó xuất hiện để yêu cầu một số lượng nhất định của cấu hình cùng với rối tung với các dòng lệnh script. Tôi muốn mã trực tiếp chống lại một số (cũng tài liệu!) Thư viện hoặc xác định mô hình của tôi với một GUI.

Tôi cũng nên chỉ định rằng tôi đang tìm kiếm thứ gì đó sẽ chạy trên Windows (không có thứ như Cygwin) và các giải pháp phù hợp với .NET được đánh giá cao.

Bạn có thể tưởng tượng rằng, khi thời gian sẽ, đến, mã sẽ được chạy trên một Cluster Compute Eight Extra Large Instance trên Amazon EC2, vì vậy bất cứ điều gì mà làm cho sử dụng rộng rãi của RAM và CPU đa lõi được chào đón.

Cuối cùng nhưng không kém, tôi sẽ xác định rằng dữ liệu của tôi là dày đặc (trong đó không có giá trị còn thiếu/tất cả các cột có giá trị cho mỗi vector)

+1

Có vô số công cụ có sẵn (để bắt đầu, hãy xem danh sách phần mềm tại KDnuggets: http://www.kdnuggets.com/software/index.html). Mặc dù mô tả sự cố của bạn loại bỏ một số trong số chúng, vẫn còn một số còn lại có thể đủ. Tôi không chắc chắn, chính xác, bạn có nghĩa là "chơi tốt với .NET", nhưng bất kỳ công cụ đáng giá nào cũng phải cung cấp báo cáo hoặc mã nguồn của mô hình có thể dễ dàng được dịch sang mã .NET. – Predictor

+0

Cảm ơn bạn đã liên kết, hãy kiểm tra ngay khi tôi viết bài này. Đối với chơi tốt với NET nó có nghĩa là một cái gì đó mà có một giao diện lập trình để bắt đầu công việc hoặc thậm chí là một thư viện. NET (hoặc có thể sử dụng wrapper) là thích hợp hơn với cái gì đó không phải là. – em70

Trả lời

2

tôi sẽ khuyên bạn nên nhìn vào ngẫu nhiên gradient descent cho quy mô này vấn đề. Một công cụ tốt để xem là VowpalWabbit. Ở kích thước đó, bạn có thể chạy thử nghiệm của mình trên máy tính để bàn với thông số kỹ thuật hợp lý. Nhược điểm duy nhất cho bạn, tôi nghĩ rằng nó không phải là Windows trung tâm, nhưng mặc dù tôi đã không kiểm tra nó nên chạy trên Cygwin.

EDIT: Đã có sự quan tâm lớn từ các nhà phát triển để có được VowpalWabbit chạy trên Windows. Tính đến tháng 3 năm 2013 VowpalWabbit (phiên bản 7.2) chạy trên Windows ra khỏi hộp. Có một vài tính năng nâng cao/tùy chọn chưa được triển khai trên Windows, một trong số đó đang chạy VowpalWabbit như một daemon, nhưng có vẻ như nó sẽ được xử lý trong tương lai ngắn hạn.

+1

Tại sao công cụ cụ thể này? Có hàng chục ứng cử viên: Điều gì làm cho người này vượt lên trên phần còn lại? – Predictor

+1

@Predictor, đó là một trong những tôi đã sử dụng, một trong những tôi có kinh nghiệm với và một trong những tôi đã nhận được kết quả tốt với. Ngoài ra, cá nhân, tôi là người đầu tiên đề cập đến công cụ kỹ thuật anh ta cần (stochastic gradient descent). Ngoài ra, người đầu tiên đề cập đến rằng anh ta có thể xử lý quy mô đó trên máy tính xách tay của mình và không yêu cầu cụm EC2. – carlosdc

+0

Tôi thấy câu trả lời này là ~ 1,5 tuổi. vowpal wabbit đã được chuyển đến các cửa sổ và phiên bản 7.x không được xây dựng tốt trên Windows. – arielf

3

Tôi thường chạy các bộ dữ liệu tính/hàng tương tự trong R trên EC2 (loại 16 lõi/60 Gb mà bạn đang đề cập đặc biệt hữu ích trong trường hợp bạn đang sử dụng phương pháp có thể tận dụng nhiều cpus chẳng hạn như gói caret.) Như bạn đã đề cập, không phải tất cả các phương pháp học (như SVM) sẽ hoạt động tốt trên tập dữ liệu đó.

Bạn có thể muốn xem xét sử dụng mẫu 10% hoặc hơn để tạo mẫu chuẩn/hiệu suất nhanh trước khi chuyển sang chạy trên toàn bộ tập dữ liệu.

Nếu bạn muốn hiệu suất cực cao thì Vowpal Wabbit phù hợp hơn (nhưng nó chỉ hỗ trợ người học tuyến tính tổng quát nên không có gbm hoặc Random Forest.) Bên cạnh đó, VW không thân thiện với windows.

Các vấn đề liên quan