English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

khách
1 / ?
trở lại bài học

Khoa học Dữ liệu là gì? [BLOCK_TYPE SECTION/STEP]

Khoa học dữ liệu không chỉ là học máy. Nó không chỉ là thống kê. Nó không chỉ là lập trình. [BLOCK_TYPE SECTION/STEP]

Khoa học dữ liệu là ngành học về trích xuất kiến thức hữu ích từ dữ liệu. Hầu hết công việc này không phải là glamorous: là làm sạch các bảng tính hỗn loạn,提出正确的问题,和向不关心你的代码的人传达结果。 [BLOCK_TYPE SECTION/STEP]

Đường ống Khoa học Dữ liệu [BLOCK_TYPE SECTION/STEP]

Đường ống khoa học dữ liệu điển hình trông như thế này:

1. Thu thập: thu thập dữ liệu thô từ cơ sở dữ liệu, API, CSV hoặc web scraping [BLOCK_TYPE SECTION/STEP]

2. Làm sạch: xử lý giá trị bị thiếu, sửa kiểu dữ liệu, xóa bản sao [BLOCK_TYPE SECTION/STEP]

3. Khám phá: trực quan hóa phân phối, tìm mẫu, đặt câu hỏi [BLOCK_TYPE SECTION/STEP]

4. Kỹ thuật: tạo các đặc trưng mới giúp mô hình học [BLOCK_TYPE SECTION/STEP]

5. Mô hình hóa: huấn luyện thuật toán, đánh giá hiệu suất, lặp lại [BLOCK_TYPE SECTION/STEP]

6. Truyền đạt: trình bày kết quả cho các bên liên quan quyết định [BLOCK_TYPE SECTION/STEP]

Nếu bạn đã từng sử dụng bảng pivot trong Excel, định dạng có điều kiện hoặc VLOOKUP, bạn đã thựcил bước 1-3. Bài học này sẽ kết nối kinh nghiệm đó với quy trình Python được sử dụng trong ngành công nghiệp. [BLOCK_TYPE SECTION/STEP]

Khởi động

Kinh Nghiệm Dữ Liệu Của Bạn

Mọi người đều đã làm việc với dữ liệu ở một hình thức nào đó: bảng tính ngân sách, theo dõi điểm số, ứng dụng theo dõi sức khỏe, thậm chí là danh sách phát với số lần phát.

Mô tả một lần bạn làm việc với dữ liệu trong bảng tính hoặc ứng dụng. Bạn đang cố gắng tìm hiểu điều gì, & liệu dữ liệu có cho bạn câu trả lời không?

Rác Vào, Rác Ra

Tại sao việc làm sạch dữ liệu lại quan trọng

Các nhà khoa học dữ liệu dành 60-80% thời gian để làm sạch dữ liệu. Đây không phải là sự phóng đại: đây là kết quả nhất quán từ các cuộc khảo sát ngành nghề.

Lý do rất đơn giản: garbage in, garbage out. Nếu dữ liệu của bạn có lỗi, giá trị bị thiếu, hoặc định dạng không nhất quán, mọi phân tích dựa trên dữ liệu đó sẽ bị sai. Một mô hình hoàn hảo được huấn luyện trên dữ liệu bẩn sẽ cho ra những câu trả lời sai một cách tự tin.


Các vấn đề phổ biến với dữ liệu

- Giá trị bị thiếu: các ô trống. Dữ liệu không được thu thập hay giá trị thực sự là 0? Đây là hai tình huống khác nhau và cần cách xử lý khác nhau.

- Kiểu dữ liệu sai: một cột số được lưu dưới dạng văn bản, ngày tháng có định dạng không nhất quán (01/02/2024: đây là ngày 2 tháng 1 hay ngày 1 tháng 2?)

- Giá trị ngoại lai: một cột lương có một mục là $1,000,000,000. Đây là giá trị thực hay lỗi đánh máy? Dù là trường hợp nào, nó cũng sẽ làm lệch các giá trị trung bình.

- Trùng lặp: cùng một bản ghi xuất hiện hai lần vì hai hệ thống được hợp nhất không hoàn hảo

