Chất lượng của một mô hình Machine Learning phụ thuộc trực tiếp vào chất lượng dữ liệu đầu vào. Một câu nói nổi tiếng trong giới khoa học dữ liệu là “Garbage In, Garbage Out” – nếu bạn đưa dữ liệu không sạch vào, mô hình dù mạnh mẽ đến đâu cũng chỉ cho ra kết quả kém. Chính vì vậy, bước tiền xử lý dữ liệu đóng vai trò quan trọng, giúp biến dữ liệu thô thành một tập dữ liệu có cấu trúc và sẵn sàng cho việc huấn luyện.
Nếu bạn từng thực hành qua các bài như Tạo mô hình phát hiện cảm xúc từ văn bản bằng NLP hoặc Phân tích dữ liệu bán hàng bằng Python và Pandas, bạn sẽ thấy dữ liệu thực tế hiếm khi hoàn hảo. Thông thường, nó chứa dữ liệu thiếu, giá trị ngoại lai, định dạng không thống nhất và nhiều vấn đề khác cần xử lý trước khi đưa vào mô hình. Bài viết này sẽ hướng dẫn bạn từng bước để làm sạch và chuẩn bị dữ liệu một cách tối ưu, từ đó nâng cao hiệu suất của mô hình học máy.
Tại sao cần tiền xử lý dữ liệu?
Dữ liệu thu thập từ thực tế thường không ở dạng hoàn hảo để đưa vào huấn luyện. Nó có thể bị thiếu giá trị, chứa lỗi nhập liệu, dữ liệu ngoại lai hoặc định dạng không đồng nhất. Nếu bỏ qua các vấn đề này, mô hình sẽ học từ những thông tin sai lệch, dẫn đến dự đoán kém chính xác. Tiền xử lý dữ liệu giúp chuẩn hóa, lọc bỏ những điểm bất thường và tạo điều kiện để các thuật toán Machine Learning hoạt động hiệu quả hơn.
Chuẩn bị dữ liệu khách hàng bán lẻ
Để thực hành phân tích dữ liệu, bạn cần một bộ dữ liệu thực tế. Nếu bạn chưa có sẵn, có hai cách để lấy:
Cách đơn giản nhất là tự tạo một bộ dữ liệu giả lập ngay trong Python và lưu nó thành file CSV. Cách này đảm bảo bạn có file để thực hành mà không cần tải về từ bên ngoài.
import pandas as pd
# Tạo dữ liệu khách hàng bán lẻ giả lập
data = {
'CustomerID': [1001, 1002, 1003, 1004, 1005],
'Age': [25, 34, 28, None, 45],
'Income': [50000, 64000, None, 72000, 80000],
'Purchases': [5, 3, 4, 2, None]
}
# Lưu vào file CSV
df_sample = pd.DataFrame(data)
df_sample.to_csv('retail_customers.csv', index=False)
print("Dữ liệu mẫu đã được tạo và lưu vào file retail_customers.csv")
Sau khi chạy đoạn code trên, file retail_customers.csv sẽ được tạo ra trong thư mục hiện tại của bạn. Bạn có thể kiểm tra bằng cách sử dụng df_sample.head() để xem trước dữ liệu.
Tải và khám phá dữ liệu
Để thực hành, chúng ta sẽ sử dụng bộ dữ liệu khách hàng bán lẻ giả lập được lưu trong file CSV. Bộ dữ liệu này chứa các thông tin như ID khách hàng, độ tuổi, thu nhập, và số lần mua hàng.
import pandas as pd
# Đọc dữ liệu
df = pd.read_csv('retail_customers.csv')
df.head()
Trước khi xử lý, cần hiểu rõ cấu trúc dữ liệu bằng cách xem thông tin tổng quan.

