Friday, December 28, 2018

Hiểu về vòng đời khoa học dữ liệu như thế nào ?


Khoa học dữ liệu đang nhanh chóng phát triển để trở thành một trong những lĩnh vực nóng nhất trong ngành công nghệ. Với những tiến bộ nhanh chóng trong hiệu suất tính toán hiện đã cho phép phân tích các bộ dữ liệu khổng lồ, chúng ta có thể khám phá các mô hình và hiểu biết về hành vi của người dùng và xu hướng thế giới đến một mức độ chưa từng thấy.
có vô số cách hiểu về vòng đời (và thậm chí cả khoa học dữ liệu là gì), và đây là sự hiểu biết mà tôi đã xây dựng qua việc đọc và trải nghiệm của mình cho đến nay. Khoa học dữ liệu là một lĩnh vực phát triển nhanh chóng và thuật ngữ của nó đang phát triển nhanh chóng với nó.

1. Business Understanding (Hiểu biết về kinh doanh)
Các nhà khoa học dữ liệu trong phòng là những người cứ hỏi tại sao LỚN. Họ là những người muốn đảm bảo rằng mọi quyết định đưa ra trong công ty đều được hỗ trợ bởi dữ liệu cụ thể và nó được đảm bảo (với xác suất cao) để đạt được kết quả. Trước khi bạn thậm chí có thể bắt đầu một dự án khoa học dữ liệu, điều quan trọng là bạn phải hiểu vấn đề bạn đang cố gắng giải quyết.

Theo blog của Microsoft Azure, chúng tôi thường sử dụng khoa học dữ liệu để trả lời năm loại câu hỏi:

  • Bao nhiêu? (regression - hồi quy)
  • Thể loại nào? (classification - phân loại)
  • Nhóm nào? (clustering - phân cụm)
  • Điều này có lạ không? (anomaly detection - phát hiện bất thường)
  • Lựa chọn nào nên được thực hiện? (recommendation - gợi ý giải pháp )

Trong giai đoạn này, bạn cũng nên xác định các mục tiêu trung tâm của dự án bằng cách xác định các biến cần dự đoán. Nếu nó là một hồi quy, nó có thể giống như một dự báo bán hàng. Nếu nó là một cụm, nó có thể là một hồ sơ khách hàng. Hiểu được sức mạnh của dữ liệu và cách bạn có thể sử dụng nó để thu được kết quả cho doanh nghiệp của mình bằng cách đặt câu hỏi đúng là một nghệ thuật hơn là một khoa học, và làm tốt điều này đi kèm với nhiều kinh nghiệm. Một lối tắt để có được trải nghiệm này là đọc những gì người khác nói về chủ đề này, đó là lý do tại sao tôi sẽ gợi ý một loạt sách để bắt đầu.
Get started: Data Science for BusinessEverybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are

2. Data Mining (Khai thác dữ liệu)
Bây giờ bạn đã xác định các mục tiêu của dự án, đã đến lúc bắt đầu thu thập dữ liệu. Khai thác dữ liệu là quá trình thu thập dữ liệu của bạn từ các nguồn khác nhau. Một số người có xu hướng nhóm truy xuất dữ liệu và làm sạch cùng nhau, nhưng mỗi quy trình này là một bước đáng kể đến nỗi tôi đã quyết định tách chúng ra. Ở giai đoạn này, một số câu hỏi đáng để xem xét là - tôi cần dữ liệu gì cho dự án của mình? Nó sống ở đâu? Làm thế nào tôi có thể có được nó? Cách hiệu quả nhất để lưu trữ và truy cập tất cả của nó là gì?

Nếu tất cả dữ liệu cần thiết cho dự án được đóng gói và trao cho bạn, bạn đã trúng xổ số. Thường xuyên hơn không, việc tìm kiếm dữ liệu phù hợp cần cả thời gian và công sức. Nếu dữ liệu nằm trong cơ sở dữ liệu, công việc của bạn tương đối đơn giản - bạn có thể truy vấn dữ liệu có liên quan bằng các truy vấn SQL hoặc thao tác dữ liệu bằng công cụ khung dữ liệu như Pandas. Tuy nhiên, nếu dữ liệu của bạn không thực sự tồn tại trong một tập dữ liệu, bạn sẽ cần phải cạo dữ liệu đó. Beautiful Soup là một thư viện phổ biến được sử dụng để cạo các trang web để lấy dữ liệu. Nếu bạn làm việc với một ứng dụng di động và muốn theo dõi sự tương tác và tương tác của người dùng, có vô số công cụ có thể được tích hợp trong ứng dụng để bạn có thể bắt đầu nhận dữ liệu quý giá từ khách hàng. Ví dụ: Google Analytics cho phép bạn xác định các sự kiện tùy chỉnh trong ứng dụng có thể giúp bạn hiểu cách người dùng của bạn cư xử và thu thập dữ liệu tương ứng.
Get started: MySQLBeautiful SoupGoogle Analytics for Firebase