- Mã hóa phân loại: một cột chứa 'Yes', 'yes', 'Y', 'TRUE', và '1'. Tất cả đều có ý nghĩa giống nhau, nhưng máy tính của bạn không biết điều đó.


Trong pandas (thư viện dữ liệu Python tiêu chuẩn), bạn xử lý những vấn đề này bằng các phương thức như dropna(), fillna(), astype(), và drop_duplicates(). Nhưng phần khó không phải là mã lệnh: mà là quyết định làm gì với mỗi vấn đề.

Common Data Problems

Cleaning Decisions

Deciding What To Do

Đây là một tình huống thực tế. Bạn có một tập dữ liệu gồm 10.000 bản ghi khách hàng. Cột 'age' có 500 giá trị bị thiếu.

Các lựa chọn của bạn:

- Loại bỏ các dòng: xóa tất cả 500 bản ghi. Đơn giản, nhưng bạn mất 5% dữ liệu. Nếu những 500 khách hàng này có chung một đặc điểm (có lẽ họ bỏ qua trường tuổi vì họ coi trọng quyền riêng tư), việc loại bỏ chúng sẽ gây ra sai lệch.

- Điền bằng giá trị trung bình: thay thế các giá trị trống bằng tuổi trung bình. Nhanh, nhưng làm giảm độ biến thiên của cột tuổi một cách giả tạo.

- Điền bằng giá trị trung vị: tốt hơn giá trị trung bình nếu phân phối tuổi bị lệch (một số ít khách hàng rất già hoặc rất trẻ kéo giá trị trung bình lên).

- Sử dụng cờ đánh dấu: tạo cột mới gọi là 'age_missing' (1 hoặc 0) và điền giá trị trung vị vào cột gốc. Như vậy, mô hình của bạn có thể یاد liệu liệu sự thiếu dữ liệu chính nó có thông tin hay không.

Không có câu trả lời đúng duy nhất. Việc lựa chọn phụ thuộc vào lý do dữ liệu bị thiếu & mục đích sử dụng dữ liệu của bạn.

Bạn có một tập dữ liệu về lương nhân viên. 200 trong số 5.000 bản ghi có giá trị lương bị thiếu. Bạn nhận thấy rằng hầu hết các giá trị bị thiếu là từ các vị trí điều hành. Bạn sẽ loại bỏ các dòng đó, điền bằng giá trị trung bình, hay làm điều gì đó khác? Giải thích lý do của bạn.

Đặt Câu hỏi Đúng

Phân tích Dữ liệu Khai phá (EDA)

Trước khi xây dựng bất kỳ mô hình nào, bạn cần hiểu dữ liệu của mình. EDA là quá trình tóm tắt, trực quan hóa, & đặt câu hỏi về tập dữ liệu để tìm ra các mẫu, điểm bất thường, & mối quan hệ.


Công Cụ Chính

- Biểu đồ tần suất (Histograms): thể hiện phân bố của một biến đơn lẻ. Có phải hình chuông không? Có bị lệch không? Có hai đỉnh (bimodal)? Biểu đồ thu nhập luôn bị lệch phải vì một số ít người kiếm được nhiều gấp nhiều lần so với phần lớn mọi người.

- Biểu đồ phân tán (Scatter plots): thể hiện mối quan hệ giữa hai biến. Người cao hơn có nặng hơn không? Thời gian học nhiều hơn có tương quan với điểm số cao hơn không? Mẫu hình (hoặc thiếu mẫu hình) cho biết liệu có mối quan hệ tồn tại hay không.

- Tương quan (Correlation): một số từ -1 đến +1 đo lường mối liên hệ tuyến tính. +1 nghĩa là mối quan hệ tích cực hoàn hảo, -1 nghĩa là mối quan hệ tiêu cực hoàn hảo, 0 nghĩa là không có mối quan hệ tuyến tính. Nhưng tương quan không có nghĩa là nhân quả: doanh số kem và số ca tử vong vì đuối nước là correlated vì cả hai tăng trong mùa hè.

- Thống kê mô tả (Summary statistics): trung bình (mean), trung vị (median), độ lệch chuẩn (standard deviation), min, max. Trong pandas: df.describe() cho bạn tất cả các chỉ số này trong một dòng.


