Có sự đồng thuận nào trong việc lựa chọn cách tiếp cận ML phù hợp không?


8

Hiện tại tôi đang nghiên cứu khoa học dữ liệu và chúng tôi được dạy rất nhiều kỹ thuật phân loại / hồi quy cơ bản (tuyến tính, logistic, cây, spline, ANN, SVM, MARS, v.v.), cùng với nhiều các công cụ bổ sung (bootstrapping, boosting, bagging, đồng phục, sườn núi / lasso, CV, v.v.). Đôi khi các kỹ thuật được đưa ra bối cảnh (ví dụ: phù hợp với các bộ dữ liệu nhỏ / lớn, phù hợp với số lượng dự đoán nhỏ / lớn, v.v.) nhưng đối với hầu hết các phần, có vẻ như đối với bất kỳ vấn đề hồi quy hoặc phân loại nào đều tồn tại một loạt các tùy chọn chóng mặt để lựa chọn.

Nếu tôi bắt đầu một công việc về khoa học dữ liệu ngay bây giờ và gặp vấn đề về mô hình hóa, tôi không nghĩ mình có thể làm tốt hơn là chỉ thử tất cả các kỹ thuật tôi biết với cấu hình cơ bản, đánh giá chúng bằng cách sử dụng xác thực chéo và chọn phương pháp tốt nhất. Nhưng phải có nhiều hơn thế.

Tôi tưởng tượng một nhà khoa học dữ liệu có kinh nghiệm biết rõ danh mục các kỹ thuật và theo một số sơ đồ tinh thần để quyết định nên thử những kỹ thuật nào, thay vì vô thức thử tất cả. Tôi tưởng tượng sơ đồ này là một chức năng của a) số lượng dự đoán; b) các loại biến; c) kiến ​​thức miền về các mối quan hệ có thể (tuyến tính / phi tuyến tính); d) kích thước của tập dữ liệu; e) các ràng buộc xung quanh thời gian tính toán và như vậy.

Có bất kỳ thỏa thuận như vậy, lưu đồ thông thường để làm theo, để lựa chọn các kỹ thuật? Hay nó thực sự sôi sục để "thử nhiều thứ và xem cái gì hoạt động tốt nhất với biện pháp mong muốn, ví dụ như xác nhận chéo"?

Câu trả lời:


4

Nghiên cứu khoa học dữ liệu của tôi bắt đầu như một thạc sĩ về thống kê ứng dụng. Một trong những khóa học là về học máy và nó có cách tiếp cận tương tự với những gì bạn đang mô tả. Vì vậy, tôi có thể đồng cảm một chút với quan điểm hiện tại của bạn. Nhưng, cũng giống như những điều khác bạn có thể đã học được trong cuộc sống, cách bạn làm mọi thứ trong môi trường học thuật và cách bạn làm mọi thứ trong môi trường kinh doanh (ví dụ như đối với khách hàng) là hoàn toàn khác nhau. Đây là những gì tôi đã học được từ những nghiên cứu ban đầu của mình:

1 - Học Python

Chắc chắn, có những công cụ khác ngoài đó và chúng vẫn ổn (tôi đã từng viết mã R với những thứ tốt nhất trong số chúng) nhưng Python là nơi tương lai đang diễn ra. Thêm vào đó, rất ít công cụ có quy mô cũng như Python và điều đó rất quan trọng nếu bạn muốn làm việc trên một số thứ thực sự tuyệt vời.

2 - Tất cả bắt nguồn từ việc thực hiện

Đoán xem cái gì? Tất cả những điều bạn đang học hiện nay (ma trận nhầm lẫn, giảm yếu tố, v.v.) không có ý nghĩa gì với khách hàng của bạn. Họ sẽ chỉ nhìn bạn và nói, "Sản phẩm là gì? Khi nào bạn sẽ triển khai một cái gì đó cho điện thoại của tôi? Ứng dụng web của tôi để nhấp vào đâu?". Một phần lớn công việc của bạn sẽ là biến tất cả công việc của bạn thành một sản phẩm và bạn sẽ thấy mình đang đội một chiếc mũ phát triển phần mềm. Đây cũng là một lý do tốt để học trăn.

