1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

81 1,9K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 704,05 KB

Nội dung

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ằ

Trang 1

ĐẠ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

Trang 2

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

Trang 3

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

Trang 4

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:

Trang 5

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

Trang 6

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

Trang 7

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ố

Trang 8

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

Trang 9

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 x1, x2, …, xN 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

x x

x x N

i i

+++

Thỉnh thoảng, mỗi giá trị xi trong một tập hợp có thể liên kết với một trọng lượng (tần số) wi, 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:

Trang 10

N N N

i i

N

i i i

w w

w

x w x

w x w w

x w x

+++

+++

2 2 1 1

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 đó

Trang 11

- 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ị xi 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

freq N

L median

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:

Trang 12

50 – 80 700Giá trị median của tần số là 450, như vậy median interval là khoảng 5 – 15, freqmedian

= 450, width = 15 – 5 = 10, L1 = 5 (chặn dưới của khoảng 5 – 15), N = 1350 (số lượng các giá trị), (∑freq )l = freq1- 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à:

35 10 450

200 2 / 3150

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

Trang 13

Hình 2.2 Dữ liệu đối xứng

Hình 2.3 Dữ liệu lệch trái

Trang 14

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 x1, x2, …, xN 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ị xi mà có k% dữ liệu bằng hoặc nhỏ hơn xi 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

Trang 15

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:

Ví dụ:

- Nếu Q1 = 60, Q3 = 100, như vậy IQR = Q3 – Q1 = 40

- Xét phần tử 175: vì 175 > Q3 + 1.5xIQR nên 175 là phần tử cá biệt

Vì Q1, median và Q3 đề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, Q1, Median,Q3, Maximum

200

Age30%

Percentile thứ 30 = 20

Trang 16

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 Q1 và Q3, 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

Trang 17

được cho Với chi nhánh 1, chúng ta thấy giá trị median là 80$, Q1 là 60$, Q3 là 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ị x1, x2, …, xn là

2 2

1

2

)(

1

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), Σxi ( sum() của

xi) và Σxi2 (sum() của xi2) 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

Trang 18

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

Trang 19

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 xi, với i từ1 đến n là dữ liệu được sắp xếp tăng dần sao cho x1 là giá trị quan sát nhỏ nhất và xN là lớn nhất Mỗi giá trị quan sát xi được đi kèm với một percentage fi, cho biết có khoảng 100fi% dữ liệu có giá trị nhỏ hơn hoặc bằng xi Chúng ta nói “khoảng” là vì có thể không có giá trị nào có fraction đúng bằng fi 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

Trang 20

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, xi được đánh dấu cùng với fi Đ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ị fi 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 x1, x2, xN là dữ liệu từ chi nhánh thứ nhất, và y1, y2, yM 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

Trang 21

đánh dấu yi và xi, trong đó yi và xi đề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 đó, yi 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)

Trang 22

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

Trang 23

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

Trang 24

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ộ

Trang 25

Để 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

Trang 26

pháp này không hiệu quả nếu bộ không chứa một vài thuộc tính bị mất giá trị

Nó đặc biệt tệ trong trường hợp số lượng giá trị bị thiếu trên mỗi thuộc tính lớn

2 Làm đầy bằng tay: Tổng quát, cách tiếp cận này tốn nhiều thời gian và có thể

không khả thi với một tập dữ liệu lớn có nhiều giá trị bị thiếu

3 Làm đầy bằng hằng số toàn cục: Thay thế tất cả các giá trị bị thiếu bằng cùng

một hằng số, như là một nhãn “Unknown” or -∞ Nếu những giá trị bị thiếu được thay thế bằng “Unknown” thì chương trình khai thác có thể gặp lỗi khi nghĩ rằng đó là một giá trị đáng lưu ý vì nó xuất hiện với tần số cao trong dữ liệu Mặt dù phương pháp này đơn giản, nhưng nó không hiệu quả

Ví dụ: các giá trị bị thiếu được thay thế bằng hằng “Unknown”

4 Dùng giá trị trung bình của thuộc tính: Ví dụ, giá trị trung bình của thuộc tính

