Tải bản đầy đủ (.pdf) (81 trang)

ĐỀ TÀI TIỀN XỬ LÝ DỮ LIỆU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (704.05 KB, 81 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
PHẠM QUỲNH NGA – 0512030
HOÀNG TRỌNG NGHĨA – 0512031
HỒ TRẦN NHẬT THỦY – 0512046
ĐỒ ÁN MÔN HỌC
KHAI THÁC DỮ LIỆU VÀ ỨNG DỤNG
ĐỀ TÀI : TIỀN XỬ LÝ DỮ LIỆU
DỰA TRÊN TÀI LIỆU :
Data Mining: Concepts and Techniques, Jiawei Han
TP.HCM – 01/2008
Mục lục
Mục lục 2
Danh sách các hình 3
Tóm tắt nội dung đồ án 4
Tiền xử lý dữ liệu 4
Phần 2.1. Tại sao phải tiền xử lý dữ liệu? 4
2.1.1 Dữ liệu trong thế giới thực không “sạch” : 4
2.1.2 Tại sao dữ liệu không “sạch” ? 4
2.1.3 Tại sao quá trình tiền xử lý dữ liệu lại quan trọng? 6
2.1.4 Những nhiệm vụ chính trong quá trình tiền xử lý dữ liệu: 7
Phần 2.2. Tóm tắt dữ liệu 8
2.2.1 Đo lường giá trị trung tâm 9
2.2.2 Đo lường sự phân tán dữ liệu 14
2.2.3 Các dạng đồ thị 17
Phần 2.3. Làm sạch dữ liệu (data cleaning) 25
2.3.1 Dữ liệu bị thiếu (missing) 25
2.3.2 Dữ liệu bị nhiễu (noisy) 28
2.3.3 Tiến trình làm sạch dữ liệu: 31
Phần 2.4. Tích hợp và chuyển đổi dữ liệu 34


2.4.1 Tích hợp dữ liệu (Data Integration) 35
2.4.2 Chuyển đổi dữ liệu (Data transformation) 40
Phần 2.5. Thu gọn dữ liệu 43
2.5.1 Lựa chọn tập thuộc tính 44
2.5.2 Giảm chiều dữ liệu 48
2.5.2.1 Wavelet Transform 48
2.5.2.2 Principle Component Analysis 51
2.5.3 Giảm kích thước tập dữ liệu 58
2.5.3.1 Regression 58
2.5.3.2 Log-Linear 60
2.5.3.3 Gaussian Mixture Models 62
2.5.3.4 K-Means Clustering 67
2.5.3.5 Fuzzy C-Means Clustering 68
2.5.3.6 Hierachical Clustering 70
Phần 2.6. Tổng kết 72
Phần 2.7. Giải một số bài tập 73
2
Danh sách các hình
Hình 2.1Những nhiệm vụ chính trong quá trình tiền xử lý dữ liệu 8
Hình 2.2Dữ liệu đối xứng 13
Hình 2.3Dữ liệu lệch trái 13
Hình 2.4Dữ liệu lệch phải 14
Hình 2.5Boxplot biểu diễn dữ liệu đơn giá cho các mặt hàng bán tại
AllElectronics 16
Hình 2.6Histogram 19
Hình 2.7Quantile plot 20
Hình 2.8Qq plot 21
Hình 2.9Scatter plot – trường hợp có sự tương quan 22
Hình 2.10Scatter plot – trường hợp không có sự tương quan 23
Hình 2.11Scatter plot 24

Hình 2.12Đường cong hồi qui cục bộ 24
Hình 2.13Minh họa kỹ thuật hồi qui 30
Hình 2.14Minh họa kỹ thuật clustering 31
Hình 2.15 Forward Selection 46
Hình 2.16 Backward Elimination 46
Hình 2.17Decision Tree Induction 47
Hình 2.18Đồ thị biểu diễn các mẫu dữ liệu hai chiều sau khi chuẩn hoá.53
Hình 2.19 Mean adjust data with eigenvectors 56
Hình 2.20Data Table 59
Hình 2.21 Mixture of Gaussian Distribution 63
Hình 2.22Mã giả của thuật toán EM 65
Hình 2.23Sơ đồ thuật toán Fuzzy C-Means Clustering 69
Hình 2.24Bảng độ đo khoảng cách giữa các mẫu dữ liệu 70
Hình 2.25Lược đồ thể hiện cây gom nhóm (clustering tree) 71
Hình 2.26Phân nhóm bằng cách loại bỏ link” dài” nhất 71
Hình 2.27Đồ thị biểu diễn tương quan giữa 2 biến Tuổi – %Mỡ 75
Hình 2.28Boxplot biểu diễn dữ liệu 79
3
Tóm tắt nội dung đồ án
Đồ án trình bày các vấn đề liên quan đến tiền xử lý dữ liệu, bao gồm nguyên
nhân, tầm quan trọng và các kỹ thuật tiền xử lý cần thiết. Tiền xử lý dữ liệu là công
việc khá vất vả, tốn nhiều thời gian và công sức nhưng không thể không làm, vì dữ
liệu từ thế giới thực thường có chất lượng thấp, làm ảnh hưởng nhiều đến quá trình
khai thác dữ liệu. Thực hiện tốt công đoạn tiền xử lý sẽ làm tăng tốc độ cũng như
tăng chất lượng của quá trình khai thác dữ liệu.
Tiền xử lý dữ liệu
Phần 2.1. Tại sao phải tiền xử lý dữ liệu?
2.1.1 Dữ liệu trong thế giới thực không “sạch” :
- Không hoàn chỉnh (incomplete): thiếu giá trị thuộc tính, thiếu những thuộc
tính quan trọng…

Ví dụ: occupation = “”…
- Nhiễu (noisy): dữ liệu bị lỗi hoặc dữ liệu nằm ngoài miền giá trị…
Ví dụ: salary = “-10”
- Không nhất quán (inconsistent): không nhất quán trong cách đặt tên…
Ví dụ: Age = “42”, Birthday = “03/07/1997”, hay định dạng dữ liệu không
giống nhau ví dụ: thuộc tính rank (lúc được định dạng theo kiểu A, B, C,…
khi lại được định dạng theo kiểu số 1, 2, 3,…)
2.1.2 Tại sao dữ liệu không “sạch” ?
- Dữ liệu không hoàn chỉnh có thể xảy ra vì một số nguyên nhân:
4
o Một vài thuộc tính quan trọng không được cung cấp. Ví dụ: thông tin
khách hàng đối với giao dịch bán hàng vì lý do cá nhân có thể khách
hàng không muốn cung cấp thông tin của họ, hay thuộc tính mã số
bằng lái xe đối với người không có bằng lái xe họ không thể cung cấp
thông tin được yêu cầu…
o Một số dữ liệu không được chọn lựa đơn giản bởi vì nó không được
xem làm quan trọng tại thời điểm nhập dữ liệu. Hay nói cách khác
việc xem xét dữ liệu tại thời điểm nhập dữ liệu và thời điểm phân tích
là khác nhau.
o Vấn đề con người/ phần mềm/ phần cứng.
o Dữ liệu không nhất quán với những dữ liệu đã được lưu trước đó có
thể bị xóa dẫn đến việc mất mát dữ liệu.
- Dữ liệu nhiễu có thể xảy ra vì một số nguyên nhân:
o Công cụ lựa chọn dữ liệu được sử dụng bị lỗi.
o Lỗi do con người hay máy tính lúc ghi chép dữ liệu.
o Lỗi trong quá trình truyền tải dữ liệu.
o Giới hạn về công nghệ như là kích thước buffer bị giới hạn trong quá
trình truyền, nhận dữ liệu…
o Dữ liệu không chính xác cũng có thể là do không nhất quán trong việc
đặt tên, định dạng dữ liệu. Ví dụ thuộc tính date nếu được định dạng

theo kiểu mm/dd/yyyy thì giá trị 20/11/2007 tại một bộ nào đó có thể
bị xem là giá trị nhiễu…
- Dữ liệu không nhất quán có thể là do:
o Dữ liệu được tập hợp từ nhiều nguồn khác nhau.
5
o Vài thuộc tính được biểu diễn bằng những tên khác nhau trong cơ sở
dữ liệu. Ví dụ: thuộc tính customer indentification có thể là
customer_id trong cơ sở dữ liệu này nhưng là cust_id trong cơ sở dữ
liệu khác.
o Vi phạm phụ thuộc hàm.
2.1.3 Tại sao quá trình tiền xử lý dữ liệu lại quan trọng?
- Quá trình làm sạch dữ liệu sẽ lắp đầy những giá trị bị thiếu, làm mịn các dữ
liệu nhiễu, xác định và xóa bỏ những dữ liệu sai miền giá trị, và giải quyết
vấn đề không nhất quán.
- Nếu người dùng cho rằng dữ liệu là dơ thì họ sẽ không tin tưởng vào bất kỳ
kết quả khai thác nào từ dữ liệu đó.
- Ngoài ra, dữ liệu dơ có thể là nguyên nhân gây ra sự lộn xộn trong quá trình
khai thác, cho ra kết quả không đáng tin. Việc có một số lượng lớn dữ liệu dư
thừa có thể làm giảm tốc độ và làm hỗn loạn quá trình tìm kiếm tri thức.
- Rõ ràng, việc thêm vào quá trình làm sạch dữ liệu giúp chúng ta tránh những
dữ liệu dư thừa không cần thiết trong quá trình phân tích dữ liệu.
- Làm sạch dữ liệu là một bước quan trọng trong quá trình tìm kiếm tri thức vì
dữ liệu không có chất lượng thì kết quả khai thác cũng không có chất lượng.
Những quyết định có chất lượng phải dựa trên dữ liệu có chất lượng. Ví dụ:
dữ liệu trùng lắp hoặc bị thiếu có thể là nguyên nhân làm sai số liệu thống kê.
- Quá trình làm giàu dữ liệu, làm sạch dữ liệu và mã hóa dữ liệu có vai trò
quan trọng trong việc xây dựng data warehouse.
Những tiêu chuẩn xác định dữ liệu có chất lượng:
- Độ chính xác
- Độ hoàn chỉnh

6
- Tính nhất quán
- Hợp thời
- Đáng tin
- Có giá trị
- Có thể hiểu được
- Có thể dùng được
2.1.4 Những nhiệm vụ chính trong quá trình tiền xử lý dữ liệu:
- Làm sạch dữ liệu (Data cleaning): Thêm vào những giá trị bị thiếu, làm mịn
dữ liệu, nhận biết hoặc xóa những dữ liệu sai miền giá trị và giải quyết sự
không nhất quán.
- Tích hợp dữ liệu (Data integration): Kết hợp nhiều cơ sở dữ liệu, khối dữ liệu
hoặc từ nhiều file.
- Chuyển hóa dữ liệu (Data transformation): Chuẩn hóa và kết hợp dữ liệu.
- Thu gọn dữ liệu (Data reduction): Giảm bớt kích thước dữ liệu nhưng vẫn
cho ra kết quả phân tích tương tự. Một dạng của thu gọn dữ liệu là rời rạc
hóa dữ liệu (Data discretization), rất có ích cho việc phát sinh tự động khái
niệm hệ thống thứ bậc từ dữ liệu số.
7
Hình 2.1 Những nhiệm vụ chính trong quá trình tiền xử lý dữ liệu
Phần 2.2. Tóm tắt dữ liệu
Để quá trình tiền xử lý dữ liệu thành công cần phải có bức tranh toàn diện về
dữ liệu của bạn. Kỹ thuật tóm tắt dữ liệu (Descriptive data summarization) có thể
được sử dụng để nhận biết những thuộc tính đặc trưng của dữ liệu và nêu bật những
chỗ mà giá trị dữ liệu được coi như là nhiễu (noisy) hay là những phần tử cá biệt
(outliers). Vì vậy, đầu tiên chúng ta giới thiệu những khái niệm cơ bản của tóm tắt
dữ liệu trước khi đi vào những công việc cụ thể của kỹ thuật tiền xử lý dữ liệu.
Đối với nhiều nhiệm vụ tiền xử lý dữ liệu, người sử dụng cần biết về những
đặc điểm dữ liệu đối với giá trị trung tâm và sự phân tán của dữ liệu. Những tiêu
chuẩn đánh giá giá trị trung tâm bao gồm mean, median, mode và midrange, những

tiêu chuẩn đánh giá sự phân tán dữ liệu bao gồm quartile, interquartile range (IQR)
và variance. Những thống kê miêu tả này giúp ích trong việc hiểu sự phân bố của dữ
liệu. Đặc biệt là giới thiệu những khái niệm distributive measure, algebraic measure
8
và holistic measure. Biết được các cách đo khác nhau sẽ giúp chúng ta chọn được
một cách thực hiện hiệu quả cho nó.
2.2.1 Đo lường giá trị trung tâm
Trong phần này, chúng ta sẽ xem những cách khác nhau để đo giá trị trung
tâm của dữ liệu. Cách phổ biến nhất và hiệu quả nhất để đo giá trị trung tâm của
một tập hợp dữ liệu là mean. Đặt x
1
, x
2
, …, x
N
là một tập hợp N giá trị, ví dụ là
những giá trị của thuộc tính như salary (lương). Mean của tập hợp những giá trị đó
là:
N
xxx
x
N
x
N
N
i
i
+++
==


=

1
21
1
(2.1)
Tương ứng với cách đo này là xây dựng hàm hợp average (avg() trong SQL), được
cung cấp trong những hệ thống cơ sở dữ liệu quan hệ.
Distributive measure là cách đo mà có thể được tính cho một tập hợp dữ liệu
bằng cách phân chia dữ liệu vào những tập con nhỏ hơn, tính toán cho mỗi tập con
và sau đó trộn kết quả có được để đạt được giá trị đo lường cho tập dữ liệu bao đầu
(toàn bộ dữ liệu). Sum() và count() là những distributive measure bởi vì chúng có
thể được tính theo cách đó. Ví dụ khác là max() và min(). Algebraic measure là
cách đo mà có thể được tính bằng cách áp dụng một hàm đại số cho một hoặc nhiều
hơn một distributive measure. Theo đó, average (hay mean()) là một algebraic
measure vì nó có thể được tính bằng sum() / count(). Khi tính toán cho khối dữ liệu,
sum() và count() được bảo lưu trong tiền tính toán. Vì vậy, việc rút ra average cho
khối dữ liệu là dễ hiểu.
Thỉnh thoảng, mỗi giá trị x
i
trong một tập hợp có thể liên kết với một trọng
lượng (tần số) w
i
, với i = 1,…, N. Trọng lượng phản ánh ý nghĩa, sự quan trọng
hoặc tần số xảy ra gắn với những giá trị tương tứng của chúng. Trong trường hợp
này, chúng ta có thể tính:
9
N
NN
N

i
i
N
i
ii
www
xwxwxw
w
xw
x
+++
+++
==


=
=


21
2211
1
1
(2.2)
Cách đo này được gọi là weighted arithmetic mean hay weighted average.
Lưu ý rằng weighted average là một ví dụ khác của algebraic measure.
Mặc dù mean là một con số hữu ích nhất cho việc mô tả một tập dữ liệu,
nhưng nó không phải là cách tốt nhất để đo giá trị trung tâm của dữ liệu. Một vấn đề
lớn với mean là tính nhạy cảm của nó với những giá trị cá biệt (outliers). Thậm chí
một số lượng nhỏ những giá trị cá biệt cũng có thể làm sai lệch mean. Ví dụ, lương

trung bình tại một công ty có thể bị đẩy lên bằng một vài người quản lý được trả
lương cao. Tương tự, số điểm trung bình của một lớp trong một kỳ thi có thể bị đẩy
xuống thấp với một vài điểm số rất thấp. Để giải quyết ảnh hưởng gây ra bởi những
giá trị cá biệt, chúng ta có thể sử dụng thay thế bằng cách dùng trimmed mean,
nghĩa là mean được tính sau khi cắt bỏ những giá trị cá biệt. Ví dụ, chúng ta có thể
sắp xếp dữ liệu salary theo thứ tự và xóa bỏ 2% những giá trị ở trên và 2% ở dưới
trước khi tính mean. Chúng ta nên tránh việc cắt bỏ một phần quá lớn dữ liệu
(chẳng hạn 20%) ở cả phần đầu và cuối vì điều đó có thể làm mất những thông tin
có giá trị. Ví dụ: ta có dữ liệu cho thuộc tính tuổi như sau: 3, 13, 15, 16, 19, 20, 21,
25, 40. Để tính trimmed mean, đầu tiên ta cắt bỏ đi ở hai đầu một số giá trị, trong
trường hợp này ta sẽ cắt bỏ ở mẫu đầu một giá trị, như vậy các giá trị còn lại là: 13,
15, 16, 19, 20, 21, 25. Từ đó ta sẽ tính mean cho nhưng giá trị còn lại này.
Đối với dữ liệu bị lệch, một cách đo tốt hơn cho trung tâm của dữ liệu là
median. Giả sử rằng tập dữ liệu được cho có N có giá trị phân biệt được sắp xếp
theo thứ tự tăng dần. Nếu N là lẻ, thì median là giá trị chính giữa của tập dữ liệu có
thứ tự. Ngược lại, nếu N chẵn, thì median là trung bình của hai giá trị chính giữa.
Ví dụ: ta xét lại ví dụ về thuộc tính tuổi trước đó
10
- Nếu tập hợp các giá trị của thuộc tính tuổi là: 13, 15, 16, 19, 20, 21, 25.
Trong trường hợp này tập hợp có 7 giá trị, như vậy median là giá trị của
phần tử chính giữa, tức là median = 19.
- Nếu tập hợp các giá trị của thuộc tính tuổi là: 13, 15, 16, 18, 20, 21, 25,
30. Trong trường hợp này tập hợp có 8 giá trị, như vậy median là trung
bình của 2 phần tử chính giữa, tức là median = (18 + 20)/2 = 19.
Holistic measure là cách đo mà có thể được tính trên toàn bộ tập dữ liệu. Nó
không thể được tính bằng cách phân chia dữ liệu thành những tập con và trộn những
giá trị đạt được khi đo lường từng tập con. Median là một ví dụ của holistic
measure. Holistic measure thì tốn chi phí để tính hơn distributive measure.
Tuy nhiên, chúng ta có thể xấp xỉ một cách dễ dàng giá trị median của tập dữ
liệu. Giả sử dữ liệu được nhóm trong những khoảng theo giá trị x

i
của chúng, và
biết tần số (số lượng giá trị dữ liệu) của từng khoảng. Ví dụ, con người được nhóm
theo lương hằng năm của họ trong những khoảng như là 10 – 20K, 20 – 30K, ….
Đặt khoảng mà chứa tần số median là median interval. Chúng ta có thể xấp xỉ
median của toàn bộ tập dữ liệu bằng cách dùng công thức :
( )
width
freq
freqN
Lmedian
median
l









+=

2/
1
(2.3)
với L
1
là chặn dưới của median interval, N là số lượng giá trị trong toàn bộ tập dữ

liệu, (∑freq )
l
là tổng tần số của tất cả các khoảng mà thấp hơn median interval,
freq
median
là tần số của median interval và width là chiều rộng của median interval.
Ví dụ: ta có dữ liệu của thuộc tính tuổi được chia theo từng khoảng và có tần
số tương ứng như sau:
Tuổi Tần số
1 – 5 200
5 – 15 450
15 – 20 300
20 – 50 1500
11
50 – 80 700
Giá trị median của tần số là 450, như vậy median interval là khoảng 5 – 15, freq
median
= 450, width = 15 – 5 = 10, L
1
= 5 (chặn dưới của khoảng 5 – 15), N = 1350 (số
lượng các giá trị), (∑freq )
l
= freq
1- 5
= 200 (vì chỉ có một khoảng thấp hơn khoảng
5 – 15 là khoảng 1 – 5). Như vậy median trong giá trị là:
3510
450
2002/3150
5









+=
median
Một cách đo khác của giá trị trung tâm là mode. Mode của một tập dữ liệu là
giá trị xảy ra với tần số lớn nhất. Có thể tần số lớn nhất tương tứng với nhiều giá trị
khác nhau, khi đó có nhiều hơn một mode. Tập dữ liệu với một, hai, ba mode lần
lượt được gọi là unimodal, bimodal, trimodal. Tổng quát, một tập dữ liệu có hai
hoặc nhiều hơn mode được gọi là multimodal. Trường hợp đặc biệt, nếu mỗi giá trị
xảy ra chỉ một lần, thì trường hợp này không có mode.
Đối với tần số unimodal có đường cong lệch vừa phải (không đối xứng),
chúng ta có quan hệ sau:
Mean – mode = 3 x (mean – median) (2.4)
Điều đó có nghĩa là mode cho đường cong tần số unimodal lệch vừa phải có
thể tính dễ dàng nếu biết giá trị mean và median.
Trong một đường cong tần số unimodal với phân bố dữ liệu đối xứng hoàn
toàn, mean, median, mode là cùng một giá trị trung tâm như hình 2.2. Tuy nhiên dữ
liệu trong thực tế hầu hết đều không đối xứng. Chúng có thể lệch dương, mode xảy
ra tại giá trị nhỏ hơn median hình 2.3; hoặc lệch âm, mode xảy ra tại giá trị lớn hơn
median hình 2.4.
Midrange cũng có thể được dùng để tính giá trị trung tâm của tập dữ liệu.
Nó là trung bình giá trị lớn nhất và giá trị nhỏ nhất trong tập hợp.
Ví dụ: ta xét lại ví dụ về thuộc tính tuổi trước đó 13, 15, 16, 18, 20, 21, 25.
Midrange = (13 + 25)/2 = 19.

12
Hình 2.2 Dữ liệu đối xứng
Hình 2.3 Dữ liệu lệch trái
13
Hình 2.4 Dữ liệu lệch phải
2.2.2 Đo lường sự phân tán dữ liệu
Mức độ mà dữ liệu số có khuynh hướng trải ra được gọi là sự phân tán, sự
dao động của dữ liệu. Những cách đo phổ biến nhất cho sự phân tán của dữ liệu là
range, five-number summary (dựa vào quartiles), interquartile range và standard
deviration (độ lệch chuẩn). Boxplots là biểu đồ có thể vẽ được dựa vào five-number
summary và là một công cụ hiệu quả cho việc xác định những phần tử cá biệt
(outliers).
Range, Quartiles, Outliers và Boxplots
Đặt x
1
, x
2
, …, x
N
là một tập hợp giá trị cho một thuộc tính nào đó. Phạm vi
của dữ liệu từ giá trị nhỏ nhất (min()) đến giá trị lớn nhất (max()). Giả sử dữ liệu
được sắp xếp theo thứ tự số tăng dần.
Percentile thứ k của tập dữ liệu được sắp xếp là giá trị x
i
mà có k% dữ liệu
bằng hoặc nhỏ hơn x
i
. Median là percentile thứ 50.
Ví dụ: Nếu có 30% số phần tử của thuộc tính tuổi nhỏ hơn hay bằng giá trị
20 thì percentile thứ 30 sẽ bằng giá trị 20.

14
Những percentile được dùng phổ biến hơn median là quartiles. Quartile đầu
tiên Q
1
là percentile thứ 25, quartile thứ 3 Q
3
là percentile thứ 75. Những quartile,
bao gồm cả median, đưa ra vài số chỉ của giá trị trung tâm, sự trải dài, và hình dạng
của sự phân bố. Khoảng cách giữa quartile thứ nhất và thứ ba là cách đo đơn giản
cho mức độ trải dài. Khoảng cách đó được gọi là interquartile range (IQR), và
được xác định như sau:
IQR = Q
3
– Q
1
. (2.5)
Dựa vào nguyên nhân tương tự khi chúng ta phân tích median trong phần
2.2.1, Q
1
và Q
3
là holistic measure.
Một qui luật phổ biến cho việc xác định những phần tử cá biệt khả nghi là
xem những giá trị đó có nằm bên ngoài ít nhất là khoảng 1.5xIQR phía trên quartile
thứ ba và phía dưới quartile thứ nhất (tức là một phần tử được xem là cá biệt nếu giá
trị của nó lớn hơn Q
3
+ 1.5xIQR hay nhỏ hơn Q
1
– 1.5xIQR).

Ví dụ:
- Nếu Q
1
= 60, Q
3
= 100, như vậy IQR = Q
3
– Q
1
= 40
- Xét phần tử 175: vì 175 > Q
3
+ 1.5xIQR nên 175 là phần tử cá biệt.
Vì Q
1
, median và Q
3
đều không chứa thông tin về những điểm đầu cuối của
dữ liệu, một tóm tắt đầy đủ hơn về hình dạng của dữ liệu có thể đạt được bằng cách
cung cấp giá trị thấp nhất và giá trị cao nhất. Đó là five-number summary. Five
number summary của sự phân bố bao gồm median, quartile thứ nhất, thứ ba và giá
trị lớn nhất, nhỏ nhất được viết theo thứ tự : Minium, Q
1
, Median,Q
3
, Maximum.
200
Age
30%
Percentile thứ 30 = 20

15
Boxplots là cách phổ biến để biểu diễn sự phân bố của dữ liệu. Boxplot biểu
diễn five-number summary như sau:
Hình 2.5 Boxplot biểu diễn dữ liệu đơn giá cho các mặt hàng bán tại AllElectronics
• Đầu cuối của hộp là những quartile Q
1
và Q
3
, vì vậy chiều dài hộp bằng
IQR.
• Median được đánh dấu bằng một nằm đường ngang bên trong hộp.
• Hai đường thẳng bên ngoài hộp (hay còn lại là whiskers) kéo dài đến giá trị
nhỏ nhất (minimum) và giá trị lớn nhất (maximum).
Để giải quyết những phần tử cá biệt trong boxplot, hai đường thẳng bên ngoài
hộp được kéo dài đến những giá trị cực nhỏ hoặc cực lớn nếu và chỉ nếu những giá
trị đó nằm trong khoảng 1.5xIQR tính từ những quartile. Hai đường thẳng nằm bên
ngoài hộp kết thúc tại giá trị lớn nhất hoặc nhỏ nhất nằm trong khoảng 1.5xIQR của
quartiles. Những trường hợp còn lại sẽ được biểu diễn riêng lẻ. Boxplot có thể được
sử dụng để so sánh những tập hợp dữ liệu tương thích với nhau.
Ví dụ: Hình 2.5 cho thấy những boxplot biểu diễn dữ liệu đơn giá cho một
vài mặt hàng được bán tại các chi nhánh của AllElectronics trong khoảng thời gian
Branch 2
200
100
120
Branch 1
180
160
140
60

40
80
20
Unit price ($)
16
được cho. Với chi nhánh 1, chúng ta thấy giá trị median là 80$, Q
1
là 60$, Q
3

100$. Chú ý hai giá trị nằm ngoài vùng 1.5xIQR được biểu diễn riêng lẻ là 172 và
202. Đó là những phần tử cá biệt.
Phương sai và độ lệch chuẩn
Phương sai của N giá trị x
1
, x
2
, …, x
n

( )






−=−=
∑ ∑∑
==

N
i
ii
N
i
i
x
N
x
N
xx
N
1
2
2
1
22
11
)(
1
σ
(2.6)
với
x
là giá trị mean được định nghĩa trong phương trình (2.1). Độ lệch chuẩn σ là
căn bậc hai của phương sai σ
2
.
Những tính chất cơ bản của độ lệch chuẩn là:
- σ đo mức độ trải dài so với mean, nên được dùng chỉ khi mean được chọn

là giá trị trung tâm.
- σ = 0 khi không có độ trải, khi tất cả các số có cùng giá trị. Ngược lại σ >
0.
Phương sai và độ lệch chuẩn là những algebraic measure vì chúng có thể
được tính từ distributive measures. Đó là, N ( count() trong SQL), Σx
i
( sum() của
x
i
) và Σx
i
2
(sum() của x
i
2
) có thể được tính trong bất kỳ partition nào và sau đó được
trộn để cho ra phương trình (2.6). Vì vậy, việc tính toán phương sai và độ lệch
chuẩn là có thể trong những cơ sở dữ liệu lớn.
2.2.3 Các dạng đồ thị
Bên cạnh bar chart, pie chart, line graph, vốn được sử dụng nhiều trong việc
biểu diễn các dữ liệu đồ thị hoặc thống kê, thì còn có nhiều dạng đồ thị khác dùng
để thể hiện thông tin tóm tắt và sự phân bố của dữ liệu. Chúng bao gồm histogram,
quantile plot, qq plot, scatter plot và loess curve. Những đồ thị như vậy rất có ích
trong việc xem xét, kiểm tra dữ liệu 1 cách trực quan.
17
Biểu đồ histogram, hay còn gọi là biểu đồ tần suất (frequency histogram) là
một phương pháp trực quan để thể hiện tóm tắt sự phân bố của một thuộc tính cho
trước. Một histogram cho thuộc tính A sẽ phân hoạch dữ liệu của A vào những tập
con rời nhau, được gọi là bucket. Trong trường hợp điển hình, chiều rộng của các
bucket này là bằng nhau (uniform – đều). Mỗi bucket được biểu diễn bằng 1 hình

chữ nhật có chiều cao bằng với số lượng hoặc tần suất của các giá trị nằm trong
bucket đó. Nếu các giá trị của A là rời rạc, ví dụ như tên_các_loại_ô_tô, thì một
hình chữ nhật sẽ biểu diễn cho 1 loại giá trị củA, và đồ thị kết quả thông thường sẽ
được gọi là bar chart (biểu đồ cột). Trong trường hợp các giá trị của A là số thì
người ta thường gọi đó là histogram. Các luật phân hoạch dùng trong việc xây dựng
histogram cho các thuộc tính số sẽ được trình bày tại phần 2.5.4. Trong 1 histogram
mà các bucket có chiều rộng bằng nhau, mỗi bucket sẽ biểu diễn một khoảng giá trị
bằng nhau của thuộc tính số A.
Giá 1 đơn vị sản phẩm Số sản phẩm bán được
40 275
43 300
47 250
… …
74 360
75 515
78 540
… …
115 320
117 270
120 350
Bảng 2.1
Hình 2.6 biểu diễn 1 histogram cho dữ liệu ở bảng 2.1, trong đó các bucket
được định nghĩa bởi các khoảng giá trị bằng nhau biểu diễn mức tăng 20$ và tần
suất là số lượng item bán được. Histogram đã tồn tại ít nhất là 1 thế kỷ và được sử
18
dụng rộng rãi. Tuy nhiên, nó không hiệu quả bằng quantile plot, qq plot và boxplot
trong việc so sánh các nhóm “univariate observation”.
Hình 2.6 Histogram
Quantile plot là một phương pháp hiệu quả và đơn giản để có một cái nhìn
tổng quan về sự phân bố của dữ liệu “univariate”. Đầu tiên, nó biểu diễn tất cả dữ

liệu của thuộc tính cho trước. Thứ hai, nó thêm vào những thông tin quantile. Kỹ
thuật được dùng ở bước này hơi khác một chút so với việc tính toán percentile trong
phần 2.2.2. Cho x
i
, với i từ1 đến n là dữ liệu được sắp xếp tăng dần sao cho x
1

là giá
trị quan sát nhỏ nhất và x
N
là lớn nhất. Mỗi giá trị quan sát x
i
được đi kèm với một
percentage f
i
, cho biết có khoảng 100f
i
% dữ liệu có giá trị nhỏ hơn hoặc bằng x
i
.
Chúng ta nói “khoảng” là vì có thể không có giá trị nào có fraction đúng bằng f
i
.
Chú ý rằng 0.25 quantile tương ứng với quartile Q1, 0.5 quantile là median (trung
vị) còn 0.75 quantile là quartile Q3.
Đặt
19
Nhưng con số này tăng với các bước tăng bằng nhau là 1/N, biến thiên trong
khoảng từ 1/2N (hơi lớn hơn 0) đến 1-1/2N (hơi nhỏ hơn 1). Trên quantile plot, x
i

được đánh dấu cùng với f
i
. Điều này cho phép chúng ta so sánh được sự phân phối
khác nhau dựa trên quantiles của chúng. Lấy ví dụ, cho quantile plot của dữ liệu bán
hàng trong 2 khoảng thời gian khác nhau, chúng ta có thể so sánh giá trị Q1, Q2, Q3
của chúng, và những giá trị f
i
khác. Hình 2.7 cho thấy 1 quantile plot về dữ liệu giá
đơn vị sản phẩm cho bảng 2.1
Hình 2.7 Quantile plot
Đồ thị Quantile-Quantile (qq plot)
QQ Plot đồ thị hóa các quantile của 1 phân bố “univariate” với các quantile
tương ứng của 1 phân bố “univariate” khác Đó là công cụ trực quan hữu hiệu, cho
phép người dùng quan sát xem có 1 sự thay đổi khi đi từ phân phối này đến phân
phối kia hay không.
Giả sử chúng ta có 2 tập dữ liệu quan sát cho biến giá đơn vị sản phẩm lấy từ
2 chi nhánh khác nhau. Gọi x
1
, x
2
, x
N
là dữ liệu từ chi nhánh thứ nhất, và y
1
,
y
2
, y
M
là dữ liệu từ nhánh thứ 2, mỗi tập dữ liệu được sắp xếp theo thứ tự tăng

dần. Nếu M=N (nghĩa là số điểm củà tập dữ liệu bằng nhau) thì chúng ta chỉ việc
20
đánh dấu y
i
và x
i
, trong đó y
i
và x
i
đều là (i=0.5)/N quantile của tập dữ liệu tương
ứng của chúng. Nếu M<N (nghĩa là chi nhánh 2 có ít dữ liệu quan sát hơn chi nhánh
1) thì chỉ có M điểm trên qq plot. Trong đó, y
i
là quantile (i-0.5)/M của dữ liệu y, và
được đi cặp cùng quantile (i-0.5)/M của dữ liệu x. Sự tính toán này liên quan điển
hình tới phép nội suy.
Hình 2.8 cho thấy 1 qq plot cho dữ liệu giá đơn vị sản phẩm của các sản
phẩm được bán tại 2 chi nhánh khác nhau của AllElectronics suốt 1 khoảng thời
gian cho trước. Mỗi điểm tương ứng với cùng 1 quantile cho mỗi tập dữ liệu, và cho
thấy giá đơn vị sản phẩm của các sản phẩm bán tại chi nhánh 1 so với chi nhánh 2
tại cùng quantile đó.
Hình 2.8 Qq plot
(Lưu ý, để dễ so sánh, ta vẽ bổ sung thêm 1 đường thẳng để biểu diễn cho
trường hợp, với mỗi quantile thì giá đơn vị sản phẩm của 2 nhánh đều bằng nhau.
Ngoài ra, các điểm tô màu sẫm sẽ tương ứng với dữ liệu cho Q1, trung vị - median,
và Q3).
21
Xét 1 ví dụ, trong hình vẽ này, điểm thấp nhất ở góc trái tương ứng với 0,03
quantile. Chúng ta thấy rằng tại quantile này, giá đơn vị các sản phẩm bán tại chi

nhánh 1 hơi thấp hơn so với chi nhánh 2. Nói 1 cách khác, 3% sản phẩm được bán
tại chi nhánh 1 có giá thấp hơn hoặc bằng 40$, trong khi 3% số sản phẩm bán tại chi
nhánh 2 có giá thấp hơn hoặc bằng 42$. Tại điểm quantile cao nhất, ta thấy rằng
đơn vị giá của các sản phẩm bán tại chi nhánh 2 lại thấp hơn 1 chút so với chi nhánh
1. Nhìn chung, ta ấy có 1 sự đổi hướng (shift) trong phân phối của chi nhánh 1 so
với chi nhánh 2, trong đó giá đơn vị sản phẩm bán tại chi nhánh 1 vẻ thấp hơn so
với chi nhánh 2.
Scatter plot (Đồ thị phân tán) là một trong những phương pháp đồ thị hiệu
quả nhất để xác định xem có 1 quan hệ, 1 mẫu (pattern), hay 1 khuynh hướng
(trend) nào đó giữa 2 thuộc tính số hay không. Để xây dựng 1 plot, mỗi cặp giá trị
sẽ được xem như là 1 cặp tọa độ và được thể hiện dưới dạng điểm trên mặt phẳng.
Hình 2.11 cho thấy 1 scatter slot ứng với tập dữ liệu ở bảng 2.1. Scatter plot là
phương pháp hữu hiệu để cung cấp 1 cái nhìn ban đầu về những dữ liệu “bivariate”,
để trông thấy những cluster điểm, các giá trị cá biệt, hoặc khám phấ những môí
quan hệ tương quan. Trong hình 2.9, chúng ta thấy 1 ví dụ về các tương quan thuận
và nghịch giữa 2 thuộc tính trong 2 tập dữ liệu khác nhau. Hình 2.10 cho thấy 3
trường hợp mà ở đó không có sự tương quan giữa 2 thuộc tính trong các tập dữ liệu
cho trước.
Hình 2.9 Scatter plot – trường hợp có sự tương quan
22
Hình 2.10 Scatter plot – trường hợp không có sự tương quan
Khi phải xem xét nhiều hơn 2 thuộc tính, người ta sử dụng ma trận scatter
plot (là một dạng mở rộng của scatter plot). n thuộc tính, ma trận scatter plot sẽ là 1
lưới nxn scatter plot cung cấp cái nhìn trực quan của từng thuộc tính với mỗi thuộc
tính khác. Ma trận scatter plot trở nên kém hiệu quả khi số chiều cần khảo sát tăng
lên.
23
Hình 2.11 Scatter plot
Đường cong hồi qui cục bộ (loess curve – local regression curve) là 1 công
cụ đồ thị hữu hiệu khác. Người ta bổ sung thêm 1 đường cong trơn vào scatter plot

nhằm cho thấy 1 cái nhìn tốt hơn về sự phụ thuộc. Từ “loess” có nghĩa là hồi qui
cục bộ. Hình 2.12 cho thấy 1 đường cong hồi qui cục bộ cho tập dữ liệu trong bảng
2.1.
Hình 2.12 Đường cong hồi qui cục bộ
24
Để khớp (fit) 1 đường cong hồi qui cục bộ, cần 2 tham số là alpha – tham số
trơn và lambda, bậc của đa thức hồi qui. Alpha có thể là bất cứ số dương nào
(thường ta chọn alpha nằm giữa ¼ và 1), còn lambda có thể là 1 hoặc 2. Mục đích
của việc chọn alpha là để tạo ra 1 đường cong vừa vặn, càng trơn càng tốt và không
bóp méo quá đáng những pattern cơ bản bên trong dữ liệu. Alpha càng lớn thì
đường cong càng trơn, nhưng sẽ kém vừa vặn. Nếu alpha rất nhỏ thì các pattern cơ
bản bên trong sẽ được đánh dấu (?).
Nếu các pattern cơ bản của dữ liệu có 1 độ cong 'đẹp' và không có các điểm
cực trị cục bộ thì chỉ cần dùng đường tuyến tính cục bộ (lambda = 1). Tuy nhiên
nếu có các điểm cực trị thì cần phải dùng đến các đường cong bậc 2 (lambda = 2).
Tóm lại, sự tóm tắt dữ liệu cung cấp 1 cái nhìn giá trị về đặc điểm tổng quát
của dữ liệu. Bằng cách xác định các nhiễu và giá trị cá biệt, chúng rất hữu ích cho
việc làm sạch dữ liệu.
Phần 2.3. Làm sạch dữ liệu (data cleaning)
Dữ liệu trong thế giới thực có xu hướng không hoàn chỉnh, nhiễu và không nhất
quán. Quá trình làm sạch dữ liệu lấp đầy những giá trị bị thiếu, làm mịn các giá trị
nhiễu, xác định những giá trị cá biệt và giải quyết vấn đề không nhất quán trong dữ
liệu. Trong phần này, chúng ta sẽ tìm hiểu các phương pháp làm sạch dữ liệu cơ
bản.
2.3.1 Dữ liệu bị thiếu (missing)
Tưởng tượng là bạn cần phải phân tích dữ liệu bán hàng của AllElectronics
và dữ liệu khách hàng. Chú ý là nhiều bộ có những giá trị không được lưu cho vài
thuộc tính, chẳng hạn như thu nhập của khách hàng (income). Bạn có thể làm đầy
những giá trị bị thiếu cho những thuộc tính đó như thế nào? Hãy xem những
phương pháp sau:

1. Bỏ qua những bộ thiếu giá trị (Ignore the tuple): Phương pháp này thường
dùng khi nhãn lớp bị thiếu (giả sử việc khai thác bao gồm phân lớp). Phương
25

×