Kỹ Năng Thực Tế

Các công cụ dễ học. Phần khó là đặt đúng câu hỏi. Câu hỏi kém: 'Dữ liệu cho thấy điều gì?' Câu hỏi tốt: 'Khách hàng liên hệ hỗ trợ trong tuần đầu tiên có tỷ lệ giữ chân cao hơn không?'

EDA Tools

Bẫy Tương Quan

Tương Quan vs. Nhân Quả

Đây là khái niệm quan trọng nhất trong hiểu biết dữ liệu. Hai biến có thể có tương quan mạnh mà không phải một biến gây ra biến kia.

Các ví dụ kinh điển:

- Các thành phố có nhiều lính cứu hỏa hơn cũng có nhiều vụ cháy hơn. (Các thành phố lớn hơn có cả hai.)

- Học sinh ăn sáng có điểm số tốt hơn. (Có thể các gia đình khá giả hơn có khả năng cung cấp bữa sáng VÀ hỗ trợ học tập.)

- Các quốc gia tiêu thụ nhiều sô cô la hơn sẽ giành được nhiều Giải Nobel hơn. (Cả hai đều tương quan với sự giàu có của quốc gia.)

Yếu tố ẩn được gọi là biến gây nhiễu: một biến thứ ba điều khiển cả hai biến mà bạn đang xem xét.

Tương quan so với Nhân quả

Một công ty nhận thấy rằng nhân viên sử dụng phòng gym của công ty có số ngày nghỉ ốm ít hơn 30%. CEO muốn yêu cầu tất cả nhân viên sử dụng phòng gym. Điều gì sai với cách suy luận này? Những biến gây nhiễu nào có thể giải thích mối tương quan này?

Tạo các biến hữu ích

Đặc trưng là gì?

Một đặc trưng là một biến đầu vào mà mô hình sử dụng để đưa ra dự đoán. Kỹ thuật đặc trưng là nghệ thuật tạo ra các đặc trưng mới từ dữ liệu thô để giúp mô hình nhận diện các mẫu mà nó không thể nhìn thấy được nếu không có.

Dữ liệu thô hiếm khi ở dạng mà mô hình cần. Hãy xem xét một tập dữ liệu có cột 'ngày sinh'. Mô hình không thể làm nhiều với ngày thô. Nhưng nếu bạn tạo ra đặc trưng 'tuổi' từ đó, đột nhiên mô hình có thể nhận diện các mẫu dựa trên tuổi.


Các kỹ thuật phổ biến

- Chuẩn hóa (Normalization): điều chỉnh các giá trị số về cùng một khoảng (0 đến 1, hoặc mean=0 và standard deviation=1). Nếu không làm điều này, một đặc trưng được đo bằng hàng nghìn (lương) sẽ chiếm ưu thế so với một đặc trưng được đo bằng chữ số đơn (số năm kinh nghiệm).

- Mã hóa one-hot (One-hot encoding): chuyển đổi các biến phân loại thành các cột nhị phân. Một cột 'color' với các giá trị [red, blue, green] sẽ trở thành ba cột: 'color_red', 'color_blue', 'color_green', mỗi cột có giá trị 0 hoặc 1.

- Phân nhóm (Binning): biến đổi một biến liên tục thành các danh mục. Tuổi 0-17 trở thành 'minor', 18-64 trở thành 'adult', 65+ trở thành 'senior'. Điều này giúp khi mối quan hệ không tuyến tính.

- Đặc trưng tương tác (Interaction features): nhân hai đặc trưng với nhau. 'Diện tích sàn nhân với số phòng tắm' có thể dự đoán giá nhà tốt hơn so với mỗi đặc trưng riêng lẻ.

- Kiến thức chuyên ngành (Domain knowledge): kỹ thuật mạnh nhất. Một bác sĩ tạo đặc trưng cho mô hình y tế biết những chỉ số xét nghiệm nào là quan trọng. Một nhà tiếp thị biết rằng 'số ngày kể từ lần mua hàng cuối cùng' là hữu ích hơn 'ngày mua hàng'. Không thuật toán nào có thể thay thế kỹ thuật này.

Feature Engineering Techniques

