Nghiên cứu thuật toán học máy: độ sâu của sự hiểu biết so với số lượng thuật toán


13

Gần đây, tôi được giới thiệu về lĩnh vực Khoa học dữ liệu (đã gần 6 tháng) và Ii bắt đầu hành trình với Khóa học máy học của Andrew Ng và bài đăng bắt đầu làm việc về Chuyên ngành khoa học dữ liệu của JHU.

Về mặt ứng dụng thực tế, tôi đã nghiên cứu xây dựng một mô hình dự đoán có thể dự đoán sự tiêu hao. Cho đến nay tôi đã sử dụng glm, bayesglm, rf trong nỗ lực tìm hiểu và áp dụng các phương pháp này, nhưng tôi tìm thấy rất nhiều khoảng cách trong sự hiểu biết của tôi về các thuật toán này.

Vấn đề nan giải cơ bản của tôi là:

Liệu tôi có nên tập trung nhiều hơn vào việc tìm hiểu sự phức tạp của một vài thuật toán hay tôi nên sử dụng phương pháp tiếp cận để biết nhiều trong số chúng khi nào và khi nào và nhiều như yêu cầu?

Vui lòng hướng dẫn tôi đi đúng hướng, có thể bằng cách gợi ý sách hoặc bài viết hoặc bất cứ điều gì bạn nghĩ sẽ giúp ích.

Tôi sẽ biết ơn nếu bạn trả lời với ý tưởng hướng dẫn một người mới bắt đầu sự nghiệp trong lĩnh vực Khoa học dữ liệu và muốn trở thành người giải quyết các vấn đề thực tế cho thế giới kinh doanh.

Tôi sẽ đọc (càng nhiều càng tốt) tài nguyên (sách, bài viết) được đề xuất trong bài đăng này và sẽ cung cấp phản hồi cá nhân về những ưu và nhược điểm tương tự để biến đây thành một bài viết hữu ích cho những người gặp phải một câu hỏi tương tự trong tương lai, và tôi nghĩ sẽ thật tuyệt nếu mọi người gợi ý những cuốn sách này có thể làm như vậy.

Câu trả lời:


9

Tôi khuyên bạn nên giới hạn bản thân trong một vài thuật toán đã thử và đáng tin cậy. Tôi sẽ không đề xuất các yếu tố của học thống kê (như một cuốn sách đầu tiên). Nó quá lý thuyết, nhắm vào sinh viên tốt nghiệp, với các bài tập hỏi cách chứng minh X hoặc Y ... Tôi nghĩ ISL phù hợp hơn, với lời khuyên thực tế hơn (trong mọi trường hợp cả hai cuốn sách đều miễn phí khi tải xuống pdf).

Bên cạnh số liệu thống kê, tôi sẽ đảm bảo bạn cảm thấy thoải mái với các thử nghiệm thiết kế / AB thử nghiệm và với Business Intelligence / Visualization.


Sẽ đánh giá cao nếu bạn có thể đề xuất một số Thuật toán mà người ta không nên BỎ L ON, hoặc tốt hơn là nói là hữu ích nhất để giải quyết các vấn đề kinh doanh thực tế. Nếu có thể, vui lòng đề cập đến những cách tốt nhất để tìm hiểu chúng (sách cụ thể, bài viết tự trợ giúp hoặc có thể là bản dùng thử và lỗi)

2
Tôi sẽ nói khá nhiều tất cả các thuật toán trong ISL: hồi quy tuyến tính, hồi quy logistic, phương pháp dựa trên cây, SVM; Phân cụm và giảm kích thước, ví dụ PCA. Xem qua cuốn sách và xem khóa học trực tuyến tương ứng ( online.stanford.edu/c thuyết / statistic - learning - winter - 2014 - có thể trên youtube?).
seanv507

Tài nguyên tuyệt vời, thật tuyệt khi có một cuốn sách và video giống nhau bởi chính các Tác giả. Cảm ơn rất nhiều về liên kết, đã không nhận thức được điều này.
Vinay Tiwari

