Deep Learning vs gradient boosting: Khi nào nên sử dụng cái gì?


30

Tôi có một vấn đề dữ liệu lớn với một tập dữ liệu lớn (ví dụ: 50 triệu hàng và 200 cột). Bộ dữ liệu bao gồm khoảng 100 cột số và 100 cột phân loại và cột phản hồi đại diện cho một vấn đề của lớp nhị phân. Cardinality của mỗi cột phân loại nhỏ hơn 50.

Tôi muốn biết một tiên nghiệm liệu tôi nên tìm phương pháp học sâu hay tập hợp các phương pháp dựa trên cây (ví dụ: tăng cường độ dốc, adaboost hoặc rừng ngẫu nhiên). Có một số phân tích dữ liệu thăm dò hoặc một số kỹ thuật khác có thể giúp tôi quyết định phương pháp này hơn phương pháp kia không?


2
Tôi nghĩ trừ khi bạn có một số trực giác tốt về các thuộc tính dữ liệu, cuối cùng bạn sẽ khám phá cả hai tùy chọn (có lẽ chỉ trên 500.000 hàng) và xác thực chéo. Nhưng có lẽ có những hình ảnh trực quan hoặc các phân tích khác có thể giúp bạn có được trực giác đó.
Neil Slater

1
Tôi thực sự đã lên kế hoạch thực hiện một so sánh mô hình lớn cho nghiên cứu của riêng tôi về dữ liệu thực trong tuần này. Tôi sẽ làm sạch kết quả một chút và gửi chúng ở đây. Ngoài ra, ít nhất một sinh viên CS đã nghiên cứu câu hỏi: academia.edu35326056/iêu
iêu

1
@NeilSlater Id muốn xem câu trả lời giải quyết trực giác đó có thể / có thể / nên là gì
Shadowtalker

1
Tôi vẫn không đủ danh tiếng để đưa ra một nhận xét ngắn cho câu hỏi ban đầu của bạn và đây không thực sự là một câu trả lời. Trong mọi trường hợp, tôi muốn nói rằng tôi nghĩ rằng bài viết này khá phù hợp với vấn đề này: Fernández-Delgado, M., Cernadas, E., Barro, S., & Amorim, D. (2014). Chúng ta có cần hàng trăm phân loại để giải quyết các vấn đề phân loại thế giới thực không? Tạp chí Nghiên cứu Máy học, 15, 3133 313181. Lấy từ dl.acm.org/citation.cfm?id=2697065
José María Mateos

Có một số phân tích dữ liệu thăm dò hoặc một số kỹ thuật khác có thể giúp tôi quyết định phương pháp này hơn phương pháp kia không? Trong trường hợp chung là không, 'định lý bữa trưa miễn phí' đã chứng minh điều này. Nhưng có những phương pháp phỏng
Simon

Câu trả lời:


32

Tại sao phải giới hạn bản thân trong hai cách tiếp cận đó? Bởi vì họ mát mẻ? Tôi sẽ luôn bắt đầu với một trình phân loại tuyến tính đơn giản \ regressor. Vì vậy, trong trường hợp này, một SVM tuyến tính hoặc hồi quy logistic, tốt nhất là với việc triển khai thuật toán có thể tận dụng sự thưa thớt do kích thước của dữ liệu. Sẽ mất nhiều thời gian để chạy thuật toán DL trên tập dữ liệu đó và tôi thường chỉ thử tìm hiểu sâu về các vấn đề chuyên môn trong đó có một số cấu trúc phân cấp trong dữ liệu, chẳng hạn như hình ảnh hoặc văn bản. Nó quá mức cho rất nhiều vấn đề học tập đơn giản hơn, và mất rất nhiều thời gian và chuyên môn để học và cả thuật toán DL rất chậm để đào tạo. Ngoài ra, chỉ vì bạn có 50 triệu hàng, không có nghĩa là bạn cần sử dụng toàn bộ tập dữ liệu để có kết quả tốt. Tùy thuộc vào dữ liệu, bạn có thể nhận được kết quả tốt với một vài mẫu 100.000 hàng hoặc vài triệu. Tôi sẽ bắt đầu đơn giản, với một mẫu nhỏ và phân loại tuyến tính, và sẽ phức tạp hơn từ đó nếu kết quả không thỏa đáng. Ít nhất theo cách đó bạn sẽ có được một đường cơ sở. Chúng tôi thường tìm thấy các mô hình tuyến tính đơn giản để thực hiện các mô hình phức tạp hơn trên hầu hết các tác vụ, vì vậy bạn muốn luôn bắt đầu ở đó.