3. Data Cleaning (Làm sạch dữ liệu)
Bây giờ bạn đã có tất cả dữ liệu của mình, chúng tôi chuyển sang bước tốn nhiều thời gian nhất - làm sạch và chuẩn bị dữ liệu. Điều này đặc biệt đúng trong các dự án dữ liệu lớn, thường liên quan đến terabyte dữ liệu để làm việc. Theo các cuộc phỏng vấn với các nhà khoa học dữ liệu, quá trình này (còn được gọi là j công việc của người gác cổng dữ liệu) thường có thể mất 50 đến 80 phần trăm thời gian của họ. Vì vậy, chính xác những gì nó đòi hỏi, và tại sao nó mất nhiều thời gian?

Lý do tại sao đây là một quá trình tốn thời gian như vậy đơn giản là vì có rất nhiều kịch bản có thể cần phải làm sạch. Chẳng hạn, dữ liệu cũng có thể có sự không nhất quán trong cùng một cột, nghĩa là một số hàng có thể được gắn nhãn 0 hoặc 1 và những hàng khác có thể được gắn nhãn không hoặc có. Các kiểu dữ liệu cũng có thể không nhất quán - một số số 0 có thể là số nguyên, trong khi một số trong số chúng có thể là chuỗi. Nếu chúng tôi xử lý một loại dữ liệu phân loại với nhiều loại, một số loại có thể bị sai chính tả hoặc có các trường hợp khác nhau, chẳng hạn như có các loại cho cả nam và nam. Đây chỉ là một tập hợp con của các ví dụ mà bạn có thể thấy sự không nhất quán và điều quan trọng là phải nắm bắt và sửa chúng trong giai đoạn này.

Một trong những bước thường bị lãng quên trong giai đoạn này, gây ra rất nhiều vấn đề về sau, là sự hiện diện của dữ liệu bị thiếu. Thiếu dữ liệu có thể gây ra rất nhiều lỗi trong quá trình tạo và đào tạo mô hình. Một tùy chọn là bỏ qua các trường hợp có bất kỳ giá trị bị thiếu. Tùy thuộc vào tập dữ liệu của bạn, điều này có thể không thực tế nếu bạn có nhiều dữ liệu bị thiếu. Một cách tiếp cận phổ biến khác là sử dụng một cái gì đó gọi là mức độ trung bình, thay thế các giá trị bị thiếu bằng mức trung bình của tất cả các trường hợp khác. Điều này không phải lúc nào cũng được khuyến nghị bởi vì nó có thể làm giảm tính biến đổi của dữ liệu của bạn, nhưng trong một số trường hợp, nó có ý nghĩa.
Get started: PandasDplyrCleaning Dirty Data

4. Data Exploration (Thăm dò dữ liệu)
Bây giờ bạn đã có một bộ dữ liệu sạch lấp lánh, bạn đã sẵn sàng để bắt đầu phân tích. Giai đoạn khám phá dữ liệu giống như động não của phân tích dữ liệu. Đây là nơi bạn hiểu các mẫu và sai lệch trong dữ liệu của bạn. Nó có thể liên quan đến việc kéo lên và phân tích một tập hợp con dữ liệu ngẫu nhiên bằng cách sử dụng Pandas, vẽ biểu đồ hoặc đường cong phân phối để xem xu hướng chung hoặc thậm chí tạo ra một hình ảnh tương tác cho phép bạn đi sâu vào từng điểm dữ liệu và khám phá câu chuyện đằng sau các ngoại lệ .

Sử dụng tất cả các thông tin này, bạn bắt đầu hình thành các giả thuyết về dữ liệu của bạn và vấn đề bạn đang giải quyết. Nếu bạn dự đoán điểm số của sinh viên chẳng hạn, bạn có thể thử hình dung mối quan hệ giữa điểm số và giấc ngủ. Nếu bạn dự đoán giá bất động sản, có lẽ bạn có thể vẽ giá dưới dạng bản đồ nhiệt trên một lô không gian để xem liệu bạn có thể nắm bắt bất kỳ xu hướng nào không.

Có một bản tóm tắt tuyệt vời về các công cụ và phương pháp tiếp cận trên trang Wikipedia để phân tích dữ liệu khám phá.
Get started: Exploratory Data Analysis