tuổi là 35 thì giá trị đó được dùng để thay thế những giá trị bị thiếu trong thuộc tính tuổi

Trang 27

49 20 49 20

5 Dùng giá trị trung bình của tất cả các bộ thuộc về cùng 1 lớp với bộ đã cho:

Những giá trị bị thiếu sẽ được thay bằng giá trị trung bình của các giá trị thuộc cùng lớp với bộ bị thiếu Phương pháp này gần giống với phương pháp 4 nhưng khác ở chỗ nếu phương pháp 4 thay thế bằng giá trị trung bình của tất cả các bộ thì phương pháp này thay bằng giá trị trung bình của các bộ thuộc cùng lớp với

bộ đang xét

Ví dụ: nếu phân chia khách hàng theo độ tuổi từ 1 – 20, 20 – 30, 30 – 50, … và mean của các giá trị thuộc lớp 20 – 30 là $45000 thì giá trị bị thiếu của thuộc tính income (thu nhập) ở bộ có ID bằng 03 sẽ được thay thế bằng $45000 (vì bộ

6 Dùng giá trị có nhiều khả năng nhất (most probable): Phương pháp này có

thể được quyết định bằng hồi quy, dựa vào những công cụ suy luận như là phương pháp Bayesian hoặc cây quyết định Ví dụ, sử dụng những thuộc tính khác trong tập dữ liệu của bạn, bạn có thể xây dựng cây quyết định để dự đoán những giá trị bị thiếu của thuộc tính income Cây quyết định, hồi quy hay phương pháp Bayesian được mô tả chi tiết trong chương 6

Những giá trị được làm đầy có thể không chính xác Tuy nhiên, phương pháp

6 là một chiến lược phổ biến So với những phương pháp khác, nó sử dụng thông tin tốt nhất từ dữ liệu hiện có để dự đoán những giá trị bị thiếu Bằng việc dùng những

Trang 28

giá trị của các thuộc tính khác để ước lượng những giá trị bị thiếu cho income, có một khả năng lớn hơn là mối quan hệ giữa income và những thuộc tính khác được bảo toàn.

Một lưu ý quan trọng là, trong một vài trường hợp, giá trị bị thiếu có thể không dẫn đến lỗi trong dữ liệu Ví dụ, khi á p dụng cho credit card, những ứng viên có thể được yêu cầu cung cấp mã số bằng lái xe cua họ Những ứng viên mà không có bằng lái xe sinhra một trường trống một cách tự nhiên Những dạng đó nên cho phép những giá trị đặc biệt như là “not applicable” Những công việc của phần mềm có thể được sử dụng để phát hiện những giá trị null khác, như là “don’t know”, “?”, hoặc “none” Một thuộc tính nêncó một hoặc nhiều hơn những quy luật xem xét cho trường hợp null Những quy luật đó có thể xác định cụ thể cho phép có giá trị null hay không, hoặc là những giá trị đó sẽ đuợc giải quyết hoặc chuẩn hóa như thế nào Một trường có thể được để trống nếu nó được cung cấp trong bước tiếp theo của quá trình Vì vậy, một thiết kế tốt của cơ sở dữ liệu và của quá trình nhập

dữ liệu nên giảm đến mức tối thiểu số liệu những giá trị bị thiếu hoặc sai ngay từ bước đầu tiên

2.3.2 Dữ liệu bị nhiễu (noisy)

Một số kỹ thuật làm mịn dữ liệu:

1 Bining: Phương pháp bining làm mịn dữ liệu đã được sắp xếp bằng cách tham

khảo những giá trị xung quanh nó Những giá trị đã được sắp xếp được phân chia vào một số “bucket” hay gọi là bin Vì phương pháp bining tham khảo những giá trị xung quanh, nên đây là phương pháp thực hiện việc làm mịn dữ liệu cục bộ Xét một ví dụ minh họa vài kỹ thuật bining:

Dữ liệu về price (giá) đã được sắp xếp theo thứ tự tăng dần (theo đơn vị dollars): 4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34

* Phân chia vào các bin:

- Bin 1: 4, 8, 9, 15

Trang 29

- Trong kỹ thuật làm mịn dữ liệu bằng bin means (smoothing by bin

means), mỗi giá trị trong một bin được thay thế bởi giá trị mean của bin đó

Ví dụ, mean của giá trị 4, 8, 9 và 15 trong bin 1 là 9 Vì vậy, mỗi giá trị ban đầu trong bin này được thay thế bằng giá trị 9

- Tương tự, trong kỹ thuật làm mịn bằng bin medians (smoothing by bin

medians), mỗi giá trị trong bin được thay thế bằng giá trị bin median

- Trong kỹ thuật làm mịn bằng bin boundaries (smoothing by bin

boundaries), giá trị minimum và maximum trong bin được xem là bin

boundaries (giá trị biên) Mỗi giá trị trong bin được thay thế bằng giá trị biên gần nó nhất Ví dụ, các biên của bin 1 là 4 và 15, gía trị 8 gần với biên 4 hơn

so với biên 15 nên được thay bằng 4

Trang 30

Bining sẽ được thảo luận chi tiết hơn trong phần 2.6.

2 Regression: Dữ liệu được làm mịn bằng cách làm khớp dữ liệu với một hàm Linear regression (Hồi qui tuyến tính) bao gồm việc tìm đường thẳng tốt nhất

khớp với hai thuộc tính (hoặc biến), vì vậy một thuộc tính có thể được dùng để

dự đoán thuộc tính còn lại Từ đó, một cách trực quan ta dễ dàng xác định được các giá trị cá biệt (là những giá trị nằm hẳn bên ngoài so với đường thẳng tìm

được) Multiple linear regression là một mở rộng của linear regression, khi đó

có nhiều hơn hai thuộc tính và dữ liệu được khớp trên mặt phẳng đa chiều Regression được mô tả chi tiết hơn trong phần 2.5.4 cũng như trong chương 6

Hình 2.13 Minh họa kỹ thuật hồi qui

3 Clustering(gom cụm): Những phần tử cá biệt có thể được phát hiện bằng

phương pháp clustering Những giá trị tương tự nhau theo môt tiêu chuẩn nào đó được tổ chức vào trong các nhóm, hay là các cluster Bằng trực giác, những giá trị nằm ngoài tập hợp của các cluster có thể xem như là những phần tử cá biệt (Hình 2.14) Kỹ thuật này sẽ được trình bày trong chương 7

x

y

y = x + 1 X

1

Y 1 Y 1

Trang 31

Hình 2.14 Minh họa kỹ thuật clustering

Nhiều phương pháp làm mịn dữ liệu cũng là phương pháp để giảm số chiều

dữ liệu Ví dụ, kỹ thuật bining mô tả ở trên làm giảm số lượng giá trị riêng biệt trên mỗi thuộc tính Khái niệm phân cấp là một dạng rời rạc hóa dữ liệu có thể được dùng cho việc làm mịn dữ liệu Ví dụ, đối với thuộc tính price có thể chia giá trị price thành inexpensive, moderately-priced và expensive, vì vậy việc làm giảm số lượng giá trị có thể được giải quyết bằng quá trình khai thác Một vài phương pháp phân lớp như là mạng nơron, gắn liền với kỹ thuật làm mịn dữ liệu Phân lớp được trình bày trong chương 6

2.3.3 Tiến trình làm sạch dữ liệu:

Bước đầu tiên trong tiến trình làm sạch dữ liệu là phát hiện discrepancy (không nhất quán) Không nhất quán có thể xảy ra do nhiều yếu tố bao gồm việc thiết kế form nhập liệu tệ (có nhiều trường chọn lựa), lỗi do con người trong quá trình nhập liệu, lỗi do cố ý (ví dụ không muốn tiết lộ thông tin cá nhân), dữ liệu lỗi thời Không nhất quán có thể sinh ra từ việc biểu diễn dữ liệu không thống nhất hoặc không thống nhất trong việc dùng mã Lỗi trong thiết bị lưu trữ dữ liệu, lỗi hệ thống là những nguyên nhân khác gây ra vấn đề không nhất quán Lỗi cũng có thể

Trang 32

xảy ra khi dữ liệu được dùng cho mục đích khác với dự định ban đầu.

Phát hiện không nhất quán: tại lúc bắt đầu, dùng bất cứ kiến thức nào mà bạn

có để xem xét những thuộc tính của dữ liệu Ví dụ, miền giá trị và loại dữ liệu cho mỗi thuộc tính là gì? Những giá trị nào có thể được chấp nhận cho mỗi thuộc tính? Tất cả giá trị có nằm ngoài vùng mong đợi hay không? Mô tả dữ liệu tổng quát trong phần 2.2 được dùng để xác định xu hướng chính của dữ liệu và phát hiện những phần tử cá biệt Ví dụ, những giá trị mà lớn hơn độ lệch chuẩn hai lần có thể

bị đánh dấu là những phần tử cá biệt Trong bước này, bạn có thể dùng kịch bản của mình hoặc sử dụng vài công cụ sẽ thảo luận sau Từ đó, bạn có thể tìm thấy những giá trị nhiễu, những giá trị cá biệt, những giá trị không bình thường cần phải kiểm tra

Khi phân tích dữ liệu, nên cảnh giác sự không nhất quán trong cách dùng mã hay bất cứ biểu diễn dữ liệu nào (như là “2004/12/25” và 25/12/2004” đối với thuộc tính có kiểu ngày tháng) Field overloading là một nguyên nhân khác gây ra lỗi khi người thiết kế cố ép một thuộc tình mới dùng những phần (bit) không được sử dụng của các thuộc tính khác đã định nghĩa trước (ví dụ, dùng một bit không được sử dụng của một thuộc tính mà vùng giá trị chỉ sử dụng 31 trên 32 bit)

Dữ liệu nên được xem xét unique rule (qui luật duy nhất), consecutive rule (quy luật liên tiếp), và null rule (qui luật cho các giá trị null) Qui luật duy nhất phát biểu rằng mỗi gía trị của một thuộc tính phải khác với tất cả giá trị khác của thuộc tính đó Quy luật liên tiếp phát biểu là không thiếu giá trị nào nằm giữa giá trị nhỏ nhất và giá trị lớn nhất của thuộc tính, và tất cả giá trị cũng phải duy nhất Null rule xác định sử dụng trường trống, dấu ?, ký tự đặc biệt hay chuỗi khác để biểu thị cho giá trị null và những giá trị này sẽ được xử lý như thế nào Như đã đề cập trong phần 2.3.1, nguyên nhân làm thiếu dữ liệu có thể bao gồm (1) do con người được yêu cầu cung cấp giá trị thuộc tính không thể hoặc không có (ví dụ, thuộc tính mã

số bằng lái xe bị trống bởi vì người này không có bằng lái); (2) người nhập liệu không biết giá trị chính xác; (3) giá trị được cung cấp trong bước tiếp theo của quá

Trang 33

trình Null rule cần phải xác định cách thức lưu trữ tình trạng null Ví dụ, lưu 0 cho thuộc tính số, khoảng trống cho thuộc tính ký tự, hoặc bất cứ quy ước nào có thể dùng được ( chẳng hạn những entry như “don’y know” or “?” nên được chuyển thành khoảng trống).

Có một số công cụ thương mại khác có thể giúp đỡ trong bước phát hiện sự

không nhất quán Data scrubbing tools đơn giản sử dụng kiến thức về miền gía trị

( kiến thức về địa chỉ bưu điện và kiểm tra chính tả) để phát hiện lỗi và sửa lỗi Những công cụ này dựa trên việc phân tích cú pháp và kỹ thuật tập mờ khi làm sạch

dữ liệu từ nhiều nguồn Data auditing tools tìm sự không nhất quán bằng cách phân

tích dữ liệu để tìm sự tương quan và gom nhóm để phát hiện phần tử cá biệt Những công cụ này cũng có thể dùng kỹ thuật tóm tắt dữ liệu mô tả trong phần 2.2

Vài dữ liệu không nhất quán có thể được sửa bằng tay Ví dụ, những lỗi xảy

ra trong lúc nhập liệu có thể được sửa bằng cách lần theo dấu vết trang Tuy nhiên, hầu hết lỗi sẽ cần đến data transformation (chuyển hóa dữ liệu) Đó là bước hai trong tiến trình làm sạch dữ liệu Khi chúng ta tìm thấy sự không nhất quán, chúng

ta cần xác định và thực hiện việc biến đổi để sửa chúng

Nhiều công cụ thương mại có thể giúp đỡ trong bước chuyển hoá dữ liệu

Data migration tools cho phép những biển đổi được cụ thể, như là thay thế chuỗi

“gender” bằng “sex” ETL (extraction/transformation/loading) tools cho phép người

dùng xác định những biến đổi thông qua giao diện đồ họa (GUI) Những công cụ này chỉ hỗ trợ tập hợp những biến đổi có giới hạn, vì vậy chúng ta thường chọn cách viết kịch bản theo ý khác hàng cho bước này

Hai bước phát hiện sự không nhất quán và chuyển hoá dữ liệu được lặp đi lặp lại Tuy nhiên trong quá trình này có thể xảy ra lỗi và tốn nhiều thời gian Vài sự biến đổi có thể phát sinh ra lỗi không nhất quán Một vài lỗi không nhất quán ẩn nắp

có thể chỉ được phát hiện sau khi một cái khác đã được sửa Ví dụ, lỗi in ấn “2004” trong trường year có thể xuất hiện khi tất cả giá trị ngày đã được chuyển sang dạng chuẩn Những biến đổi thường được làm như là xử lý theo khối khi người dùng đợi

Trang 34

mà không có thông tin phản hồi Chỉ sau khi việc chuyển đổi hoàn tất thì người dùng mới có thể quay lại và kiểm tra không có giá trị khác thường nào được tạo ra Việc lặp đi lặp lại nhiều lần được yêu cầu trước khi người dùng thoả mãn Bất cứ bộ nào không thể được giải quyết một cách tự động bằng cách biến đổi sẽ được in ra file mà không có bất cứ sự giải thích nào xem như là nguyên nhân gây ra lỗi Kết quả là, quá trình làm sạch dữ liệu cũng mất chất lượng từ việc thiếu sự tương tác.

Những cách tiếp cận mới để làm sạch dữ liệu nhấn mạnh việc làm tăng sự

tương tác Ví dụ, Potter’s Wheel là một công cụ làm sạch dữ liệu public (xem

http://control.cs.berkeley.edu/abc) mà kết hợp cả phát hiện sự không nhất quán và chuyển hóa dữ liệu Người dùng dần dần xây dựng một dãy biến đổi bằng cách soạn

và sửa lỗi từng biến đổi, một bước tại một thời điểm, trên giao diện nhiều sheet trải dài Những biến đổi có thể được xác định bằng đồ hoạ hoặc bằng cách cung cấp ví

dụ Kết quả được hiển thị ngay lập tức trên màn hình Người dùng có thể hủy bỏ một thao tác biến đổi trước đó, vì vậy những lỗi thêm vào có thể được xoá Công cụ này thực hiện việc kiểm tra sự không nhất quán một cách tự động trên dữ liệu được biến đổi trong lần gần nhất Người dùng có thể dần dần phát triển và cải tiến những biến đổi khi mà sự không nhất quán được tìm thấy, dẫn đến hiệu quả cao hơn và quá trình làm sạch dữ liệu hiệu quả hơn

Một cách tiếp cận khác để tăng sự tương tác trong quá trình làm sạch dữ liệu

là việc phát triển ngôn ngữ cho việc xác định những toán tử chuyển đổi dữ liệu Việc này tập trung vào việc định nghĩa những mở rộng mạnh mẽ hơn cho SQL và những thuật toán mà cho phép người dùng diễn tả quá trình làm sạch dữ liệu hiệu quả hơn

Việc cập nhật siêu dữ liệu là quan trọng để phản ánh tri thức Điều đó sẽ giúp tăng tốc quá trình làm sạch dữ liệu trong những phiên bản lưu trữ dữ liệu tương lai

Phần 2.4 Tích hợp và chuyển đổi dữ liệu

Khai thác dữ liệu thường đòi hỏi việc tích hợp dữ liệu, nghĩa là trộn dữ liệu

Trang 35

từ nhiều nguồn lại với nhau Dữ liệu cũng cần phải được chuyển đổi sang những dạng thích hợp cho việc khai thác Phần này sẽ mô tả cả 2 quá trình: tích hợp và chuyển đổi dữ liệu.

2.4.1 Tích hợp dữ liệu (Data Integration)

“Tích hợp dữ liệu” nghĩa là sự kết hợp dữ liệu từ nhiều nguồn lại với nhau vào cùng một kho chứa một cách chặt chẽ, mạch lạc Những nguồn dữ liệu này có thể bao gồm các cơ sở dữ liệu (database), khối dữ liệu (data cube), hoặc file

Có khá nhiều vấn đề cần phải quan tâm đến trong quá trình tích hợp dữ liệu,

trong đó có Schema Integration và Object matching Trên thực tế, có nhiều thực thể

tương đương nhau nhưng có tên goị khác nhau ở các nguồn dữ liệu khác nhau Ví dụ:

ID và MASOCustomer_ID và cust_numberVấn đề xác định tính tương đương giữa các thực thể như vậy gọi là “Entity identification problem” Chúng ta có thể dựa vào các metadata của mỗi thuộc tính (gồm tên, ý nghĩa, kiểu dữ liệu, khoảng giá trị, các giá trị null…) để giải quyết phần nào vấn đề này Các metadata này cũng giúp ích trong việc chuyển đổi dữ liệu Ví dụ: thuộc tính pay_type trong cơ sở dữ liệu này có thể mang giá trị là ‘H’ hoặc ‘S’

và mang giá trị ‘1’ hoặc ‘2’ trong 1 cơ sở dữ liệu khác Do đó, bước này cũng liên quan đến việc làm sạch dữ liệu mà chúng ta đã thảo luận ở phần trước

Một vấn đề quan trong khác là sự dư thừa dữ liệu Một thuộc tính (như tổng doanh thu hàng năm) có thể xem như dư thừa vì nó có thể được suy ra từ các thuộc tính khác Sự không nhất quán trong việc đặt tên các thuộc tính (hoặc các chiều dữ liệu) cũng có thể gây ra sự dư thừa trong tập dữ liệu kết quả

Các thuộc tính dư thừa có thể được phát hiện bằng cách sử dụng phân tích tương quan (correlation analysis) Dựa vào phép phân tích này, ta có thể biết mức

Trang 36

độ tương quan (nghĩa là mức độ phụ thuộc của thuộc tính này vào thuộc tính kìa) giữa 2 thuộc tính cho trước, dựa trên bộ dữ liệu có sẵn Đối với thuộc tính số, ta có thể ước đoán độ tương quan giữa chúng bằng cách tính hệ số tương quan (correlation coefficient), còn gọi là “Pearson’s product moment coefficent” – hệ số mômen tích Pearson, do Karl Pearson phát minh ra Công thức tính hệ số này như sau:

Trong đó:

- N: số record

- ai, bi là giá trị của thuộc tính A và B trong record thứ i

- : giá trị trung bình của A và B

- σA, σB: độ lệch chuẩn của A và B

- ∑(aibi): tổng của tich vô hướng AB (nghĩa là: với mỗi record, lấy giá trị của A nhân với giá trị của B trong cùng record đo)

Lưu ý rằng |rA,B| ≤ 1

Các trường hợp xảy ra:

- rA,B > 0: A và B tương quan cùng chiều, nghĩa là A tăng khi B tăng Giá trị này càng lớn thì độ tương quan càng lớn

- rA,B = 0: A và B độc lập với nhau

- rA,B < 0: A và B tương quan ngược chiều (A tăng khi B giảm)

Ta thấy rằng, nếu giá trị tuyệt đối của rA,B lớn thì A hoặc B có thể bị bỏ đi do trùng lắp dữ liệu Có thể dùng scatter plot (tạm dịch: đồ thị phân tán) để thấy được

Trang 37

sự tương quan giữa các thuộc tính.

Lưu ý rằng, hai thuộc tính tương quan với nhau không có nghĩa là giữa chúng có quan hệ nhân quả Lấy ví dụ: khi phân tích một cơ sở dữ liệu về dân số, người ta phát hiện ra rằng thuộc tính “số bệnh viện” và thuộc tính ”số vụ trộm xe hơi” trong 1 khu vực nào đó là có tương quan với nhau Điều đó không có nghĩa là cái này là nguyên nhân gây ra cái kia Thực ra, cả 2 thuộc tính này liên quan tới 1 thuộc tính thứ 3, là “dân số”

Đối với dữ liệu rời rạc, quan hệ tương quan giữa 2 thuộc tính A và B có thể được phát hiện bằng kiểm định chi square (chi bình phương) Giả sử A có c giá trị rời rạc (a1, a2,… ac) và B có r giá trị rời rạc (b1, b2,… br) Các bộ dữ liệu mô tả A và

B có thể biểu diễn trong contingency table, với c cột và r dòng Ký hiệu (Ai, Bj) là

sự kiện mà (A=ai; B=bj) Mỗi (Ai, Bj) có 1 ô trong bảng Giá trị chi-square được tính như sau:

tế (oij) khác xa so với số lượng mong muốn (eij)

Thống kê chi-square kiểm định giả thuyết “2 biến A và B có độc lập với nhau” Phép kiểm định này dựa trên 1 độ tin câỵ với (r-1)*(c-1) bậc tự do Chúng ta

Trang 38

sẽ minh họa cách sử dụng thống kê này trong ví dụ dưới đây Nếu giả thuyết bị bác

bỏ, chúng ta có thể nói rằng A và B có quan hệ với nhau, về mặt thống kê

số mong muốn cho ô (male, fiction) là:

Lưu ý rằng, trong bất cứ dòng nào, tổng của các tần số mong muốn cũng bằng với tổng tần số quan sát của dòng đó Tương tự, tổng các tần số mong muốn trong bất

cứ cột nào cũng bằng với tổng tần số quan sát của cột đó

Ta tính được giá trị chi-square:

Trang 39

Với bảng 2x2, bậc tự do là (2-1)x(2-1)=1 Với 1 bậc tự do, giá trị χ2 cần thiết

để bác bỏ giả thuyết (với độ tin cậy 0.001) là 10.828 Do giá trị χ2 ta tính được ở trên lớn hơn con số này nên chúng ta có thể bác bỏ giả thuyết “giới tính và sở thích đọc sách độc lập với nhau” Ta kết luận rằng 2 thuộc tính này có tương quan mạnh với nhau, với tập dữ liệu cho trước

Bên cạnh việc xác định sự dư thừa dữ liệu giữa các thuộc tính, sự dư thừa còn có thể gặp ở mức bộ (tuple, record), nghĩa là có 2 hay nhiều bộ giống nhau ở 1 thuộc tính nào đó Việc sử dụng các table không chuẩn (thường dùng để tăng tốc độ

xử lý, nhờ hạn chế được phép kết - join) cũng là 1 nguyên nhân của việc dư thừa dữ liệu Sự không nhất quán cũng thường xuất hiện giữa những dữ liệu lặp khác nhau,

do sự không chính xác của dữ liệu, hoặc việc cập nhật dữ liệu chỉ được thực hiện với một vài phần chứ không phải là toàn bộ thể hiện (occurrence) của dữ liệu Lấy

ví dụ, nếu 1 database đơn đặt hàng chứa thuộc tính tên người đặt hàng và địa chỉ của họ, thay vì 1 khóa tham chiếu đến database người đặt hàng, thì sự không nhất quán có thể xảy ra: cùng 1 tên người đặt hàng nhưng lại mang địa chỉ khác nhau trong database đơn đặt hàng

Một vấn đề quan trong nữa trong tích hợp dữ liệu là phát hiện và xử lý xung đột giá trị dữ liệu Ví dụ, với cùng 1 thực thể, giá trị các thuộc tính trong các nguồn

dữ liệu khác nhau có thể khác nhau Điều này có thể xảy ra do sự thể hiện dữ liệu khác nhau Ví dụ, cân nặng có thể được đo bằng các đơn vị khác nhau Với 1 chuỗi khách sạn, giá phòng ở các thành phố khác nhau có thể khác nhau, không chỉ về đơn

vị tiền tệ mà còn về dịch vụ và thuế Một thuộc tính trong 1 hệ thống có thể được ghi nhận ở 1 cấp độ trừu tương thấp hơn thuộc tính tương tự ở trong 1 hệ thống khác Ví dụ, thuộc tính total_sales trong 1 database có thể để ám chỉ tổng doanh số của 1 chi nhánh của hãng All_Electronics, trong khi 1 thuộc tính cùng tên trong 1 database khác lại ám chỉ tổng doanh số của tất cả các cửa hàng của All_Electronics

ở 1 địa phương cho trước

Khi thực hiện việc ghép (matching) thuộc tính từ database này sang database

Trang 40

khác trong quá trình tích hợp dữ liệu, cần phải chú ý đặc biệt đến cấu trúc của dữ

liệu Điều này nhằm đảm bảo rằng mọi phụ thuộc hàm của thuộc tính và các ràng buộc khóa ngoại trong hệ thống nguồn phải được đảm bảo ở trong hệ thống đích Ví

dụ, trong 1 hệ thống, thuộc tính discount có thể được áp dụcho 1 đơn đặt hàng, trong khi ở 1 hệ thống khác, nó được áp dụng cho từng mặt hàng trong đơn hàng đó Nếu điều này không được chú ý trước khi thực hiện việc tích hợp, các mặt hàng trong hệ thống đích có thể sẽ không được “discount” chính xác

Sự khác biệt về ngữ nghĩa và cấu trúc của dữ liệu gây ra 1 thách thức lớn trong việc tích hợp dữ liệu Nếu công việc này được thực hiện cẩn thận thì sẽ giảm thiệu hoặc tránh được sự dư thừa hoặc không nhất quán về dữ liệu trong tập dữ liệu kết quả Điều này giúp cải thiện độ chính xác và tốc độ của quá trình mining

2.4.2 Chuyển đổi dữ liệu (Data transformation)

Trong việc chuyển đổi dữ liệu, dữ liệu được chuyển đổi hoặc hợp nhất thành những dạng phù hợp cho việc khai thác Chuyển đồi dữ liệu gồm những việc sau:

- Làm mịn: khử nhiễu cho dữ liệu Có thể dùng các kỹ thuật như binning,

regression, clustering

- Tập hợp dữ liệu: tóm tắt, xây dựng các khối dữ liệu (data cube) Ví dụ:

doanh số bán hàng hàng ngày có thể được tập hợp lại thành doanh số của tháng hoặc năm

- Tổng quát hóa dữ liệu: các dữ liệu thô hoặc ở cấp thấp sẽ được thay thế

bằng những khái niệm cao hơn thông qua việc sử dụng 1 hệ thống phân cấp khái niệm Ví dụ: các dữ liệu rời rạc như “đường phố” có thể được tổng quát lên thành những khái niệm cao hơn như “thành phố” hoặc “quốc gia” Tương

tự, giá trị của các thuộc tính số, như “tuổi” cũng có thể được chuyển thành các khái niệm ở mức cao hơn như “trẻ”, “trung niên” và “già”

- Chuẩn hóa dữ liệu: các dữ liệu thuộc tính sẽ được đưa về 1 khoảng nhỏ,

như -1 đến 1, hoặc 0 đến 1

Ngày đăng: 05/04/2015, 17:45

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w