4
+1 để bắt đầu với một mô hình đơn giản và lấy mẫu phụ
Matt

Tôi đồng ý với việc sử dụng svm cho dữ liệu thưa thớt nhưng bạn không nghĩ rằng Svm sẽ mất nhiều thời gian để đào tạo một bộ dữ liệu kích thước khổng lồ như vậy!
blitu12345

Không, đặc biệt là không nếu nó thưa thớt và sử dụng kernel tuyến tính. Nhưng họ có thể có vấn đề với số lượng lớn các hàng. Dù sao đi nữa, nó sẽ là một địa ngục nhanh hơn rất nhiều so với mô hình DL. Nhưng lưu ý rằng tôi cũng đề nghị hồi quy logistic.
Simon

Quan điểm chính của tôi là bắt đầu với một mô hình tuyến tính đơn giản và thậm chí không sử dụng bộ dữ liệu đầy đủ, vì không chắc bạn cần toàn bộ dữ liệu để có hiệu suất tốt. Tôi nghi ngờ có nhiều sự khác biệt về độ chính xác giữa việc sử dụng hàng 100k nói và vài triệu.
Simon

+1 để thử tìm hiểu sâu về các vấn đề chuyên môn trong đó có một số cấu trúc phân cấp trong dữ liệu
eric2323223

4

Ngoài các câu trả lời khác (và có một số liên kết tốt trong các bình luận), nó phụ thuộc vào vấn đề là gì hoặc loại câu hỏi bạn muốn trả lời. Vì tôi chỉ có thể đề xuất dựa trên kinh nghiệm của bản thân, nên trong trường hợp có nhiệm vụ phân loại, các phương thức có thể có thể bị hạn chế nghiêm trọng dựa trên số dư lớp trong tập dữ liệu.

Khi bạn đi đến sự mất cân bằng lớn hơn khoảng 1:10, thì hầu hết các phương pháp phân loại chỉ dừng hoạt động. Bạn sẽ bị bỏ lại với các phương pháp dựa trên rừng ngẫu nhiên và có thể là mạng lưới thần kinh (chưa thử). Tôi làm việc với số dư lớp trong phạm vi từ 1: 500 đến 1: 1000 và nhận thấy rằng cả hai đều không hoạt động. May mắn thay, tập dữ liệu của tôi là "chỉ" 6 triệu quan sát với 200 biến và tôi có thể chạy các cây được tăng cường trên toàn bộ trong thời gian hợp lý.

Vì vậy, để trực tiếp trả lời câu hỏi của bạn:

  • bạn nên đưa ra một loạt các câu hỏi mà bạn muốn trả lời và trong trường hợp phân loại thì hãy kiểm tra số dư lớp của các biến mục tiêu.

  • bạn nên kiểm tra phân phối (không phải theo nghĩa toán học) của các giá trị bị thiếu trong tất cả dữ liệu và tài liệu bạn tìm thấy. Một số phương thức ML vẫn ổn với các giá trị bị thiếu trong khi các phương thức khác thì không và bạn cần xem xét việc loại bỏ dữ liệu (có bộ quy tắc và hướng dẫn và vấn đề riêng).


1
Hãy thử trình phân loại SGD từ sklearn với class_ weight = Giảm cân bằng
Diego

4