5. Feature Engineering
Trong học máy, một tính năng là một thuộc tính hoặc thuộc tính có thể đo lường được của một hiện tượng đang được quan sát. Nếu chúng ta dự đoán điểm số của một học sinh, một tính năng có thể là số lượng giấc ngủ mà họ có được. Trong các tác vụ dự đoán phức tạp hơn như nhận dạng ký tự, các tính năng có thể là biểu đồ đếm số pixel màu đen.

Theo Andrew Ng, một trong những chuyên gia hàng đầu trong lĩnh vực học máy và học sâu, thì Đến với các tính năng là khó khăn, tốn thời gian, đòi hỏi kiến ​​thức chuyên môn. Học máy ứng dụng, về cơ bản là tính năng kỹ thuật. Kỹ thuật tính năng là quá trình sử dụng kiến ​​thức miền để chuyển đổi dữ liệu thô của bạn thành các tính năng thông tin đại diện cho vấn đề kinh doanh mà bạn đang cố gắng giải quyết. Giai đoạn này sẽ ảnh hưởng trực tiếp đến độ chính xác của mô hình dự đoán mà bạn xây dựng trong giai đoạn tiếp theo.

Chúng tôi thường thực hiện hai loại nhiệm vụ trong kỹ thuật tính năng - lựa chọn tính năng và xây dựng.

Lựa chọn tính năng là quá trình cắt giảm các tính năng gây nhiễu nhiều hơn thông tin. Điều này thường được thực hiện để tránh lời nguyền về chiều, trong đó đề cập đến sự phức tạp gia tăng phát sinh từ các không gian chiều cao (nghĩa là quá nhiều tính năng). Tôi sẽ không đi sâu vào chi tiết ở đây vì chủ đề này có thể khá nặng, nhưng chúng tôi thường sử dụng các phương thức lọc (áp dụng biện pháp thống kê để gán điểm cho từng tính năng), phương pháp trình bao (chọn khung tính năng làm vấn đề tìm kiếm và sử dụng một heuristic để thực hiện tìm kiếm) hoặc các phương thức nhúng (sử dụng máy học để tìm ra các tính năng đóng góp tốt nhất cho độ chính xác).

Xây dựng tính năng liên quan đến việc tạo các tính năng mới từ những tính năng mà bạn đã có (và có thể bỏ qua các tính năng cũ). Một ví dụ về thời điểm bạn có thể muốn làm điều này là khi bạn có một biến liên tục, nhưng kiến ​​thức tên miền của bạn thông báo cho bạn rằng bạn chỉ thực sự cần một biến chỉ báo dựa trên ngưỡng đã biết. Ví dụ: nếu bạn có một tính năng dành cho độ tuổi, nhưng mô hình của bạn chỉ quan tâm đến việc một người là người lớn hay trẻ vị thành niên, bạn có thể ngưỡng nó ở tuổi 18 và gán các danh mục khác nhau cho các trường hợp trên và dưới ngưỡng đó. Bạn cũng có thể hợp nhất nhiều tính năng để làm cho chúng có nhiều thông tin hơn bằng cách lấy tổng, chênh lệch hoặc sản phẩm của chúng. Ví dụ: nếu bạn dự đoán điểm số của sinh viên và có các tính năng cho số giờ ngủ mỗi đêm, bạn có thể muốn tạo một tính năng biểu thị giấc ngủ trung bình mà sinh viên có.

6. Predictive Modeling (Mô hình dự đoán)
Mô hình dự đoán là nơi cuối cùng máy học đi vào dự án khoa học dữ liệu của bạn. Tôi sử dụng thuật ngữ mô hình dự đoán bởi vì tôi nghĩ rằng một dự án tốt không phải là mô hình chỉ đào tạo một mô hình và ám ảnh về độ chính xác, mà còn sử dụng các phương pháp và kiểm tra thống kê toàn diện để đảm bảo rằng kết quả từ mô hình thực sự có ý nghĩa và có ý nghĩa. Dựa trên các câu hỏi bạn đã hỏi trong giai đoạn hiểu biết về kinh doanh, đây là nơi bạn quyết định chọn mô hình nào cho vấn đề của mình. Đây không bao giờ là một quyết định dễ dàng, và không có câu trả lời đúng duy nhất. Mô hình (hoặc mô hình và bạn phải luôn kiểm tra một số) rằng việc bạn kết thúc đào tạo sẽ phụ thuộc vào kích thước, loại và chất lượng dữ liệu của bạn, bao nhiêu thời gian và tài nguyên tính toán mà bạn sẵn sàng đầu tư và loại đầu ra bạn có ý định rút ra. Có một vài bảng cheat khác nhau có sẵn trực tuyến có sơ đồ giúp bạn quyết định thuật toán phù hợp dựa trên loại phân loại hoặc vấn đề hồi quy mà bạn đang cố gắng giải quyết. Hai cái mà tôi thực sự thích là Microsoft Azure Cheat Sheet và SAS Cheat Sheet.

