Đây là quá trình chuẩn bị dữ liệu thô nhằm đảm bảo dữ liệu đạt chất lượngcần thiết để áp dụng vào các phương pháp phân tích hoặc xây dựng mô hình học máy.. Ví dụ: Trong dữ liệu khảo sát,
Trang 1BỘ GIAO THÔNG VẬN TẢI HỌC VIỆN HÀNG KHÔNG VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
KHAI THÁC DỮ LIỆU BÁO CÁO CHƯƠNG II: TIỀN XỬ LÍ DỮ LIỆU
Giảng viên hướng dẫn: ThS.NCS Trần Anh Tuấn
Sinh viên/ Nhóm sinh viên thực hiện: Nhóm 02
Lớp: 010100087302
TP.Hồ Chí Minh, tháng 01/2025
Trang 2Danh sách Nhóm:
Trang 3MỤC LỤC
CHƯƠNG 2 Tiền xử lý dữ liệu 1
2.1 Tại sao phải tiền xử lý dữ liệu 1
2.2 Trích xuất và chuyển đổi kiểu dữ liệu 2
2.3 Làm sạch dữ liệu 6
2.4 Thu gọn và chuyển đổi dữ liệu 9
Trang 4CHƯƠNG 2 TIỀN XỬ LÝ DỮ LIỆU
2.1 Tại sao phải tiền xử lý dữ liệu
Tiền xử lý dữ liệu (Data Preprocessing) là bước khởi đầu quan trọng trong quy trình xử lý dữ liệu
và phân tích dữ liệu Đây là quá trình chuẩn bị dữ liệu thô nhằm đảm bảo dữ liệu đạt chất lượngcần thiết để áp dụng vào các phương pháp phân tích hoặc xây dựng mô hình học máy Dưới đây làcác lý do chính giải thích tại sao phải thực hiện bước tiền xử lý dữ liệu:
Cải thiện chất lượng dữ liệu
1 Vấn đề: Dữ liệu thô thường chứa các lỗi như giá trị thiếu, dữ liệu không chính xác,
hoặc dữ liệu không nhất quán
2 Lợi ích: Việc tiền xử lý loại bỏ các khuyết điểm này, giúp dữ liệu trở nên sạch hơn
và đáng tin cậy hơn
3 Ví dụ: Trong dữ liệu khảo sát, các giá trị không hợp lệ như "N/A" hoặc "-" trong cột
tuổi cần được xử lý để đảm bảo dữ liệu có thể sử dụng được
Tăng hiệu suất và độ chính xác của mô hình
1 Vấn đề: Dữ liệu không được chuẩn hóa hoặc có nhiều giá trị ngoại lai sẽ ảnh hưởng
tiêu cực đến hiệu suất của thuật toán học máy
2 Lợi ích: Tiền xử lý chuẩn hóa dữ liệu, giảm thiểu sai số và tối ưu hóa hiệu quả của
mô hình
3 Ví dụ: Trong bài toán phân loại email, việc loại bỏ các từ không liên quan như "the"
hay "a" (stop words) giúp cải thiện kết quả phân tích
Giảm độ phức tạp và khối lượng tính toán
1 Vấn đề: Dữ liệu thô thường có kích thước lớn hoặc chứa các thông tin dư thừa,
không cần thiết
2 Lợi ích: Giảm kích thước dữ liệu hoặc trích xuất các đặc trưng cần thiết giúp tiết
kiệm thời gian và tài nguyên tính toán
Trang 53 Ví dụ: Trong xử lý ảnh, giảm độ phân giải của hình ảnh có thể giúp giảm tải cho các
mô hình xử lý ảnh phức tạp
Đảm bảo tính nhất quán và khả năng tái sử dụng
1 Vấn đề: Dữ liệu đến từ nhiều nguồn khác nhau, thường không đồng nhất về định
dạng và cấu trúc
2 Lợi ích: Chuẩn hóa và đồng nhất dữ liệu giúp việc phân tích dễ dàng hơn và đảm
bảo khả năng sử dụng lâu dài
3 Ví dụ: Kết hợp dữ liệu từ nhiều bảng cơ sở dữ liệu với các định dạng ngày tháng
khác nhau (DD/MM/YYYY và MM-DD-YYYY) yêu cầu chuyển đổi về một chuẩnchung
Tuân thủ các tiêu chuẩn pháp lý và quy định
1 Vấn đề: Dữ liệu nhạy cảm như thông tin tài chính hoặc cá nhân yêu cầu tuân thủ các
tiêu chuẩn bảo mật và quyền riêng tư
2 Lợi ích: Tiền xử lý giúp mã hóa hoặc ẩn danh dữ liệu để đáp ứng các yêu cầu về bảo
mật
3 Ví dụ: Trong dữ liệu y tế, thông tin cá nhân như tên bệnh nhân có thể bị ẩn danh để
đảm bảo tuân thủ luật bảo vệ dữ liệu (GDPR)
2.2 Trích xuất và chuyển đổi kiểu dữ liệu
1 Trích xuất dữ liệu từ nhiều nguồn
Phương pháp tiêu biểu: Trích xuất từ cơ sở dữ liệu SQL
o Thực hiện:
1 Xác định cơ sở dữ liệu và các bảng cần trích xuất
2 Viết câu lệnh SQL để lấy dữ liệu, bao gồm các trường và điều kiện lọc cầnthiết
3 Sử dụng thư viện hoặc công cụ (như pymysql hoặc SQLAlchemy trongPython) để kết nối và lấy dữ liệu
Trang 6o Ví dụ:
Một công ty cần trích xuất dữ liệu đơn hàng từ cơ sở dữ liệu:
1 Bảng orders có các cột: order_id, customer_id, order_date, total_amount
2 Thực hiện trong Python:
import pymysqlconn = pymysql.connect(host='localhost', user='user',password='password', database='sales_db')
query = "SELECT order_id, customer_id, order_date, total_amount FROMorders WHERE total_amount > 1000"
data = pd.read_sql(query, conn)print(data.head())
3 Kết quả:
order_id customer_id order_date total_amount
0 101 1 2023-01-01 1200
1 102 2 2023-01-03 1500
2 Chuyển đổi kiểu dữ liệu
Phương pháp tiêu biểu: Chuyển đổi định dạng ngày tháng
o Thực hiện:
1 Xác định cột cần chuyển đổi
2 Sử dụng các công cụ hoặc thư viện như pandas để thực hiện chuyển đổi
3 Đảm bảo tất cả giá trị được chuyển về định dạng thống nhất
o Ví dụ:
Cột "Ngày sinh" có các định dạng khác nhau như: 01-01-1990, 1990/01/02, January
3, 1990
Trang 7 Python code:
import pandas as pddata = {'Ngày sinh': ['01-01-1990', '1990/01/02', 'January 3, 1990']}
df = pd.DataFrame(data)df['Ngày sinh'] = pd.to_datetime(df['Ngày sinh'])print(df)
3 Mã hóa dữ liệu phân loại
Phương pháp tiêu biểu: One-Hot Encoding
o Thực hiện:
1 Xác định các cột dữ liệu phân loại cần mã hóa
2 Sử dụng công cụ (như pandas.get_dummies()) để tạo các cột nhị phân đạidiện cho từng giá trị phân loại
o Ví dụ:
Cột "Giới tính" với giá trị "Nam" và "Nữ":
data = {'Tên': ['A', 'B', 'C'], 'Giới tính': ['Nam', 'Nữ', 'Nam']}
df = pd.DataFrame(data)df_encoded = pd.get_dummies(df, columns=['Giới tính'])print(df_encoded)
Trang 84 Chuẩn hóa và tỷ lệ hóa dữ liệu
Phương pháp tiêu biểu: Chuẩn hóa dữ liệu số
df = pd.DataFrame(data)df['Điểm chuẩn hóa'] = (df['Điểm'] - df['Điểm'].min()) / (df['Điểm'].max() -df['Điểm'].min())
print(df)
Kết quả:
Trang 9Điểm Điểm chuẩn hóa
0 50 0.00
1 75 0.50
2 100 1.00
5 Tích hợp dữ liệu từ nhiều nguồn
Phương pháp tiêu biểu: Gộp dữ liệu dựa trên khóa chính
o Thực hiện:
1 Xác định khóa chính chung giữa các bảng dữ liệu
2 Dùng các công cụ (như pandas.merge() trong Python) để kết hợp dữ liệu
o Ví dụ:
Bảng "Khách hàng" và "Đơn hàng":
customers = {'ID': [1, 2], 'Tên': ['A', 'B']}
orders = {'CustomerID': [1, 2], 'Số lượng': [5, 10]}
df_customers = pd.DataFrame(customers)df_orders = pd.DataFrame(orders)
merged = pd.merge(df_customers, df_orders, left_on='ID',right_on='CustomerID')
Trang 10 Phương pháp tiêu biểu: Vector hóa từ (Word Embedding)
o Thực hiện:
1 Sử dụng thư viện NLP như gensim hoặc spaCy
2 Áp dụng thuật toán như Word2Vec để chuyển đổi văn bản thành vector số
o Ví dụ:
Đoạn văn bản: "Tôi thích học Python."
Sau khi vector hóa:
['Tôi': [0.2, 0.1, 0.3], 'thích': [0.4, 0.6, 0.5], 'học': [0.7, 0.8, 0.9], 'Python':[0.3, 0.5, 0.6]]
2.3 Làm sạch dữ liệu
Làm sạch dữ liệu là một phần không thể thiếu trong quy trình tiền xử lý, đảm bảo dữ liệu đầu vàođạt chất lượng cao để áp dụng vào phân tích hoặc xây dựng mô hình Dưới đây là các nội dung chitiết liên quan đến loại dữ liệu cần xử lý và phương pháp xử lý
1 Các loại dữ liệu cần xử lý
Dữ liệu nhiễu (Noise):
1 Khái niệm: Dữ liệu không liên quan hoặc chứa sai lệch ảnh hưởng đến độ chính
xác của phân tích
2 Ví dụ: Trong dữ liệu cảm biến, giá trị nhiệt độ đột ngột tăng lên 1000°C (không hợp
lý)
Dữ liệu thiếu (Missing Data):
1 Khái niệm: Các giá trị bị bỏ trống trong tập dữ liệu.
2 Ví dụ: Trong dữ liệu khảo sát, một số người không trả lời câu hỏi về "tuổi".
Trang 11Dữ liệu bất thường (Outliers):
1 Khái niệm: Giá trị vượt xa phạm vi thông thường của dữ liệu.
2 Ví dụ: Một giao dịch ngân hàng trị giá 1 triệu USD khi các giao dịch khác chỉ từ
1000 - 10,000 USD
Dữ liệu không nhất quán:
1 Khái niệm: Dữ liệu có định dạng hoặc ý nghĩa không đồng nhất.
2 Ví dụ: "Hà Nội" và "HN" chỉ cùng một địa danh nhưng biểu diễn khác nhau.
Dữ liệu trùng lặp (Duplicate Data):
1 Khái niệm: Các bản ghi lặp lại trong tập dữ liệu.
2 Ví dụ: Một khách hàng xuất hiện hai lần với thông tin giống nhau.
2 Phương pháp làm sạch dữ liệu
Làm sạch dữ liệu là bước quan trọng nhằm loại bỏ các giá trị lỗi, không nhất quán, hoặc thiếu sót
để đảm bảo dữ liệu đạt chất lượng tốt nhất Dưới đây là các phương pháp xử lý chính được trìnhbày với cách thực hiện chi tiết và ví dụ minh họa cho một phương pháp tiêu biểu
2.1 Xử lý dữ liệu nhiễu (Noise)
Phương pháp tiêu biểu: Lọc trung bình (Mean Filter)
o Thực hiện:
1 Xác định khoảng thời gian hoặc phạm vi áp dụng bộ lọc
2 Tính giá trị trung bình của dữ liệu trong phạm vi đã chọn
3 Thay thế giá trị nhiễu bằng giá trị trung bình
o Ví dụ:
Trong dữ liệu cảm biến đo nhiệt độ:
Trang 121 Chuỗi dữ liệu gốc: [20, 21, 1000, 22, 23] (1000 là giá trị nhiễu).
2 Áp dụng lọc trung bình với phạm vi 3 giá trị liền kề:
o Loại bỏ hoàn toàn giá trị nhiễu
2.2 Xử lý dữ liệu thiếu (Missing Data)
Phương pháp tiêu biểu: Điền giá trị trung bình (Mean Imputation)
o Thực hiện:
1 Tính giá trị trung bình của cột dữ liệu có giá trị thiếu
2 Thay thế các giá trị bị thiếu bằng giá trị trung bình vừa tính
o Ví dụ:
Trong tập dữ liệu nhân viên:
Dữ liệu gốc (cột "Lương"): [15, 20, NaN, 25, NaN]
Giá trị trung bình: (15 + 20 + 25) / 3 = 20
Dữ liệu sau xử lý: [15, 20, 20, 25, 20]
Các phương pháp khác:
o Điền giá trị trung vị (Median Imputation)
o Điền giá trị chế độ (Mode Imputation)
Trang 13o Dự đoán giá trị thiếu bằng thuật toán học máy (kNN, hồi quy).
2.3 Xử lý dữ liệu bất thường (Outliers)
Phương pháp tiêu biểu: Khoảng tứ phân vị (IQR Method)
o Thực hiện:
1 Tính các giá trị Q1 (phân vị thứ nhất) và Q3 (phân vị thứ ba)
2 Tính khoảng tứ phân vị: IQR = Q3 - Q1
3 Xác định giới hạn:
Giới hạn dưới: Q1 - 1.5 * IQR.
Giới hạn trên: Q3 + 1.5 * IQR.
4 Loại bỏ các giá trị nằm ngoài giới hạn
o Sử dụng thuật toán phát hiện bất thường (Isolation Forest, DBSCAN)
o Gắn cờ các giá trị bất thường để kiểm tra thủ công
2.4 Xử lý dữ liệu không nhất quán
Phương pháp tiêu biểu: Chuẩn hóa định dạng (Standardization)
Trang 14o Thực hiện:
1 Xác định các mẫu không nhất quán trong dữ liệu
2 Quy đổi các mẫu đó về một định dạng chuẩn
o Ánh xạ giá trị bằng bảng quy đổi
o Sử dụng công cụ tự động phát hiện mẫu không nhất quán
2.5 Xử lý dữ liệu trùng lặp (Duplicate Data)
Phương pháp tiêu biểu: Loại bỏ bản ghi trùng (Remove Duplicates)
Trang 15o Sử dụng thuật toán phát hiện trùng lặp gần (Fuzzy Matching).
2.4 Thu gọn và chuyển đổi dữ liệu
Thu gọn và chuyển đổi dữ liệu là bước quan trọng trong tiền xử lý, giúp giảm kích thước dữ liệu,tối ưu hóa tài nguyên tính toán, và chuyển đổi dữ liệu thô thành dạng dễ phân tích hơn Quá trìnhnày tập trung vào việc trích xuất các đặc trưng quan trọng và tổ chức dữ liệu theo cách phù hợpvới mục tiêu phân tích
1 Thu gọn dữ liệu
Tập dữ liệu được biến đổi đảm bảo các toàn vẹn, nhưng nhỏ hoặc ít hơn nhiều về số lượng dữ liệu
so với ban đầu
Có 5 chiến lược thu gọn dữ liệu:
Kết hợp khối dữ liệu (data cube aggregation)
Lựa chọn tập thuộc tính (Attribute subset selection)
Giảm số chiều dữ liệu (Dimensionality reduction)
Giảm biểu diễn số lớn (Numerosity reduction)
Rời rạc hóa dữ liệu (discretization) và tạo lược đồ khái niệm (concept hierarchygeneration)
Trang 16Kết hợp khối dữ liệu (data cube aggregation): Các thao tác gộp nhóm sẽ được áp dụng trên dữ
liệu để tạo ra một data cube
Dạng dữ liệu: additive, semi-additive (numerical)
Kết hợp dữ liệu bằng các hàm nhóm: average, min, max, sum, count, …
Dữ liệu ở các mức trừu tượng khác nhau Mức trừu tượng càng cao giúp thu giảm lượng dữ liệucàng nhiều
Lựa chọn tập thuộc tính (Attribute subset selection): Các thuộc tính thừa hoặc không thích
hợp sẽ được phát hiện và loại bỏ
Giảm kích thước tập dữ liệu bằng việc loại bỏ những thuộc tính/chiều/đặc trưng dư thừa
Mục tiêu: tập ít các thuộc tính nhất vẫn đảm bảo phân bố xác suất (probability distribution)của các lớp dữ liệu đạt được gần với phân bố xác suất ban đầu với tất cả các thuộc tính
Trang 17Giảm số chiều dữ liệu (Dimensionality reduction): Các cơ chế mã hóa (encoding) sẽ được áp
dụng để làm giảm kích thước dữ liệu
Rời rạc hóa dữ liệu (discretization) và tạo lược đồ khái niệm (concept hierarchy generation):
Trang 18 Các giá trị dữ liệu thô ứng với các thuộc tính được thay thế bằng các khoảng (range) hoặccác mức khái niệm (conceptual levels) cao hơn.
Rời rạc hóa dữ liệu được xem là một dạng thức của việc giảm biểu diễn số lớn và rất hữudụng trong việc tạo lược đồ khái niệm
Rời rạc hóa dữ liệu và tạo lược đồ khái niệm được xem là những công cụ mạnh mẽ cho khaiphá dữ liệu Chúng cho phép thực hiện công việc khai phá ở những cấp độ trừu tượng khácnhau
Các trị thuộc tính có thể được phân hoạch theo một phân cấp (hierarchical) hay ở nhiềumức phân giải khác nhau (multiresolution)
Dữ liệu đạt được có ý nghĩa và dễ được diễn dịch hơn, đòi hỏi ít không gian lưu trữ hơn.
Các phương pháp rời rạc hóa dữ liệu cho các thuộc tính số:
o Phân nhóm (Binning)
o Phân tích biểu đồ tần suất (Histogram analysis)
o Gộp khoảng dựa trên kiểm định ² 𝜒
(Interval merging by 2 analysis)
o Phân tích cụm (Cluster analysis)
o Rời rạc hóa dựa trên Entropy (Entropy-based discretization)
Dữ liệu được chuyển đổi hoặc hợp nhất thành các dạng phù hợp cho việc khai phá Chuyển dạng
dữ liệu liên quan tới các vấn đề sau đây:
Làm trơn (Smoothing): Loại bỏ các nhiễu (noisy) khỏi dữ liệu Các kỹ thuật sử dụng bao
gồm: đóng thùng (binning), hồi quy (regression), phân cụm (clustering)
Gộp nhóm (Aggregation): Các thao tác tóm tắt hay gộp nhóm được áp dụng với dữ liệu.
Chuyển dữ liệu ở mức chi tiết này sang dữ liệu ở mức kém chi tiết hơn Hỗ trợ việc phântích dữ liệu ở nhiều độ mịn thời gian khác nhau Bước này thường được sử dụng để xâydựng data cube cho phân tích dữ liệu từ nhiều nguồn
Khởi tạo dữ liệu (Generalization of the data): Dữ liệu thô được thay thế bởi các khái
niệm ở mức cao hơn thông qua việc sử dụng lược đồ khái niệm
Trang 19 Xây dựng thuộc tính (Attribute construction): Các thuộc tính mới được xây dựng và
thêm vào từ tập thuộc tính đã có sẵn để hỗ trợ quá trình khai phá (tăng độ chính xác và sự
dễ hiểu của cấu trúc trong dữ liệu theo nhiều chiều (high-dimensional data)) Bằng cáchkết hợp các thuộc tính, phát hiện ra các thông tin bị thiếu liên quan đến mối quan hệ giữacác thuộc tính dữ liệu (hữu ích cho quá trình khai phá)
Chuẩn hóa (Normalization): Dữ liệu thuộc tính được chuyển đổi tương ứng với các
phạm vi biểu diễn nhỏ hơn như [-1,1] hoặc [0,1] (một miền trị nhất định được định nghĩatrước)
⮕Chuẩn hóa min-max: thực hiện việc chuyển đổi tuyến tính dựa trên dữ liệu gốc Gọi minA,
maxA là giá trị lớn nhất và nhỏ nhất của thuộc tính A Chuẩn hóa min-max sẽ ánh xạ một giá trị vcủa A tương ứng với một giá trị v’ trong khoảng [new minA, new maxA] thông qua công thức:
⮕Chuẩn hóa z-score: các giá trị ứng với thuộc tính A được chuẩn hóa dựa trên giá trị trung bình
và độ lệch chuẩn của A Một giá trị v của A sẽ được chuẩn hóa tương ứng với một giá trị v’ thôngqua công thức:
Trang 20Chuẩn hóa z-score rất hữu dụng khi:
Không biết giá trị lớn nhất và nhỏ nhất thực tế của thuộc tính A
Các giá trị kỳ dị (outliers) chi phối chuẩn hóa min-max
⮕Chuẩn hóa thập phân (decimal scaling): dịch chuyển dấu phẩy thập phân của các giá trị ứng với
thuộc tính A Số vị trí di chuyển phụ thuộc vào giá trị tuyệt đối lớn nhất của A Một giá trị v của Ađược chuẩn hóa thập phân tương ứng với một giá trị v’ theo công thức
Phương pháp tiêu biểu: Tổng hợp dữ liệu (Data Aggregation)
Mô tả: Kết hợp các giá trị trong tập dữ liệu dựa trên một hoặc nhiều thuộc tính để tạo ra tập
dữ liệu nhỏ hơn nhưng vẫn giữ được ý nghĩa chính
Thực hiện:
1 Xác định các cột hoặc thuộc tính cần tổng hợp
2 Chọn hàm tổng hợp phù hợp, như trung bình, tổng, hoặc đếm