Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách dùng thư viện scikit-learn để tiền xử lý dữ liệu trong Python

Tiền xử lý dữ liệu là quá trình làm sạch dữ liệu, loại bỏ dữ liệu không hợp lệ, nhiễu, thay thế dữ liệu bằng giá trị phù hợp, v.v.

Điều này không chỉ áp dụng cho dữ liệu văn bản; cũng có thể là xử lý hình ảnh hoặc video. Đây là bước quan trọng trong quy trình học máy (ML pipeline).

Tiền xử lý dữ liệu về cơ bản là tác vụ thu thập tất cả dữ liệu (từ nhiều nguồn hoặc một nguồn) vào định dạng chung hoặc tập dữ liệu thống nhất (tùy loại dữ liệu).

Điều này giúp thuật toán học có thể học từ tập dữ liệu này và đưa ra kết quả chính xác cao. Vì dữ liệu thực tế không bao giờ lý tưởng, có thể có ô trống, lỗi, giá trị ngoại lai, chênh lệch cột, v.v.

Đôi khi hình ảnh không căn chỉnh đúng, không rõ nét hoặc kích thước quá lớn. Mục tiêu tiền xử lý là loại bỏ các sự chênh lệch và lỗi này. Tiền xử lý dữ liệu không phải một tác vụ đơn lẻ, mà là tập hợp các tác vụ thực hiện từng bước. Đầu ra của bước này là đầu vào của bước tiếp theo.

Hãy lấy ví dụ chuyển đổi giá trị số sang giá trị Boolean:

Ví dụ

import numpy as np
from sklearn import preprocessing

input_data = np.array([
    [34.78, 31.9, -65.5],
    [-16.5, 2.45, -83.5],
    [0.5, -87.98, 45.62],
    [5.9, 2.38, -55.82]
])

data_binarized = preprocessing.Binarizer(threshold=0.5).transform(input_data)
print("Giá trị chuyển từ số sang Boolean:\n", data_binarized)

Đầu ra

Giá trị chuyển từ số sang Boolean:
[[1. 1. 0.]
 [0. 1. 0.]
 [0. 0. 1.]
 [1. 1. 0.]]

Giải thích

  • Nhập các gói thư viện cần thiết.
  • Tạo dữ liệu đầu vào bằng thư viện NumPy.
  • Hàm Binarizer trong lớp preprocessing của sklearn dùng để chuyển giá trị số thành Boolean.
  • Giá trị Boolean chỉ là 1 và 0.
  • Dữ liệu chuyển đổi được in ra console.

Giải thích: Binarizer(threshold=0.5) biến đổi: giá trị > 0.5 thành 1, giá trị ≤ 0.5 thành 0. Đây là kỹ thuật ngưỡng hóa (thresholding) phổ biến trong tiền xử lý.

Các kỹ thuật tiền xử lý phổ biến khác trong sklearn.preprocessing:

  • StandardScaler - Chuẩn hóa Z-score (mean=0, std=1)
  • MinMaxScaler - Chuẩn hóa min-max về [0,1]
  • RobustScaler - Chịu được outlier (dùng median, IQR)
  • LabelEncoder, OneHotEncoder - Mã hóa biến phân loại
  • Imputer / SimpleImputer - Xử lý giá trị thiếu