3 - Đường ống dữ liệu mất thời gian

RẤT NHIỀU công việc của bạn sẽ là về thao tác dữ liệu và chỉ cần đảm bảo rằng các đường ống dữ liệu bạn cần ở đó. Chắc chắn, bạn có một cơ sở dữ liệu - nhưng bạn sẽ cập nhật nó như thế nào? Những gì bạn cần xử lý trước? Kết quả bạn được lưu trữ ở đâu? Bạn sẽ dành RẤT NHIỀU thời gian để tìm ra thứ này. Bạn sẽ bỏ lỡ những ngày đi học khi bộ dữ liệu được trao cho bạn một cách sạch sẽ và đẹp mắt :)

4 - Mạng lưới thần kinh đá đít

Một khi bạn cắn miếng táo này, thật khó để quay lại :). Tìm hiểu Keras và tận hưởng chuyến đi. Sau một thời gian, bạn sẽ phải tự nhắc nhở mình quyết định cây là gì :)

5 - Tìm kiếm mô hình bây giờ dễ dàng hơn nhiều

Để rõ ràng 100%, phương pháp "tìm kiếm mô hình" mà bạn đang làm bây giờ là RẤT kinh nghiệm quý giá. Bạn chắc chắn nên làm việc chăm chỉ tại các lớp học. Tuy nhiên, nếu bạn có thời gian, hãy xem (1) Robot dữ liệu hoặc (2) Watson Analytics. Cả hai gói đó, về cơ bản, cùng một thứ. Họ sẽ lấy dữ liệu của bạn và tìm cho bạn mô hình tốt nhất cho nó. Tất cả các mục bạn mô tả ở trên được thực hiện cho bạn trong vài giây. Việc họ nhanh như thế nào và họ rất hiệu quả trong việc giúp bạn giảm bớt công việc. Tuy nhiên, được cảnh báo rằng các gói này chỉ hỗ trợ dữ liệu được giám sát. Bạn vẫn sẽ phải làm theo cách cũ đối với dữ liệu không được giám sát (hoặc gắn nhãn một số và sử dụng mạng thần kinh).

6 - Tôi vẫn sử dụng lý thuyết đằng sau các mô hình khác

Ngay cả khi tôi sử dụng mạng thần kinh rất nhiều, các mô hình khác vẫn hữu ích. Bạn vẫn sẽ sử dụng hồi quy tuyến tính hoặc cây quyết định cho các vấn đề cơ bản. Nó cũng hữu ích khi tôi quyết định đọc một số tài liệu nghiên cứu về archivx hoặc bất cứ điều gì. Vì vậy, tôi vẫn sẽ sử dụng chúng cho nghiên cứu và hiểu biết của riêng tôi, nhưng đó là về nó.

Chúc vui vẻ!


1
Cảm ơn! Robot dữ liệu trông khá tuyệt vời nhưng giá cả không có sẵn trực tuyến .... nó có đắt không? Có các lựa chọn thay thế nguồn mở cho khoa học dữ liệu tự động?
Đồi Brendan

@BrendanHill Không, không có lựa chọn thay thế nguồn mở nào mà tôi biết. Thị trường không đủ "trưởng thành" cho điều đó. Nhưng, một lần nữa, tôi khuyên bạn không nên sử dụng các công cụ này như một cái nạng, bạn vẫn cần phải biết lý thuyết. Trong nhiều trường hợp, bạn sử dụng Data Robot chỉ để thu hẹp trường, nhưng bạn vẫn phải biết cách xây dựng mô hình bên ngoài công cụ đó. Nhưng điêu tôt đẹp nhât se đên vơi bạn!
I_Play_With_Data

4