Feature Practice

Applying Feature Engineering

Hãy tưởng tượng bạn đang xây dựng một mô hình để dự đoán những khách hàng nào sẽ hủy đăng ký dịch vụ phát trực tuyến vào tháng tới. Dữ liệu thô của bạn bao gồm:

- Ngày tạo tài khoản

- Ngày đăng nhập gần nhất

- Số lượng chương trình đã xem trong tháng trước

- Số tiền thanh toán hàng tháng

- Số lượng yêu cầu hỗ trợ khách hàng đã gửi

- Quốc gia

Từ dữ liệu thô được liệt kê trên, hãy đề xuất ít nhất ba đặc trưng mới mà bạn sẽ tạo. Mỗi đặc trưng, hãy giải thích nó ghi nhận điều gì & tại sao nó có thể giúp dự đoán việc hủy đăng ký.

Phân chia Train/Test

Tại sao Bạn Phải Phân chia Dữ liệu

Quy tắc quan trọng nhất trong mô hình hóa: không bao giờ đánh giá mô hình trên cùng dữ liệu bạn đã huấn luyện nó.

Nếu làm vậy, mô hình có thể chỉ ghi nhớ các câu trả lời. Nó sẽ đạt điểm hoàn hảo trên dữ liệu huấn luyện nhưng sẽ thất bại trên dữ liệu mới, chưa từng thấy. Điều này gọi là overfitting: mô hình đã học nhiễu trong tập dữ liệu cụ thể của bạn thay vì học các mẫu thực sự.

Thực hành chuẩn là chia dữ liệu của bạn:

- Training set (thường 70-80%): mô hình học từ tập này

- Test set (thường 20-30%): được giữ lại, chỉ dùng để đánh giá mô hình cuối cùng

Trong scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)


Các Thuật toán Phổ biến

- Hồi quy tuyến tính: vẽ đường thẳng tốt nhất đi qua dữ liệu. Đơn giản, dễ giải thích, phù hợp khi mối quan hệ là gần như tuyến tính. Dự đoán một số (giá, nhiệt độ, điểm).

- Cây quyết định: một sơ đồ dòng chảy của các câu hỏi có/không. Dễ hiểu và dễ giải thích. Dễ bị quá khớp nếu không cắt tỉa hoặc giới hạn độ sâu.

- Rừng ngẫu nhiên: nhiều cây quyết định mà cùng bỏ phiếu. So với satu cây đơn lẻ, phương pháp này chính xác hơn, ít bị quá khớp, nhưng khó giải thích hơn.


Quá khớp so với Thiếu khớp

- Quá khớp: mô hình quá phức tạp. Nó ghi nhớ dữ liệu huấn luyện, bao gồm cả nhiễu. Độ chính xác cao trên dữ liệu huấn luyện, độ chính xác thấp trên dữ liệu kiểm tra.

- Thiếu khớp: mô hình quá đơn giản. Nó không thể bắt được các mẫu thực. Độ chính xác thấp trên cả dữ liệu huấn luyện và dữ liệu kiểm tra.

Mục tiêu là điểm cân bằng ở giữa.

Train/Test Split and Bias-Variance Tradeoff

Các chỉ số đánh giá

Làm sao để biết mô hình của bạn tốt?

Chỉ số Accuracy (độ chính xác) có thể gây hiểu nhầm. Nếu 95% email không phải spam, mô hình luôn dự đoán 'không phải spam' sẽ có độ chính xác 95%, nhưng hoàn toàn vô dụng.

Các chỉ số chính:

- Accuracy: phần trăm dự đoán đúng. Hữu ích khi các lớp dữ liệu cân bằng.

- Precision: trong số những thứ mà mô hình đánh dấu là positive, bao nhiêu phần trăm thực sự là positive? Precision cao nghĩa là ít báo động giả.

- Recall: trong số những trường hợp positive thực tế, mô hình bắt được bao nhiêu? Recall cao nghĩa là ít bỏ sót.

- Điểm F1: trung bình điều hòa của precision và recall. Hữu ích khi bạn cần cân bằng cả hai.

- RMSE (Root Mean Squared Error): dùng cho bài toán hồi quy (dự đoán số). Dự đoán sai lệch trung bình bao nhiêu?