Tôi xin lỗi, nhưng đây là lời khuyên khủng khiếp . Một nhà khoa học dữ liệu không bao giờ nên dựa vào một vài thuật toán. Bạn cần dựa vào kỹ năng phân tích và dữ liệu của riêng mình và không có hai vấn đề dữ liệu nào giống nhau. Một số sẽ được giải quyết bằng X, một số khác với Y. Đơn giản là không hợp lý khi hy vọng vũ trụ dữ liệu sẽ ứng xử với một vài thuật toán của bạn. Hãy tò mò, linh hoạt, có kiến ​​thức và sử dụng công cụ phù hợp cho công việc, không chỉ những người bạn tình cờ biết.
I_Play_With_Data

5

Có thể cho rằng ai đó tự gọi mình là nhà khoa học dữ liệu nên biết nhiều hơn về sự phức tạp của thuật toán mà anh ta sử dụng. giải pháp khả năng tối đa sẽ được tìm thấy (có lẽ sau khi họ pha một tách cà phê). Trong mọi trường hợp, việc hiểu các khái niệm chung về thống kê & học máy là quan trọng bên cạnh việc làm quen với các phương pháp bạn sử dụng, lý thuyết đằng sau chúng, các giả định mà chúng đưa ra, kiểm tra chẩn đoán nào bạn nên thực hiện, cách giải thích kết quả. Tránh bị nhại này .

Bạn có thể thích đọc Hastie et al. (2009), Các yếu tố của học thống kê .


Chắc chắn sẽ đọc nó! Thực sự thích dòng cuối cùng ... tôi nghĩ rằng sự thôi thúc và đôi khi áp lực để có được kết quả càng sớm càng tốt dẫn đến các Parody như vậy. Và điều quan trọng không kém để tránh sự đối lập của điều này trong đó người ta đi quá sâu vào việc học đến nỗi nó trở nên vô dụng đối với các vấn đề trong thế giới thực. trong khi phát triển / học hỏi đôi khi điều quan trọng hơn là không biết phải làm gì, cảm ơn rất nhiều vì đã hướng dẫn hy vọng sẽ thấy nhiều hơn những hiểu biết như vậy sẽ khai sáng cho tôi và những người khác trên Hành trình tương tự.

"Điều gì ảnh hưởng đến tốc độ hội tụ của thuật toán chấm điểm Fisher trong GLM" - Tôi đoán bạn đã mất 99% các nhà khoa học dữ liệu ở đây.

@Momo: Chà, "nhà khoa học dữ liệu" là một trong những thuật ngữ không được đánh giá cao mà hầu như không thu được tiền trước khi bắt đầu mất giá.
Scortchi - Phục hồi Monica

2

Chà, tôi sẽ nói rằng việc biết các chi tiết phức tạp của 1 hoặc 2 thuật toán một cách chi tiết (như hoạt động bên trong của các tham số của chúng) chắc chắn tốt hơn so với việc biết cách chạy một loạt chúng.

Tôi đã ở trong khu vực Analytics khoảng 11 năm và là Nhà khoa học dữ liệu trong 2,5 năm và tôi đang nói về kinh nghiệm. Mặt khác, bạn chắc chắn nên biết về những thứ khác ngoài kia (các thuật toán gần đây hơn như học sâu, SVM, XGboost, v.v.) có thể áp dụng nhiều hơn cho vấn đề của bạn.

Tôi nghĩ khóa học của Tiến sĩ Andrew Ng đi sâu vào một vài chi tiết của một số thuật toán và đó là một khởi đầu tốt. Như những người khác đã chỉ ra, http://statweb.stanford.edu/~tibs/ElemStatLearn/ là một cuốn sách hay và nó có video đi kèm.

Đây là ý kiến ​​cá nhân của tôi, các thuật toán mà bạn không nên bỏ qua là: (Biết những điều này một cách chi tiết):