Một khi bạn đã đào tạo mô hình của mình, điều quan trọng là bạn phải đánh giá thành công của nó. Một quy trình gọi là xác nhận chéo k-Fold thường được sử dụng để đo lường độ chính xác của mô hình. Nó liên quan đến việc tách tập dữ liệu thành các nhóm phiên bản có kích thước bằng nhau, đào tạo trên tất cả các nhóm trừ một nhóm và lặp lại quy trình với các nhóm khác nhau bị bỏ lại. Điều này cho phép mô hình được đào tạo trên tất cả các dữ liệu thay vì sử dụng phân tách kiểm tra tàu điển hình.

Đối với các mô hình phân loại, chúng tôi thường kiểm tra độ chính xác bằng PCC (phân loại đúng phần trăm), cùng với ma trận nhầm lẫn, phân tách các lỗi thành dương tính giả và âm tính giả. Các sơ đồ như đường cong ROC, là tỷ lệ dương thực sự được vẽ so với tỷ lệ dương tính giả, cũng được sử dụng để đánh giá mức độ thành công của một mô hình. Đối với mô hình hồi quy, các số liệu phổ biến bao gồm hệ số xác định (cung cấp thông tin về mức độ phù hợp của mô hình), sai số bình phương trung bình (MSE) và sai số tuyệt đối trung bình.
Get started: Machine Learning Udacity CourseEssentials of Machine Learning AlgorithmsEvaluating Machine Learning Models

7. Data Visualization (Trực quan hóa dữ liệu)
Trực quan hóa dữ liệu là một lĩnh vực phức tạp, chủ yếu là vì nó có vẻ đơn giản nhưng nó có thể là một trong những điều khó nhất để làm tốt. Điều đó bởi vì viz dữ liệu kết hợp các lĩnh vực truyền thông, tâm lý học, thống kê và nghệ thuật, với mục tiêu cuối cùng là truyền đạt dữ liệu theo cách đơn giản nhưng hiệu quả và dễ chịu trực quan. Khi bạn đạt được những hiểu biết dự định từ mô hình của mình, bạn phải trình bày chúng theo cách mà các bên liên quan chính khác nhau trong dự án có thể hiểu được.

Một lần nữa, đây là một chủ đề có thể là một bài đăng trên blog của riêng mình, vì vậy thay vì đi sâu vào lĩnh vực trực quan hóa dữ liệu, tôi sẽ đưa ra một vài điểm bắt đầu. Cá nhân tôi thích làm việc thông qua đường ống phân tích và trực quan hóa trên một máy tính xách tay Python tương tác như Jupyter, trong đó tôi có thể có mã và trực quan hóa của mình cạnh nhau, cho phép lặp lại nhanh chóng với các thư viện như Seaborn và Bokeh. Các công cụ như Tableau và Plotly giúp dễ dàng kéo và thả dữ liệu của bạn vào trực quan hóa và thao tác dữ liệu để có được hình ảnh phức tạp hơn. Nếu bạn đang xây dựng một hình ảnh trực quan tương tác cho web, không có điểm khởi đầu nào tốt hơn D3.js.
Get started: An Overview of Every Data Visualization Course on the InternetTableauPlotlySeabornBokehD3.js

8. Hiểu biết về kinh doanh
Bây giờ bạn đã trải qua toàn bộ vòng đời, đã đến lúc quay lại bảng vẽ. Hãy nhớ rằng, đây là một chu trình, và do đó, nó là một quá trình lặp đi lặp lại. Đây là nơi bạn đánh giá mức độ thành công của mô hình liên quan đến sự hiểu biết kinh doanh ban đầu của bạn. Liệu nó có giải quyết được các vấn đề được xác định? Liệu phân tích mang lại bất kỳ giải pháp hữu hình? Nếu bạn gặp phải bất kỳ hiểu biết mới nào trong lần lặp đầu tiên của vòng đời (và tôi đảm bảo với bạn rằng bạn sẽ làm được), giờ đây bạn có thể truyền kiến thức đó vào lần lặp tiếp theo để tạo ra những hiểu biết mạnh mẽ hơn và giải phóng sức mạnh của dữ liệu để thu được kết quả phi thường cho doanh nghiệp hoặc dự án của bạn.