Vâng, hãy nói theo cách này. Mặc dù có rất nhiều phương pháp học tập, mỗi phương pháp đều hữu ích cho một tình huống cụ thể. Có thể là đối với một vấn đề bạn có nhiều sự lựa chọn. Mỗi phương pháp học tập đều có một miền ứng dụng đặc biệt và đó là lý do tại sao mọi người thường biết sử dụng cây quyết định ở đâu và chọn mạng thần kinh, ví dụ trong trường hợp tất cả các đầu vào của bạn là số có giá trị thực, cố gắng sử dụng cây quyết định không phải là một lựa chọn khôn ngoan. Tôi cố gắng giải thích những điều chính mà một học viên ML thường xem xét.

Số lượng tính năng có sẵn

Số lượng tính năng rất quan trọng do không thể hình dung chúng dễ dàng trong trường hợp có quá nhiều tính năng. Điều này có thể dẫn đến việc không thể nhận ra liệu dữ liệu có thể phân tách tuyến tính hay không. Vì vậy, nhiều tính năng không ngụ ý rằng tập dữ liệu không thể phân tách tuyến tính. Do đó, giả sử bạn muốn sử dụng mạng lưới thần kinh để mô hình hóa vấn đề. Bạn không nên bắt đầu với một mạng lưới phức tạp với rất nhiều lớp và tế bào thần kinh. Bạn phải bắt đầu với một nơron duy nhất, tương đương với hồi quy logistic cho các nhiệm vụ phân loại, để tìm hiểu xem dữ liệu của bạn có thể phân tách tuyến tính hay không. Nếu bạn quan sát thấy rằng bạn không có hiệu suất tốt, bạn có thể thêm các nơ-ron và lớp bổ sung. Làm sao? Hãy xem Làm thế nào để thiết lập số lượng tế bào thần kinh và các lớp trong mạng lưới thần kinh .

Không gian đặc trưng

Về việc chọn các phương pháp ML, thật đơn giản để xem xét các giới hạn của từng thuật toán đối với không gian tính năng. Ví dụ, cây quyết định không tốt cho các vấn đề với nhiều tính năng mà một số trong số chúng là các tính năng số. Họ có thể trở nên thực sự lớn. SVMskhông tốt cho các vấn đề phi tuyến tính với rất nhiều tính năng do thực tế là bạn phải chỉ định kích thước kernel. Đối với các vùng khác nhau trong không gian tính năng, một kích thước hạt nhân có thể không có giá trị. Để khái quát, các vấn đề có không gian đầu vào rất lớn thường được xử lý bằng cách sử dụng các mạng thần kinh. Nếu vấn đề có quá nhiều tính năng nhưng chúng là các tính năng nhị phân hoặc tính năng phân loại với một số ít lựa chọn, thì vấn đề có không gian tính năng nhỏ hơn, không gian đầu vào và các phương pháp ML khác có thể được xem xét.

Kích thước của bộ dữ liệu

Tùy thuộc vào vấn đề của bạn, loại tính năng và phạm vi tính năng, không gian đầu vào có thể rất nhỏ hoặc rất lớn. Do đó, số lượng dữ liệu có thể có thể khác nhau tùy thuộc vào không gian đầu vào. Đối với không gian đầu vào lớn, như đã đề cập, mạng lưới thần kinh rất mạnh cho ánh xạ.

Phân phối và lỗi Bayes

Đối với các nhiệm vụ khác nhau, ví dụ phân loại, bạn phải phân tích thống kê để biết rõ hơn về tập dữ liệu có sẵn của mình. Bạn phải điều tra nếu có các mẫu đầu vào giống nhau nhưng nhãn của chúng khác nhau. Nếu vậy, tại sao? Đó có phải là lỗi chuyên gia hay không. Không gian tính năng hiện tại không hợp lệ để hiểu vấn đề. Sau khi giải quyết những câu hỏi này, bạn có thể sử dụng lỗi Bayes để điều tra phương pháp tốt nhất sẽ có độ chính xác trên dữ liệu của bạn.

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.