Data Scientist

Giới thiệu

Data science - khoa học dữ liệu là tổng hợp của 3 nhóm ngành: Mathematics (Toán học), Domain Expertise (Kiến thức nghiệp vụ), Computer Science (Khoa học máy tính)

Giúp tổng hợp và chuyển đổi dữ liệu thành thông tin có ý nghĩa cho việc ra quyết định.

Thống kê (Statistics)

Áp dụng toán học lên một bộ dữ liệu để thấy được ý nghĩa của dữ liệu. Có 2 kiểu thống kê: descriptive statistics (thống kê mô tả) và inferential statistics (thống kê suy luận)
Thống kê mô tả một bộ dữ liệu bằng các con số được tính toán, ví dụ như là mean (trung bình) và standard deviation (độ lệch chuẩn)

Xác suất (Probability)

Áp dụng toán học để tìm hiểu về việc có thể xảy ra. Trong DC, tính toán xác suất được dùng để xây dựng mô model (mô hình). Data scientists xây dựng mô hình để tính toán khả năng xảy ra của hiện tượng, và họ dùng nó để ra quyết định

Bài toán xác suất: xác suất những người trong cùng căn phòng có cùng ngày sinh

Lập trình (Programming)

Sử dụng khả năng tính toán của máy tính để tính toán bộ dữ liệu

Kiến thức nghiệp vụ (Domain Expertise)

Có kiến thức nghiệp vụ để hiểu ý nghĩa của dữ liệu được thống kê, và tính toán được tạo ra bởi thống kê

Quy trình của khoa học dữ liệu

  • Đặt câu hỏi
    • Mục tiêu khoa học là gì?
    • Cần làm những gì khi có đủ dữ liệu?
    • Cần dự đoán hay ước lược điều gì?
  • Xác định dữ liệu cần thiết
    • Số lượng mẫu cần thiết?
    • Cần dữ liệu gì để chứng minh hoặc phủ định giả thuyết?
  • Lấy dữ liệu
    • Lấy mẫu dữ liệu như thế nào?
    • Dữ liệu nào là liên quan?
    • Có vấn đề gì về quyền riêng tư?
  • Làm sạch và tổ chức dữ liệu
    • Dữ liệu có đọc được không?
    • Xoá những giá trị không cần thiết
    • Chuyển đổi dữ liệu bảng
  • Khai phá dữ liệu
    • Tạo đồ thị cho dữ liệu
    • Có gì bất thường không?
    • Có khuôn mẫu nào không?
  • Mô hình hoá dữ liệu
    • Xây dựng mô hình
    • Đẩy dữ liệu vào mô hình
    • Kiểm chứng mô hình
  • Truyền đạt những khám phá tìm được
    • Chúng ta tìm hiểu được gì?
    • Kết quả có hợp lý?
    • Có thể kể được câu chuyện?

Đặt câu hỏi

Các vấn đề cần quan tâm khi đặt câu hỏi:

  • Quan hệ giữa các biến số: tìm hiểu xem biến số x có tác động đến biến số y hay không
  • Phạm vi: câu hỏi phải đủ chi tiết để có thể trả lời, nhưng không quá chí tiết đến mức không có dữ liệu nào thoả mãn cho câu hỏi, và không đi đến được kết luận nào
  • Ngữ cảnh: câu hỏi tốt cần có đủ hiểU biết về ngữ cảnh để có thể đưa ra. Để có hiểu biết về ngữ cảnh cần phỉa nghiên cứu, vd như tìm hiểu về dữ liệu đang có sẵn

Xác định dữ liệu cần thiết

Khi đã có câu hỏi, cần dự tính câu trả lời khả dĩ cho câu hỏi - đây gọi là giả thuyết (hypothesis), giả thuyết này sẽ giúp xác định cần thu thập dữ liệu gì.
Dữ liệu thu thập chủ yếu là để bác bỏ giả thuyết, bởi trong khoa học, rất khó để chứng minh một thứ gì đúng, mà chúng ta chứng minh rằng chúng ta rất tự tin là nó không sai.
Cách xác định:

  • Xác định dữ liệu nào có thể bác bỏ được giả thuyết
  • Bao nhiêu dữ liệu là đủ: thường chỉ lấy mẫu một lượng nhỏ trong quần thể làm đại diện cho quần thể

Lấy dữ liệu

  • Chủ động: tiến hành thừ nghiệm hoặc khảo sát
  • Bị động: lấy những dataset có sẵn, cào dữ liệu trên web

Cần lấy lượng mẫu phù hợp, đủ diều kiện để phủ cho quần thể

Làm sạch dữ liệu

Cần làm sạch để loại bỏ các lỗi sai trong dữ liệu (cột không có tên, dữ liệu thiếu), bằng cách loại bỏ dữ liệu sai, hoặc sửa lại tên cột

Trong Python sử dụng thư viện Pandas để import và tổ chức dataset

Khám phá dữ liệu

Tính toán thống kê: sử dụng những phép toán như trung bình, trung vị, độ lệch chuẩn để biết được những giá trị phổ biến và dữ liệu được trải rộng như thế nào. Ở Python sử dụng thư viện Numpy thể thực hiện những phép toán này.