Từ quan điểm của tôi, trong 5 triệu trường hợp, bạn cần rất nhiều cây để có được sự khái quát hóa tốt (một mô hình tốt trong thuật ngữ cư sĩ). Nếu đây không phải là một vấn đề thì hãy tìm nó, ngay cả câu trả lời chính xác cũng dựa vào bản chất của vấn đề của bạn. GBT là một phương pháp tốt đặc biệt nếu bạn có các loại tính năng hỗn hợp như phân loại, số và như vậy. Ngoài ra, so với Mạng nơ-ron, nó có số lượng siêu đường kính được điều chỉnh thấp hơn. Do đó, nhanh hơn để có một mô hình thiết lập tốt nhất. Một điều nữa là sự thay thế của đào tạo song song. Bạn có thể đào tạo nhiều cây cùng một lúc với CPU tốt. Nếu bạn không hài lòng với kết quả thì hãy truy cập Neural Nets vì điều đó có nghĩa là mô hình của bạn sẽ mở rộng hơn và nên tìm hiểu thông tin thứ tự cao hơn thông qua dữ liệu của bạn. Đó là do NN so với các thuật toán học tập khác.


4

Về những gì @Simon đã nói:

  1. Phương pháp học tập sâu đã đặc biệt hữu ích trong việc giải quyết các vấn đề về mô hình hóa thị giác, lời nói và ngôn ngữ trong đó kỹ thuật tính năng là khó khăn và tốn nhiều công sức.
  2. Đối với ứng dụng của bạn dường như không phải là trường hợp vì bạn có các tính năng được xác định rõ và chỉ yêu cầu tương tác tính năng, v.v.
  3. Cho rằng các mô hình học sâu hiện đang cần rất nhiều tài nguyên điện toán và thời gian của nhà khoa học trong công cụ mã hóa, tôi khuyên bạn nên chọn cách tiếp cận học không sâu.

Đối với vấn đề của bạn, nỗ lực so với sự đánh đổi lợi ích dường như không có lợi cho việc học sâu. DL sẽ là một quá mức cần thiết


1

Khi bạn có tập dữ liệu lớn như vậy, bạn có thể chơi với bất kỳ kỹ thuật mô hình học thống kê và máy học nào và điều đó rất được khuyến khích. Như những người khác đã đề xuất, tôi cũng khuyên bạn nên lấy một vài triệu mẫu ngẫu nhiên từ dữ liệu và chơi với nó. Vì đây là một vấn đề phân loại, tôi sẽ làm theo các kỹ thuật phân loại đơn giản trước và sau đó tiếp tục với các vấn đề phức tạp hơn sau đó. Hồi quy logistic là tuyệt vời để bắt đầu với.

Tôi muốn thêm rằng các mô hình thế hệ cũng phải được thử. Trình phân loại Naive Bayes là một trong những trình phân loại xác suất đơn giản nhất và nó vượt trội hơn nhiều phương pháp phức tạp như máy vectơ hỗ trợ trong nhiều tác vụ. Bạn có thể xem triển khai đơn giản này của NB và cái này liên kết để so sánh NB với hồi quy logistic.

Người ta có thể xây dựng một trình phân loại Naive bayes (NB) làm mô hình cơ sở và sau đó sử dụng bất kỳ kỹ thuật học máy nào như máy vectơ hỗ trợ (SVM) hoặc tri giác đa lớp (MLP). Một sự đánh đổi ở đây là NB có giá tính toán thấp hơn MLP nên mong muốn có hiệu suất tốt hơn từ MLP.

Đến với truy vấn chính xác của bạn: Học sâu và tăng cường độ dốc cây là những kỹ thuật rất mạnh có thể mô hình hóa bất kỳ loại mối quan hệ nào trong dữ liệu. Nhưng nếu trong trường hợp của bạn, một hồi quy logistic đơn giản hoặc NB sẽ cho độ chính xác mong muốn. Vì vậy, nó luôn luôn tốt hơn để thử các kỹ thuật đơn giản đầu tiên và có một hiệu suất cơ bản. Sau đó, người ta có thể đi cho các mô hình phức tạp và so sánh với đường cơ sở.

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.