Bước đầu tiên cho dữ liệu lớn ( , )


21

Giả sử bạn đang phân tích một bộ dữ liệu khổng lồ theo giai điệu của hàng tỷ quan sát mỗi ngày, trong đó mỗi quan sát có một vài nghìn biến số và danh mục có thể dư thừa và có thể dư thừa. Giả sử có một vấn đề hồi quy, một vấn đề phân loại nhị phân không cân bằng và một nhiệm vụ "tìm ra yếu tố dự đoán nào là quan trọng nhất". Suy nghĩ của tôi về cách tiếp cận vấn đề là:

Điều chỉnh một số mô hình dự đoán trên các mẫu con lớn hơn và lớn hơn (ngẫu nhiên) của dữ liệu cho đến khi:

  1. Việc lắp và xác thực chéo mô hình trở nên khó tính toán (ví dụ: chậm một cách vô lý trên máy tính xách tay của tôi, R hết bộ nhớ, v.v.), HOẶC

  2. RMSE đào tạo và kiểm tra hoặc các giá trị chính xác / thu hồi ổn định.

Nếu các lỗi đào tạo và kiểm tra không ổn định (1.), hãy sử dụng một mô hình đơn giản hơn và / hoặc thực hiện các phiên bản đa lõi hoặc đa mã của mô hình và khởi động lại từ đầu.

Nếu lỗi đào tạo và kiểm tra ổn định (2.):

  • Nếu (nghĩa là tôi vẫn có thể chạy các thuật toán trên vì nó chưa quá lớn), hãy thử cải thiện hiệu suất bằng cách mở rộng không gian tính năng hoặc sử dụng mô hình phức tạp hơn và khởi động lại từ đầu.X s u b s e tNSbạnbSet«NXSbạnbSet

  • Nếu là 'lớn' và việc chạy các phân tích tiếp theo là tốn kém, hãy phân tích tầm quan trọng và kết thúc của biến.NSbạnbSet

Tôi dự định sẽ sử dụng các gói như biglm, speedglm, multicore, và fftrong R ban đầu, và sau đó sử dụng các thuật toán phức tạp hơn và / hoặc multinode (trên EC2) khi cần thiết.

Điều này nghe có vẻ là một cách tiếp cận hợp lý, và nếu vậy, bạn có lời khuyên hay đề nghị cụ thể nào không? Nếu không, bạn sẽ thử cái gì thay cho tập dữ liệu có kích thước này?


1
Nghe có vẻ như một cách tiếp cận hợp lý. Tôi đã tìm thấy một cuộc nói chuyện về một cách tiếp cận tương tự: youtube.com/watch?v=X9YVSDWQokQ .
alfa

2
jmlr.csail.mit.edu/proceedings/auge/v7/miller09/miller09.pdf Điều này có thể hữu ích. Thêm chi tiết về các toán học ở đây: ms.unimelb.edu.au/~millerh/ con / gencor_JCGS.pdf
dcl

@dcl: Cảm ơn - ý tưởng là một phương pháp lựa chọn biến phi tuyến tốt, rẻ tiền, tính toán sẽ song song tốt (mặc dù nó là đơn biến). Tôi có thể thử nó vì nó nhanh và rất đơn giản để viết mã. Ban đầu tôi đã nghĩ đến việc sử dụng thuật toán rất hay này: code.google.com/p/rf-ace .
khóa

@alfa: Tôi thực sự thích ý tưởng này! Sử dụng thử nghiệm tuần tự trên các tập hợp con lớn hơn và lớn hơn của dữ liệu để loại bỏ tuần tự các tham số meta có hiệu suất kém nhất. Điều này nên mọi thứ lên đáng kể. Cảm ơn! ps đây là một phiên bản giấy của buổi nói chuyện: biglearn.org/files/papers/biglearn2011_submission_2.pdf
lockedoff

Câu trả lời:


2

Bạn nên kiểm tra các phương pháp trực tuyến để hồi quy và phân loại cho các bộ dữ liệu có kích thước này. Các phương pháp này sẽ cho phép bạn sử dụng toàn bộ dữ liệu mà không cần phải tải nó vào bộ nhớ.

Bạn cũng có thể kiểm tra Vowpal Wợi (VW):

https://github.com/JohnLangford/vowpal_wợi / wiki

Nó sử dụng một phương pháp trực tuyến cốt lõi, do đó nó có thể xử lý một tập dữ liệu có kích thước này. Bạn có thể thực hiện hồi quy và phân loại và nó có hỗ trợ cho các định dạng thưa thớt. Bạn cũng có thể thực hiện các phiên bản bị phạt (ví dụ: hồi quy / phân loại kiểu lasso) trong VW, điều này có thể cải thiện độ chính xác của mô hình của bạn.


2

Tôi sẽ đề nghị sử dụng Hadoop và RMR (một gói cụ thể cho Map Giảm trong R). Với chiến lược này, bạn có thể chạy các bộ dữ liệu lớn trên các máy tính hài hước với cấu hình hợp lý (có thể trong hai giờ bạn sẽ cài đặt cả Hadoop và RMR (RHadoop).

Trong thực tế, nếu bạn có nhiều máy tính, bạn có thể tạo một cụm, giảm thời gian xử lý.

Tôi cung cấp cho bạn một số liên kết hỗ trợ đề xuất của tôi:

  • Đây liên kết sẽ dẫn bạn đến một hướng dẫn để cài đặt Hadoop trên một cụm single-nút (một máy tính).
  • Đây liên kết và điều này liên kết sẽ cho bạn thấy làm thế nào để cài đặt RMR trên cụm Hadoop của bạn.
  • Và cuối cùng, ở đây bạn có thể tìm thấy một ví dụ về hồi quy logistic bằng phương pháp của RHadoop.

Vì vậy, lời khuyên của tôi là hãy làm theo các hướng dẫn này vì nó chắc chắn xứng đáng nếu dữ liệu của bạn rất lớn.


0

Đây là một nhận xét nhiều hơn là một câu trả lời, nhưng tôi không thể đăng nó dưới dạng một nhận xét (yêu cầu 50 đại diện) ..

Bạn đã thử sử dụng PCA trên tập dữ liệu của mình chưa? Nó có thể giúp bạn giảm không gian biến và tìm hướng khả dĩ mà biến loại trừ khỏi mô hình hồi quy của bạn. Làm như vậy, mô hình sẽ dễ dàng hơn để tính toán. Ở đây bạn có thể tìm thấy một cuộc thảo luận thú vị về việc sử dụng PCA với các biến phân loại: Phân tích thành phần chính có thể được áp dụng cho các bộ dữ liệu có chứa hỗn hợp các biến liên tục và phân loại không?

Ngoài ra, tôi tưởng tượng bạn đang sử dụng R vì nhiều lý do (tôi cũng sử dụng R), nhưng có thể sử dụng một phần mềm như SAS hoặc STATA có thể dễ dàng hơn. Chúng hoạt động tốt hơn với dữ liệu lớn và bạn không phải đối phó với tính toán đa lõi và song song.

Cuối cùng, hãy thử nghĩ xem có hợp lý không khi sử dụng càng nhiều hàng càng tốt từ tập dữ liệu của bạn. Đây là một tập dữ liệu dân số, một tập dữ liệu gần như dân số hoặc một tập dữ liệu được lấy mẫu? Bạn có thể có được kết quả tốt hơn với một mẫu tốt trên tập dữ liệu của bạn hơn là sử dụng toàn bộ dữ liệu. Hãy xem bài đăng này: Lấy mẫu có liên quan trong thời gian 'dữ liệu lớn' không?

Hi vọng điêu nay co ich

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.