Visualize dữ liệu: vẽ đồ thị từ tập dữ liệu để biết được khung mẫu, quan hệ, những giá trị ngoại lai và liên hệ giữa chúng với tập dữ liệu. Hữu ích khi làm việc với tập dữ liệu lớn. Ở Python dùng thư viện Matplotlib và Seaborn để làm những việc này.

Mô hình hoá và phân tích

Mô hình: là ánh xạ của thực tế, dựa vào dữ liệu thật, cho phép ta hiểu được tình huống và dự đoán những thứ có thể xảy ra khi thay đổi một biến số nào đấy. Mô hình cho ta thấy quan hệ giữa hai hoặc nhiều biến số, giúp ta suy luận ra được các tình huống khác nhau. Hiểu được quan hệ giữa các biến số, chúng ta có thể thêm những biến số chưa biết và tính toán những khả năng khác. Khi thu thập thêm nhiều dữ liệu, mô hình có thể thay đổi, giúp rút ra được thêm những góc nhìn sâu rộng cho những tình huống khác nhau.

Truyền đạt những khám phá tìm được

Visualizing: tuỳ vào trình độ của người xem mà chúng ta chọn dạng biểu đồ phù hợp để mô tả dữ liệu

Kể câu chuyện: visualize là không đủ để truyền đạt, cần phải kể câu chuyện về dữ liệu tìm được, đây là điều quan trọng để thể hiện tại sao kết quả này lại quan trọng, và tại sao họ nên chọn một quyết định nào đó.

Khả năng tái lập và tự động hoá

Thí nghiệm của bạn cần có thể tái lập được để tái sử dụng và xác thực bởi người khác

Trường hợp bạn thường xuyên chạy thí nghiệm để tạo báo cáo, bạn có thể tạo ra chương trình để tự động hoá những bước chạy

Ứng dụng

  • Hệ thống báo cáo
  • Hệ thống gợi ý
  • Hệ thống đột biến giá cả
  • Xử lý ngôn ngữ tự nhiên

Đọc hiểu dữ liệu (Data Literacy)

Dẫn nhập về Dữ liệu:

Để đọc hiểu và xác định những đặc điểm sau:

Xác định khoảng trống dữ liệu (Data Gaps)

Là khả năng tách bạch giữa dữ liệu tốt, bình thường, nghèo về mặt chất lượng. Những kết luận dựa trên dữ liệu chỉ vững chắc, có sức nặng, được hỗ trợ tốt khi dữ liệu đầu vào là tốt (garbage in - garbage out)

Xác định thiên kiến thiên vị (Addressing Bias)

Thiên kiến khi thu thập dữ liệu ảnh hưởng XẤU tới dữ liệu, do đó cần biết cách nhận biết chúng. Đặt các câu hỏi “Ai thu thập dữ liệu? Ai tham gia vào dữ liệu được thu thập? Ai được đặt ra ngoài quá trình thu thập dữ liệu?”

Thống kê dữ liệu & trực quan hóa

Thống kê giúp kiểm tra một sự kiện xảy ra mang tính ngẫu nhiên hay hệ thống

Trực quan hóa dữ liệu bằng bảng biểu, hình vẽ giúp nhận ra dấu hiệu của dữ liệu và ra quyết định

Thu thập dữ liệu

Cần lưu ý 3 điểm:

  • Đạo đức và quyền riêng tư:
    • Khi thu thập gì cần sự đồng ý của người dùng
    • Người dùng có toàn quyền sở hữu các thông tin được thu thập
    • Người dùng biết được mục đích, cách thức dữ liệu được sử dụng và lưu trữ,
    • Bảo đảm quyền riêng tư bằng cách bảo vệ an toàn dữ liệu được thu thập
  • Cách thức thu thập:
    • Dữ liệu tĩnh: lấy từ khảo sát, quan sát, kết quả nghiên cứu
    • Dữ liệu động: lấy từ cảm biến, các chương trình theo dõi
    • Dữ liệu có sẵn: dữ liệu đã được thu thập bởi người khác
  • Nguồn dữ liệu có sẵn: có những nguồn dữ liệu được công khai miễn phí hoặc trả phí trên internet

Kiểu và chất lượng dữ liệu

Có 2 kiểu tổ chức dữ liệu: theo phương pháp (methodology) và theo hình thái (shape)

  • Tổ chức theo phương pháp là cách thu thập dữ liệu
  • Tổ chức theo hình thái thông dụng nhất là bảng biểu: các biến số được sắp xếp theo cột, và các quan sát được sắp xếp trên dòng. Trong đó, một biến số chỉ biểu diễn một đặc tính, và bản thân nó không nên là đặc tính được biểu diễn