1) Hồi quy đa tuyến tính 2) Hồi quy logistic 3) Các kỹ thuật phổ biến về giảm kích thước như PCA 4) Phân cụm K-nghĩa 5) Hồi quy phi tuyến tính 6) Phương pháp tối ưu hóa: phương pháp tìm kiếm dựa trên độ dốc, lập trình tuyến tính và tối ưu hóa rời rạc 7) Khái niệm và thuật toán trong tính năng kỹ thuật 8) Phương pháp dự báo chuỗi thời gian đơn giản

Các thuật toán bí truyền khác:

1) Rừng ngẫu nhiên 2) SVM 3) học sâu 4) Các phương pháp giảm kích thước khác như LDA 5) Các phương pháp dựa trên nhân khác 6) Thuật toán di truyền 7) XgBoost 8) Hồi quy động 9) Phương pháp GARCH / ARCH 10) Mô hình phương trình cấu trúc 11) Các phương pháp Box Jenkins trong dự báo chuỗi thời gian 12) Lý thuyết thông tin: đạt được thông tin, cùng có lợi, v.v.


0

Tôi đã ở trong một tình huống tương tự. Tôi bắt đầu với từng thuật toán ở đây (và rất chi tiết).

nhập mô tả hình ảnh ở đây

Tuy nhiên, tôi sớm phát hiện ra rằng học thuật về máy móc / học sâu đang phát triển rất nhanh và luôn tìm ra các thuật toán nhanh hơn / hiện đại hơn một bước dài để vượt qua các thuật toán truyền thống trong nhiều ứng dụng trong thế giới thực . Vì vậy, nó luôn luôn được ưu tiên để được cập nhật với các xu hướng mới nhất. Tôi đề nghị (như tôi thường tự làm) lấy một thuê bao của một nguồn cấp tin tức tốt (như Trung bình) hoặc một tạp chí nghiên cứu tiên tiến, tuyệt vời và theo dõi nó. Nhiều lần các thuật toán tuyệt vời đến từ các tài liệu nghiên cứu giải quyết một vấn đề cụ thể (có thể tương tự như của bạn).

Vấn đề là, để trở thành một nhà khoa học dữ liệu giỏi (hoặc một kỹ sư ML), bạn cần có sự kết hợp của cả chiều sâu và chiều rộng. Cá nhân tôi thấy hữu ích khi biết nhiều thuật toán trên bề mặt của họ (đơn giản là những gì họ làm, khi nào họ được sử dụng, ưu và nhược điểm). Tôi trở lại với họ khi tôi cảm thấy ( chỉ cảm thấy ) họ có thể giúp tôi giải quyết một vấn đề cụ thể. Tôi đọc chúng một cách chi tiết và xem chúng có phù hợp không. Họ có thể, hoặc họ có thể không. Nhưng suy nghĩ về các chi tiết là điều cần thiết để đảm bảo bạn không bỏ lỡ một cách tiếp cận tuyệt vời cho vấn đề của mình do thiếu hiểu biết sâu sắc về phương pháp đó. Chẳng hạn, một khi tôi đang làm việc gì đó yêu cầu phát hiện Đối tượng (mặc dù rất đơn giản). Tôi đã đọc ở đâu đó về R-CNN, Fast-CNN, YOLO. Tôi lập tức quay sang họ để xem họ có phù hợp không. Ngày đó tôi biết họ chi tiết hơn.

Liệu tôi có nên tập trung nhiều hơn vào việc tìm hiểu sự phức tạp của một vài thuật toán hay tôi nên sử dụng phương pháp tiếp cận để biết nhiều trong số chúng khi nào và khi nào và nhiều như yêu cầu?

Học những điều phức tạp là tuyệt vời. Tuy nhiên, thế giới di chuyển với một tốc độ nhanh thực sự. Có thể có một thuật toán mới vượt xa người bạn đã học rất chi tiết. Do đó, đã đến lúc loại bỏ việc sử dụng đó và xem liệu cái mới có tốt hơn cho bạn không.

Học những thứ khi cần. Và khi cần, tìm hiểu chúng một cách chi tiết. Bạn sẽ có thể áp dụng mọi thứ nếu bạn cảm thấy chúng có thể hoạt động. Và cái nhìn sâu sắc này đến từ kiến ​​thức.

Chúc may mắ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.