Professional Documents
Culture Documents
1
2
Chương 1
Carly Fiorina1 “The goal is to turn data into information, and information into in-
sight.”
Chương này sẽ giới thiệu các khái niệm cũng như thuật ngữ cơ bản trong lĩnh
vực khai thác dữ liệu. Các bài toán khai thác dữ liệu được phân loại theo hai nhóm
chính là khai thác theo hướng mô tả và khai thác theo hướng dự báo. Tiếp đó, một
quy trình chung có thể áp dụng cho các bài toán khai thác dữ liệu phổ biến được giới
thiệu và các vấn đề liên quan như các độ đo, vấn đề đánh giá chất lượng dữ liệu, trực
quan hóa,... cũng được đề cập một cách khái quát.
3
thiết để xử lý các tập dữ liệu lớn và phức tạp, khi không thể dùng các ứng dụng xử
lý dữ liệu truyền thống để xử lý được.
Tri thức trích xuất được từ dữ liệu thể hiện các mối quan hệ có tính hệ thống và
phổ quát giữa các thuộc tính của đối tượng được theo dõi. Đó còn được xem là các
quy luật hay mẫu (pattern). Theo Jiawei Han[?], khai thác dữ liệu được hiểu là quá
trình tìm kiếm các mẫu đáng quan tâm (interesting patterns) từ dữ liệu.
Ứng dụng của khai thác dữ liệu rất rộng lớn và đa dạng về lĩnh vực. Từ cơ sở dữ
liệu thanh toán giỏ hàng của khách hàng ở các siêu thị người ta có thể phát hiện ra
các mặt hàng nào thường xuyên mua cùng nhau, từ đó siêu thị có thể sắp xếp lại các
gian hàng sao cho thuận tiện hơn cho khách hàng hay đưa ra các chính sách khuyến
mãi.
Khai thác dữ liệu còn có thể ứng dụng trong lĩnh vực y tế cộng đồng. Chẳng hạn,
Google sử dụng dữ liệu truy vấn của người dùng thu thập từ cỗ máy tìm kiếm để có
thể đưa ra mô hình dự báo các đợt bùng phát dịch cúm nhanh hơn hai tuần so với
phương pháp truyền thống có thể dự báo được[?]. Ý tưởng độc đáo của dự án trên là
dựa trên các từ khóa tìm kiếm của người dùng nhập vào để làm dấu hiệu nhận biết
có dịch cúm, và quá trình phân tích dữ liệu phát hiện ra rằng có một sự liên quan
mật thiết giữa số người tìm kiếm thông tin liên quan đến bệnh cúm và số người thực
sự có triệu chứng bệnh cúm.
Trong lĩnh vực giao thông vận tải, dữ liệu hành trình của các phương tiện giao
thông là nguồn dữ liệu khá tốt để phát hiện ra các khu vực ùn tắc giao thông theo
thời gian thực. Tích hợp các thông tin ùn tắc này vào các ứng dụng bản đồ thì có
thể phát triển chức năng tìm đường đi tránh ùn tắc cho tài xế để di chuyển nhanh
hơn, thay vì đưa ra lộ trình ngắn nhất như các ứng dụng bản đồ hiện có[?]. Ngoài ra,
nếu dữ liệu hành trình được theo dõi trong một khoảng thời gian dài thì có thể phát
hiện các quy luật xảy ra ùn tắc hay những lộ trình thường xuyên được lựa chọn của
người dân khi đi từ một địa điểm này đến địa điểm khác. Những thông tin này rất
đáng giá cho nhà làm quy hoạch giao thông.
Nhiều kỹ thuật khai thác dữ liệu được nghiên cứu để có thể áp dụng trong nhiều
lĩnh vực, với nhiều dạng dữ liệu khác nhau. Nhìn chung, các kỹ thuật khai thác dữ
liệu đi theo hai nhánh chính:
• Khai thác theo hướng mô tả dữ liệu (descriptive data mining): tìm các mẫu
hay các quy luật có thể mô tả về dữ liệu mà con người có thể dễ dàng nắm bắt
được. Một số hướng chính như sau:
4
Hình 1.1: Quy trình khai thác dữ liệu
• Khai thác theo hướng dự báo (predictive data mining): sử dụng một số giá trị
thuộc tính của dữ liệu đã biết để dự đoán giá trị của thuộc tính chưa biết.
1. Làm sạch dữ liệu: loại bỏ nhiễu và các dữ liệu không phù hợp
2. Tích hợp dữ liệu: tổng hợp dữ liệu từ nhiều nguồn khác nhau để hình thành
kho dữ liệu.
5
3. Chọn tập con dữ liệu: không phải tất cả dữ liệu trong kho dữ liệu đều được sử
dụng cho việc khai thác mà chỉ những dữ liệu có liên quan được trích xuất cho
mục đích khai thác và phân tích.
4. Chuyển đổi dữ liệu: từ tập con được trích xuất, nếu cần thiết dữ liệu sẽ được
chuyển về dạng thích hợp cho việc khai phá, chẳng hạn dùng các phương pháp
thu giảm số chiều dữ liệu để làm giảm kích thước dữ liệu.
5. Khai thác dữ liệu: đây là cốt lõi của quy trình khai thác dữ liệu, với các phương
pháp đặc thù cho từng bài toán để trích xuất các mẫu (chứa tri thức) từ dữ
liệu.
6. Đánh giá mẫu: không phải mẫu nào trích xuất được đều giá trị. Đa số trường
hợp, tập mẫu trích xuất được chứa đựng khá nhiều mẫu hiển nhiên và không
có giá trị. Bước này được sử dụng để chỉ giữ lại các mẫu có ý nghĩa, gọi là
interesting patterns, dựa trên các độ đo interestingness measures.
7. Biểu diễn tri thức: các mẫu được trực quan hóa hoặc biểu diễn ở dạng thuận
lợi hơn cho người sử dụng.
Các bước từ 1 đến 4 có thể xem như các dạng của bước tiền xử lý. Bước số 5 và 6
trong một số trường hợp tích hợp vào một, với mục đích trích xuất mẫu. Bước cuối
cùng đại diện cho bước xuất kết quả, có thể là các dạng trực quan hóa cho người sử
dụng hoặc ở dạng tri thức mới được tích hợp vào trong hệ cơ sở tri thức.
6
các đối tượng dữ liệu. [Dữ liệu văn bản] Trong bài toán phân tích thái độ của khách
hàng đối với sản phẩm thông qua ý kiến đánh giá của khách hàng sản phẩm đó thì
tập dữ liệu là các nội dung đánh giá về sản phẩm của khách hàng, thì mỗi nội dung
đánh giá dưới dạng văn bản là một đối tượng dữ liệu. Các thuộc tính của các đối
tượng có thể lựa chọn là sự thống kê các từ khóa có mang giá trị biểu cảm.
[Dữ liệu chuỗi thời gian] Trong phân tích dữ liệu chứng khoán thì dataset là các
chuỗi giá trị cổ phiếu tương ứng với mốc thời gian. Đối tượng dữ liệu có thể là các
chuỗi giá trị hoặc các chuỗi con từ các chuỗi gốc ban đầu. Thuộc tính có thể chọn rất
là đa dạng, ví dụ dựa trên các giá trị thống kê đơn giản từ các giá trị của đối tượng
dữ liệu (trung mình, max, min,...) , hoặc trích xuất thông qua các biến đổi (DFT,
DWT, ...).
[Dữ liệu đồ thị] Dữ liệu mạng xã hội có thể xem như một dạng dữ liệu đồ thị
với các đối tượng dữ liệu là các node (tương ứng với người dùng) hoặc các subgraph
(tương ứng với các nhóm người dùng). Các thuộc tính có thể xem xét là các đặc tính
liên kết của mỗi node hoặc của mỗi subgraph.
[Dữ liệu không gian-thời gian] Ngoài các thuộc tính thông thường, khi các đối
tượng dữ liệu được gắn thêm các thuộc tính mô tả thời gian và vị trí thì dữ liệu
đó được gọi là dữ liệu có tính không-thời gian (spatio-temporal data). Ví dụ các
post/tweet trên mạng xã hội ngoài nội dung văn bản, còn được gắn thêm vị trí địa
lý và thời điểm đăng. Tham khảo thêm ở [?, ?, ?].
• Giá trị danh nghĩa (Nominal Values): là một định danh thuộc một tập
gồm các định danh cho trước. Ví dụ trong một cơ sở dữ liệu khách hàng, các
thuộc tính sau của khách hàng có thể xem là mang giá trị danh nghĩa: giới tính
7
(nam, nữ), nghề nghiệp (giảng viên, lập trình viên, kiến trúc sư...), tình trạng
hôn nhân (độc thân, có gia đình, ly dị). Trong một số ngôn ngữ lập trình, các
giá trị này thường được xem là giá trị thuộc kiểu dữ liệu liệt kê (enumerations).
Dữ liệu dạng này không có tính thứ tự nên chỉ áp dụng được phép so sánh bằng
hay khác. Ngoài ra, các phép tính toán số học trên dạng dữ liệu này cũng không
có ý nghĩa.
• Giá trị nhị phân (Binary Values): có thể xem một dạng đặc biệt của giá
trị nominal với giá trị chỉ nhận một trong hai giá trị 0 hay 1. Ví dụ: có tham
dự/ không tham dự, trả lời đúng/ sai,...
• Giá trị có thứ tự (Ordinal Values): các giá trị có thể so sánh được để sắp
theo thứ hạn, tuy nhiên mức độ chênh lệch giữa các giá trị là không xác định.
Các thuộc tính sau là các ví dụ về thuộc tính có thứ tự: Kích cỡ (nhỏ, vừa, lớn),
xếp hạng (nhất, nhì, ba), thang điểm (A, B, C, D, E, F).
• Giá trị số (Numeric Values): là các thuộc tính mang tính định lượng, biểu
diễn bằng các giá trị số nguyên hay số thực. Ví dụ: nhiệt độ, độ ẩm, tốc độ di
chuyển,... Thuộc tính mang giá trị số có thể thuộc một trong hai dạng sau:
– Dựa trên thang đo (interval-scaled ): là giá trị thuộc tính được đo lường
dựa trên một đơn vị đo, có thể mang giá trị dương, bằng 0, hoặc âm. Loại
thuộc tính này cho phép thực hiện so sánh và xác định được sự chênh lệch
giữa các giá trị. Các giá trị loại này không bị chặn bởi điểm zero thực sự
(true zero-point) nên không thể tính tỉ lệ giữa các giá trị. Ví dụ các giá trị
nhiệt độ tính theo o C hay o F có thể dùng để sắp xếp thứ tự, tính sự sai
biệt, nhưng không thể nói nhiệt độ này gấp đôi nhiệt độ kia được. Tương
tự như vậy, năm dương lịch không có điểm zero-point thực sự nên không
thể tính tỉ lệ giữa các năm được, mà chỉ tính được năm này cách năm kia
bao nhiêu năm.
– Dựa trên thang tỉ lệ (ratio-based ): là giá trị số tương tự như giá trị thuộc
tính interval-scaled, có thể dùng để sắp thứ tự và tính sự sai biệt giữa các
giá trị. Ngoài ra loại thuộc tính này có điểm zero thực sự nên có thể tính
tỉ lệ giữa các giá trị. Ví dụ thuộc tính "số năm kinh nghiệm" có giá trị
zero-point là 0 (tương ứng 0 năm kinh nghiệm), và có thể nói 4 năm kinh
nghiệm là gấp 2 năm kinh nghiệm. Mức lương (theo VND hay USD) là
một ví dụ khác về loại thuộc tính này.
8
Ngoài cách phân loại như trên, người ta có thể phân chia hai loại thuộc tính: thuộc
tính có giá trị rời rạc (discrete) và thuộc tính có giá trị liên tục (continuous). Thuộc
tính có giá trị rời rạc nhận giá trị trong một tập hữu hạn hoặc tập vô hạn đếm được
các giá trị. Ví dụ thuộc tính màu tóc, nghề nghiệp, mã vùng, giới tính, nhóm máu,...
Thuộc tính rời rạc có thể nhận các giá trị số, ví dụ mã khách hàng là một số nguyên
được gán tăng dần.
Thuộc tính không phải rời rạc được gọi là liên tục, ví dụ: chiều cao, câng nặng,
nhiệt độ,... Trong thực tế thì giá trị của thuộc tính liên tục được biểu diễn bằng giá
trị số thực dấu chấm động.
1. d(x, y) ≥ 0 với mọi cặp đối tượng x và y, và d(x, y) = 0 khi và chỉ khi x = y;
9
2. d(x, y) = d(y, x) với mọi cặp đối tượng x và y; và
3. d(x, y) ≤ d(x, z) + d(z, y) với mọi đối tượng x, y và z (bất đẳng thức tam giác)
Rõ ràng khoảng cách Euclide đề cập ở trên là một độ đo metric, gọi là L2 metric.
Khoảng cách Euclide có thể được tổng quát lên, gọi là khoảng cách Minkowski hay
Lλ :
n
1
X
d(x, y) = ( (xi − yi )λ ) λ , (λ ≥ 1). (1.2)
i=1
Nói chung, độ đo metric có thể định nghĩa rất nhiều cách, tùy từng trường hợp
cụ thể để quyết định chọn độ nào là phù hợp.
Đối với dữ liệu mà các thuộc tính của đối tượng mang các giá trị nhị phân {0,
1} thì việc định nghĩa độ đo tương tự sẽ phù hợp và có tính tự nhiên hơn so với
định nghĩa độ đo khoảng cách. Có thể sử dụng khái niệm hệ số so trùng (matching
coefficient) định nghĩa như sau:
n1,1 + n0,0
sim(x, y) = , (1.5)
n1,1 + n1,0 + n0,1 + n0,0
với:
• n1,1 : tổng số thuộc tính mà tại đó x và y đều có giá trị bằng 1;
• n1,0 : tổng số thuộc tính mà tại đó x có giá trị bằng 1 và y có giá trị bằng 0;
• n0,1 : tổng số thuộc tính mà tại đó x có giá trị bằng 0 và y có giá trị bằng 1;
n1,1
Jaccard(x, y) = , (1.6)
n1,1 + n1,0 + n0,1
10
2n1,1
Dice(x, y) = . (1.7)
2n1,1 + n1,0 + n0,1
Tương tự như dữ liệu với thuộc tính mang giá trị số, có nhiều cách định nghịa độ đo
cho dữ liệu có thuộc tính mang giá trị nhị phân. Tùy vào trường hợp cụ thể để lựa
chọn độ đo phù hợp.
Trong trường hợp giá trị thuộc tính có kiểu khác giá trị số thì có thể định nghĩa
độ đo tương tự dựa trên số lượng thuộc tính có giá trị tương đồng giữa hai đối tượng,
và hệ số so trùng ở công thức 1.5 hay các biến thể của nó có thể được sử dụng.
Trong thực tế, nhiều trường hợp đối tượng dữ liệu gồm hỗn hợp các kiểu thuộc
tính khác nhau. Giải pháp có thể sử dụng là định nghĩa một độ đo dựa trên cộng dồn
các độ đo trên tập con các thuộc tính. Khi đó, việc chuẩn hóa là điều cần thiết để độ
đo có ý nghĩa.
11
1.6 Vấn đề chất lượng dữ liệu
Chất lượng dữ liệu đầu vào là một trong những yếu tố quyết định đến tính hiệu quả
của quy trình khai thác dữ liệu. Có nhiều yếu tố ảnh hưởng đến chất lượng của dữ
liệu, trong đó bao gồm: tính chính xác, tính đầy đủ, tính nhất quán, tính hợp thời,
tính tin cậy, có thể diễn giải được.
Chất lượng của dữ liệu được xem xét dưới hai góc độ sau:
• Chất lượng dữ liệu ở từng giá trị thuộc tính: Mỗi giá trị thuộc tính được đo
lường theo một phương thức nào đó, và giá trị ghi lại trong tập dữ liệu và giá
trị thực sự có thể có sự sai lệch. Có hai loại lỗi trong đo lường giá trị: thiếu
chính xác và không đúng đắn. Chính xác nghĩa là nếu lặp lại các lần đo thì giá
trị nhận được sẽ chỉ biến động nhỏ. Đúng đắn có nghĩa là giá trị đo đạc được
phải phản ánh đúng giá trị thực sự của thuộc tính đối tượng được đo đạc.
• Chất lượng dữ liệu từ toàn bộ quy trình thu thập: Trong đa số trường hợp, dữ
liệu sử dụng cho khai thác có được bằng cách lấy mẫu, và từ một tập con các
đối tượng quan sát được để kết luận trên tập toàn thể. Phương thức lấy mẫu sẽ
ảnh hưởng đến chất lượng dữ liệu. Ví dụ đối với bài toán dựa trên dữ liệu hộp
đen giám sát hành trình di chuyển của phương tiện giao thông để tìm các xu
hướng di chuyển của người dân trong mạng lưới giao thông, số lượng phương
tiện giao thông được quan sát cũng như chủng loại phương tiện quan sát (xe
hơi, xe máy, xe bus,...) sẽ ảnh hưởng rất nhiều đến kết quả.
1. Trình bày dữ liệu: ánh xạ thông tin (đối tượng, thuộc tính, và các mối quan hệ)
sang dạng trực quan, là các thành phần đồ họa (điểm, đường, hình khối, màu
sắc,...).
2. Sắp xếp: các thành phần đồ họa cần được sắp xếp hợp lý để tăng hiệu quả của
việc trực quan hóa.
3. Chọn lựa: không phải toàn bộ dữ liệu sẽ được trình bày ở dạng trực quan hóa.
Trong nhiều trường hợp, đưa tất cả đối tượng lên khung hiển thị sẽ dẫn đến sự
12
dày đặc và chồng lấp. Ngoài ra, khi có nhiều thuộc tính thì việc trực quan hóa
cũng là vấn đề thách thức. Giải pháp chung cho hai vấn đề nêu trên là chọn lựa
tập con đối tượng/thuộc tính để trực quan hóa. Khi đó, các kỹ thuật như lấy
mẫu, thu giảm số chiều,... cần được áp dụng.
2. Một công ty quản lý vận tải có tập dữ liệu hành trình GPS thu thập từ hộp
đen của các phương tiện mà công ty quản lý. Công ty có thể khai thác dữ liệu
này để phục vụ cho kinh doanh như thế nào?
3. Vai trò của độ đo trong khai thác dữ liệu là gì? Khi lựa chọn độ đo cần quan
tâm đến vấn đề gì?
a. x = (1,0,1,0) và y = (0,0,1,0)
b. x = (1,0,1,0) và y = (0,1,0,1)
c. x = (1,0,1,0) và y = (1,1,1,1)
5. Tại sao chất lượng của dữ liệu lại quyết định đến hiệu năng của các giải thuật
khai thác dữ liệu? Cho ví dụ minh họa.
13
14