Có 2 kiểu dữ liệu: dữ liệu lượng hóa (numerical) và dữ liệu phân loại (categorical)

  • Dữ liệu lượng hóa bao gồm giá trị đo đượcđơn vị tính. Có 2 cách lượng hóa là đếm và đo lường. Đếm cho ra kết quả là một số nguyên gọi là biến rời rạc. Đo lường cho một số thực được gọi là biến liên tục
  • Dữ liệu phân loại mô tả một đặc tính, được biểu diễn bằng từ ngữ hoặc các giá trị tương đối. Những phân loại được biểu diễn bằng từ ngữ được gọi là biến danh nghĩa (nominal variable), biểu diễn bằng 2 lựa chọn Có/Không được gọi là biến lưỡng phân (dichotomous variable), biểu diễn bằng cảm nhận chủ quan có tính thứ tự (vd: đẹp-xấu đánh giá từ 1-5 điểm) được gọi là biến thứ tự (ordinal variable)

Một bộ dữ liệu lộn xộn có những đặc điểm:

  • Sai chính tả
  • Thiếu dữ liệu, thiếu trường
  • Kiểu dữ liệu không nhất quán giữa các quan sát (nơi ghi số, nơi ghi chữ)

Có những dữ liệu bị thiếu một cách ngẫu nhiên, hoặc thiếu theo hệ thống. Đối với dữ liệu thiếu theo hệ thống, chỉ cần lờ chúng đi. Đối với dữ liệu thiếu ngẫu nhiên, có những cách khắc phục khác nhau như áp đặt dữ liệu, nội suy tuyến tính

Cần quan tâm tới độ chính xác của dữ liệu qua việc: chuẩn hóa việc đo đạc, sử dụng kiến thức thực tế để đảm bảo dữ liệu phản ánh được thực tế

Có sự tương quan giữa bộ dữ liệu và mục đích sử dụng: bộ dữ liệu có thể sử dụng để trả lời câu hỏi này, nhưng không thể trả lời câu hỏi khác, do đó cần quan tâm tới tính hợp lệ của dữ liệu qua việc: không sử dụng những cầu nối dữ liệu (proxy) thiếu tính chính xác, khoảng thời gian giữa các quan sát không hợp lý với câu hỏi đang quan tâm

Mẫu đại diện: là bộ dữ liệu có tất cả những đặc điểm của mẫu lớn hơn

Tư duy dữ liệu

Tư duy thống kê

Để trả lời những câu hỏi đặt ra cho bộ dữ liệu, cần vận dụng thống kê tóm tắt để đo lường và diễn giải những biến số trong bộ dữ liệu

Diễn giải những biến phân loại: bằng cách đếm những biến số của phân loại đó và tạo ra một bảng gồm 4 cột: tên, số lần, tỷ lệ, tỷ lệ phần trăm

Diễn giải những biến lượng hóa:

  • Biểu diễn sự phân phối của những giá trị lượng hóa bằng đồ thị, những đồ thị có giá trị lớn ở giữa và giá trị thấp ở 2 đầu được gọi là phân phối chuẩn (standard distribution)
  • Tính giá trị trung bình (mean): cộng tất cả giá trị và chia cho số lượng
  • Tính độ lệch chuẩn (standard deviation): mô tả độ phủ của giá trị trong phân phối bằng cách đo khoảng cách trung bình giữa các giá trị với trị trung bình
  • Phân phối lệch: có đồ thị phân bổ phần lớn bên phải (lệch âm) hoặc bên trái (lệch dương)

Sử dụng Python trong Data Science

Xem Python Quicknote

EDA - Exploratory Data Analysis

Là quá trình tìm hiểu dữ liệu có những gì, những mẫu hình và quan hệ có trong đó

EDA là một quá trình có thể lặp đi lặp lại trong suốt quá trình của dự án

Mục tiêu:

  • Biết được data structure và cách nó được code như thế nào
  • Quan sát và biểu diễn được dữ liệu bằng cách tổng hợp và visualize nó
  • Phát hiện những điểm gập gềnh, dữ liệu bị thiếu và các vấn đề khác và tìm cách giải quyết chúng
  • Mở đường cho những nghiên cứu và phân tích trong tương lai
  • Chuẩn bị xây dựng model hoặc phân tích bao gồm
    • Kiểm tra những giả định
    • Chọn những đặc điểm
    • Chọn phương pháp phù hợp

Kỹ thuật trong EDA

Kiểm tra mổ xẻ dữ liệu (Data inspection)

  • Sử dụng hàm head() để xem thử dữ liệu,
  • Kiểm tra kiểu dữ liệu để có thể tổng hợp trên chúng
  • Thấy được những nơi bị thiếu dữ liệu để xử lý

Tổng hợp số học (Numerical summarization)

  • Sau khi đã kiểm tra và dọn dẹp dữ liệu, thì tổng hợp là bước tiếp theo để cô đặc dữ liệu
  • Đối với dữ liệu số, đây là cách để biết độ rộng, phân bổ và xu hướng tập trung
  • Đối với dữ liệu phân loại, có thể biết được số lượng và tần số của phân loại
  • Trong DataFrame, thường sử dụng hàm describe(include = 'all') để xem các thống kê này

Biểu diễn số học (Data visualization)

  • Sử dụng mô tả bằng biểu đồ để biết thêm bối cảnh và chi tiết của dữ liệu (histogram, scatterplot …)

Các kiểu dữ liệu trong Data Science