Chỉ số nào quan trọng nhất phụ thuộc vào vấn đề. Với phát hiện ung thư, recall quan trọng hơn: bạn không muốn bỏ sót một ca bệnh. Với lọc thư rác, precision quan trọng hơn: bạn không muốn xóa nhầm email thật.

Evaluation Metrics and Confusion Matrix

Bạn đang xây dựng mô hình phát hiện giao dịch thẻ tín dụng gian lận. Chỉ 0.1% giao dịch thực sự là gian lận. Nếu mô hình dự đoán mọi giao dịch là hợp pháp, độ chính xác của nó là bao nhiêu? Tại sao accuracy lại là chỉ số tệ trong trường hợp này, & bạn nên dùng chỉ số nào thay thế?

Phân tích viên dữ liệu vs. Nhà khoa học dữ liệu vs. Kỹ sư ML

Ba vai trò khác biệt

Lĩnh vực dữ liệu có ba lộ trình nghề nghiệp chính, và chúng đòi hỏi những kỹ năng khác nhau.


Phân tích viên dữ liệu

- Focus: trả lời các câu hỏi kinh doanh bằng dữ liệu hiện có

- Tools: SQL, Excel, Tableau, Python hoặc R cơ bản

- Day-to-day: dashboards, reports, phân tích A/B test, trình bày với stakeholder

- Entry path: thường dễ tiếp cận nhất. Nhiều analyst bắt đầu mà không cần bằng CS.


Data Scientist

- Focus: xây dựng mô hình dự đoán & tìm kiếm các pattern trong dữ liệu phức tạp

- Tools: Python (pandas, scikit-learn, matplotlib), statistics, SQL, Jupyter notebooks

- Công việc hàng ngày: EDA, feature engineering, xây dựng mô hình, thử nghiệm

- Con đường vào nghề: thường yêu cầu nền tảng thống kê hoặc định lượng. Bootcamp & tự học là khả thi.


Kỹ sư Học máy

- Tập trung: triển khai & mở rộng mô hình trong hệ thống production

- Công cụ: Python, TensorFlow/PyTorch, Docker, nền tảng đám mây (AWS/GCP), APIs

- Công việc hàng ngày: tối ưu hóa mô hình, hạ tầng pipeline, giám sát mô hình production

- Con đường vào nghề: thường yêu cầu kỹ năng kỹ thuật phần mềm mạnh kết hợp kiến thức ML.


Xây dựng Portfolio

Nhà tuyển dụng quan tâm đến những gì bạn có thể làm, không chỉ những gì bạn đã học. Một portfolio gồm 3-5 dự án chất lượng trên GitHub quan trọng hơn các chứng chỉ. Các dự án tốt sử dụng dữ liệu thực (không phải dữ liệu mẫu), có tài liệu rõ ràng, và thể hiện toàn bộ quy trình: từ dữ liệu thô đến insight có thể hành động được.

Data Career Paths

Các Bước Tiếp Theo Của Bạn

Bạn Nên Đi Từ Đây

Các công cụ nghề nghiệp đều miễn phí & dễ tiếp cận:

- pandas: thư viện Python chuẩn để xử lý dữ liệu

- matplotlib / seaborn: các thư viện trực quan hóa dữ liệu

- scikit-learn: công cụ chính cho học máy cổ điển

- Jupyter notebooks: môi trường lập trình tương tác cho phép kết hợp code, kết quả và ghi chú

- Kaggle: tập dữ liệu miễn phí, các cuộc thi và cộng đồng người thực hành

Bắt đầu với một tập dữ liệu thực tế mà bạn quan tâm. Tải về, làm sạch, khám phá và thử trả lời một câu hỏi. Dự án đơn giản này sẽ dạy bạn nhiều hơn bất kỳ khóa học nào.

Dựa trên những gì bạn đã học trong bài học này, vai trò nào trong ba vai trò (data analyst, data scientist, hoặc ML engineer) hấp dẫn вас nhất? Một bước cụ thể nào bạn có thể thực hiện trong tuần này để bắt đầu xây dựng kỹ năng cho vai trò đó?