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

Nghiên cứu phương pháp mới dựa trên đường biên và vùng an toàn nâng cao hiệu quả phân lớp dữ liệu mất cân bằng

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 (837.36 KB, 53 trang )

MỤC LỤC
PHẦN 1: MỞ ĐẦU ........................................................................................... 5
PHẦN 2: NỘI DUNG ....................................................................................... 7
CHƯƠNG 1: GIỚI THIỆU VỀ PHÂN LỚP DỮ LIỆU ................................... 7
1.1. Phân lớp dữ liệu ....................................................................................... 7
1.1.1. Phân lớp dữ liệu ............................................................................. 7
1.1.2. Quá trình phân lớp dữ liệu ............................................................. 8
1.1.3. Ứng dụng của phân lớp dữ liệu .................................................... 11
1.2. Phân lớp dữ liệu mất cân bằng............................................................... 13
1.2.1. Dữ liệu mất cân bằng ................................................................... 13
1.2.2. Đặc trưng của dữ liệu mất cân bằng............................................. 14
1.3. Một số bài toán phân lớp dữ liệu chuẩn ................................................ 16
1.3.1. Cây quyết định (Decision tree) .................................................... 16
1.3.2. Mạng Bayes (Naïve Bayes) .......................................................... 18
1.3.3. K-láng giềng gần nhất (K-nearest neighbor)................................ 19
1.3.4. Máy vectơ hỗ trợ (Support Vector Machine) .............................. 20
CHƯƠNG 2: PHƯƠNG PHÁP MỚI DỰA TRÊN ĐƯỜNG BIÊN VÀ
VÙNG AN TOÀN NÂNG CAO HIỆU QUẢ PHÂN LỚPDỮ LIỆU MẤT
CÂNG BẰNG ................................................................................................. 24
2.1. Các phương pháp tiếp cận bài toán phân lớp đối với dữ liệu mất cân
bằng hiện nay ............................................................................................... 24
2.1.1. Phương pháp tiếp cận trên mức độ dữ liệu .................................. 24
2.1.2. Phương pháp tiếp cận trên mức độ thuật toán.............................. 26
2.1.3. Học dựa trên chi phí (Cost-sensitive learning) ............................ 27
2.2. Phương pháp loại bỏ ngẫu nhiên phần tử an toàn ở lớp đa số - Random
Safe Undersampling (RSU) ......................................................................... 28
2.2.1. Ý tưởng ......................................................................................... 28
1


2.2.2. Thuật toán Random Safe Undersampling .................................... 30


2.3. Phương pháp sinh thêm ngẫu nhiên phần tử biên ở lớp thiểu số Random Border Oversampling (RBO) ........................................................ 33
2.3.1. Ý tưởng ......................................................................................... 33
2.3.2. Thuật toán Random Border Oversampling .................................. 34
2.4. Phương pháp mới dựa trên đường biên và vùng an toàn nâng cao hiệu
quả phân lớp dữ liệu mất cân bằng – Random Safe Undersampling &
Random Border Oversampling (RSU_RBO) .............................................. 37
CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM .................................................... 39
3.1. Các tiêu chí đánh giá.............................................................................. 40
3.2. Dữ liệu ................................................................................................... 42
3.3. Kết quả thực nghiệm .............................................................................. 43
PHẦN 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................... 49
TÀI LIỆU THAM KHẢO ............................................................................... 51

2


DANH MỤC CÁC CHỮ VIẾT TẮT

KNN

K-nearest neighbor

RO

Random Oversampling

RU

Random Undersampling


RBO

Random Border Oversampling

RSO

Random Safe Oversampling

RSU

Random Safe Undersampling

RSU_RBO Random Safe Undersampling - Random Safe Oversampling
SMV

Support Vector Machine

3


DANH MỤC BẢNG
Bảng 1. Dữ liệu huấn luyện ...................................................................... 8
Bảng 2. Dữ liệu cần phân lớp.................................................................. 10
Bảng 3. Ví dụ về phân lớp bằng cây quyết định ..................................... 17
Bảng 4. Ma trận nhầm lẫn ....................................................................... 40
Bảng 5. Dữ liệu chuẩn từ UCI ................................................................ 43
Bảng 6. Thống kê số phần tử .................................................................. 48
DANH MỤC HÌNH ẢNH
Hình 1. Quá trình huấn luyện .................................................................... 9
Hình 2. Quá trình phân lớp dữ liệu ......................................................... 11

Hình 3. Phân lớp dữ liệu bằng cây quyết định ........................................ 17
Hình 4. Phân lớp dữ liệu bằng phương pháp KNN................................. 20
Hình 5. Ví dụ về phân lớp dữ liệu bằng SMV ........................................ 21
Hình 6. Đường biên trong SMV ............................................................. 22
Hình 7. Minh họa kỹ thuật phân lớp bằng SMV..................................... 22
Hình 8. Xác định một phần tử an toàn lớp đa số .................................... 32
Hình 9. Xác định phần tử biên lớp thiểu số ............................................ 36
Hình 10. Quá trình thực hiện thuật toán RBO_RSU .............................. 39
Hình 11. Biểu đồ so sánh G-mean của bộ dữ liệu Yeast ........................ 45
Hình 12. Biểu đồ so sánh G-mean của bộ dữ liệu Glass ........................ 45
Hình 13. Biểu đồ so sánh G-mean của bộ dữ liệu Breast-p .................... 46
Hình 14. Biểu đồ so sánh G-mean của bộ dữ liệu Pima ......................... 47

4


PHẦN 1: MỞ ĐẦU
Phân lớp dữ liệu đã, đang và sẽ phát triển mạnh mẽ trước những khát khao
tri thức của con người. Các nhà nghiên cứu bị thu hút bởi nhiều hướng tiếp cận
khác nhau trongphân lớp dữ liệu như: Học máy (machine learning), hệ chuyên
gia (expert system), thống kê (statistisc)… Kết quả là những ứng dụng vô cùng
hữu ích trong thực tế ở các lĩnh vực thương mại, ngân hàng, maketing, bảo
hiểm, y tế, giáo dục… ra đời.
Trong các mô hình phân lớp, thuật toán là nhân tố chủ đạo. Do đó cần xây
dựng những thuật toán có độ chính xác cao, thực thi nhanh, đi kèm với khả
năng mở rộng được để có thể thao tác với những tập dữ liệu ngày càng lớn. Đã
có nhiều thuật toán phân lớp được công bố như: Cây quyết định (decision tree),
Naïve Bayes, k-hàng xóm gần nhất (k-nearest neighbor), máy véc tơ hỗ trợ
(Support Vector Machine) [20]… Đây là những thuật toán chuẩn và đạt hiệu
quả tốt đối với trường hợp phân lớp có dữ liệu không mất cân bằng. Tuy nhiên,

hiệu quả của các thuật toán này đối với loại dữ liệu có sự chênh lệch lớn về số
lượng giữa các lớp lại không đạt mong muốn.
Trong trường hợp dữ liệu mất cân bằng, phân lớp chuẩn có khuynh hướng
bị áp đảo bởi lớp đa số và bỏ qua lớp thiểu số. Tầm quan trọng của nó khiến
cho nhiều nhà nghiên cứu nhận ra rằng việc mất cân bằng là nguyên nhân gây
ra sự không tối ưu trong việc phân lớp. Và hầu hết các thuật toán xử lý kém khi
các tập dữ liệu bị mất cân bằng cao. Chính vì vậy, một yêu cầu cơ bản được đặt
ra là cần tăng tính hiệu quả và chính xác của thuật toán phân lớp đối với dữ liệu
mất cân bằng.
Có rất nhiều phương pháp được đề xuất để giải quyết vấn đề mất cân bằng
lớp nhằm tăng hiệu quả của việc phân lớp dữ liệu [21]. Tuy nhiên, phương pháp
phổ biến và đơn giản nhất để xử lý vấn đề này là tiền xử lý dữ liệu bằng cách
sinh ngẫu nhiên các phần tử ở lớp thiểu số hoặc loại bỏ ngẫu nhiên các phần tử
5


ở lớp đa số, tạo sự tương đồng về số lượng các phần tử, làm giảm bớt tính mất
cân bằng của dữ liệu.
Vì vậy, tôi đã lựa chọn đề tài “Nghiên cứu phương pháp mới dựa trên
đường biên và vùng an toàn nâng cao hiệu quả phân lớp dữ liệu mất cân
bằng” làm hướng nghiên cứu chính.Luận văn giới thiệu về dữ liệu mất cân
bằng, phân lớp đối với dữ liệu mất cân bằng, các giải thuật chuẩn Random
Oversampling và Random Undersampling. Từ đó cải tiến và đề xuất một
phương pháp mới mới dựa trên khái niệm đường biên và vùng an toàn để nâng
cao hiệu quả phân lớp đối với dữ liệu mất cân bằng: Random Safe
Undersamping - Random Border Oversampling.
Luận văn gồm 3 chương:
Chương 1: Trình bày tổng quan về phân lớp dữ liệu, dữ liệu mất cân bằng
và các thuật toán phân lớp chuẩn.
Chương 2: Trình bày hướng tiếp cận chính đối với bài toán phân lớp dữ

liệu mất cân bằng, các phương pháp cơ bản để sinh thêm các phần tử ở lớp thiểu
số hoặc loại bỏ các phần tử ở lớp đa số một cách ngẫu nhiên. Đồng thời đề xuất
phương pháp mới vừa sinh thêm phần tử biên ở lớp thiểu số vừa loại bỏ phần
tử an toàn ở lớp đa số một cách ngẫu nhiên làm giảm sự mất cân bằng dữ liệu,
tăng hiệu quả phân lớp.
Chương 3: Trình bày các độ đo đánh giá phân lớp dữ liệu mất cân bằng,
phương pháp tiến hành thực nghiệm, các bộ dữ liệu thực nghiệm và kết quả
thực nghiệm. Trên cơ sở đó so sánh, đánh giá hiệu quả của thuật toán mới.

6


PHẦN 2: NỘI DUNG
CHƯƠNG 1: GIỚI THIỆU VỀ PHÂN LỚP DỮ LIỆU

1.1.

Phân lớp dữ liệu

1.1.1. Phân lớp dữ liệu
Phân lớp dữ liệu (classification) là một trong những hướng nghiên cứu
chính của khai phá dữ liệu. Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệu với
nhiều thông tin ẩn con người có thể trích rút ra các quyết định nghiệpmột cách
chính xác và nhanh chóng. Phân lớp chính là quá trình phân tích dữ liệu nhằm
trích rút ra một mô hình mô tả các lớp dữ liệu quan trọng hay dự đoán xu hướng
dữ liệu tương lai[8]. Phân lớp dự đoán giá trị của những nhãn xác định
(categorical label) hay những giá trị rời rạc (discrete value), có nghĩa là phân
lớp thao tác với những đối tượng dữ liệu mà có bộ giá trị là biết trước.Ví dụ mô
hình phân lớp dự báo thời tiết có thể cho biết thời tiết ngày mai là mưa, hay
nắng dựa vào những thông số về độ ẩm, sức gió, nhiệt độ,… của ngày hôm nay

và các ngày trước đó. Hay nhờ các luật về xu hướng mua hàng của khách hàng
trong siêu thị, các nhân viên kinh doanh có thể ra những quyết sách đúng đắn
về lượng mặt hàng cũng như chủng loại bày bán…
Đầu vào của bài toán phân lớp là một tập các mẫu đã được phân loại trước,
mỗi đầu vào được mô tả bằng một số thuộc tính. Các thuộc tính dùng để mô tả
mẫu gồm 2 loại: Thuộc tính rời rạc và thuộc tính liên tục. Trong số các thuộc
tính rời rạc, một thuộc tính đặc biệt là phân lớp (class), mà các giá trị của nó
được gọi là nhãn lớp.Thuộc tính liên tục sẽ nhận các giá trị có thứ tự, ngược lại,
thuộc tính rời rạc sẽ nhận các giá trị không có thứ tự.Ngoài ra, các thuộc tính
có thể nhận giá trị không xác định.Nhiệm vụ của quá trình phân lớp dữ liệu là
gán nhãn cho các mẫu dữ liệu.Một mô hình mô tả dữ liệu sẽ được dùng để xác
định nhãn lớp cho các mẫu mới không nằm trong tập mẫu ban đầu.
7


1.1.2. Quá trình phân lớp dữ liệu
Quá trình phân lớp dữ liệu gồm hai giai đoạn [22]:
 Giai đoạn huấn luyện(learning)
Giai đoạn huấn luyện nhằm xây dựng một mô hình mô tả một tập các lớp
dữ liệu hay các khái niệm định trước. Đầu vào của quá trình này là một tập dữ
liệu có cấu trúc được mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá
trị của các thuộc tính đó. Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu
(data tuple), có thể là các mẫu (sample), ví dụ (example), đối tượng (object),
bản ghi (record) hay trường hợp (case)…Đầu ra của bước này thường là các
quy tắc phân lớp dưới dạng luật dạng if - then, cây quyết định, công thức logic,
hay mạng nơron.
Bảng 1 là một ví dụ về dữ liệu huấn luyện, dữ liệu có 5 thuộc tính: Tên,
Giới tính, Tuổi, Thu nhập, Mua máy tính. Trong đó, Mua máy tính là thuộc tính
lớp.
Tên


Giới tính

Tuổi

Thu nhập

Hùng

Nam

19

1.200.000

Không

Kiên

Nam

33

2.500.000





Nữ


50

3.200.000

Không



Nam

40

1.600.000

Không

Tuấn

Nam

30

4.200.000



Hoa

Nữ


23

1.750.000

Không

Huệ

Nữ

35

5.000.000

Không

Mua máy tính

Bảng 1. Dữ liệu huấn luyện
Quá trình huấn luyện được thực hiện bằng một thuật toán phân lớp, thuật
toán thực hiện học dữ liệu huấn luyện để từ đó trích rút thông tin và xác định
một mô hình mô tả dữ liệu.Mô hình ở đây chính là các quy tắc, luật hay công

8


thức toán học mô tả lớp.Thuật toán phân lớp chính là cốt lõi của quá trình học,
thuật toán phân lớp tốt thì hiệu quả gán nhãn đạt độ chính xác cao.


Thuật toán phân lớp

Dữ liệu huấn luyện

Tên

Giới
tính

Tuổi

Hùng
Kiên


Tuấn
Hoa
Huệ

Nam
Nam
Nữ
Nam
Nam
Nữ
Nữ

19
33
50

40
30
23
35

Thu nhập
1.200.000
2.500.000
3.200.000
1.600.000
4.200.000
1.750.000
5.000.000

Mô hình
phân loại

Mua
máy
tính
Không

Không
Không

Không
Không

IF gioitinh = “Nam” AND
thunhap > 2.000.000 THEN

return = “YES”

Hình 1. Quá trình huấn luyện
Các bước xây dựng mô hình phân lớp:
- Mỗi bộ/ mẫu dữ liệu được phân vào một lớp xác định trước.
- Lớp của một bộ/ mẫu dữ liệu được xác định bởi thuộc tính gán nhãn lớp.
- Tập các bộ/ mẫu dữ liệu huấn luyện - tập huấn luyện - được dùng để xây
dựng mô hình.
- Mô hình được biểu diễn bởi các luật phân lớp, các cây quyết định hoặc
các công thức toán học.
Ví dụ trong hình 1, mô hình phân lớp khách hàng có mua máy tính hay
không sẽ phải thoả mãn điều kiện: Nếu khách hàng có giới tính là Nam và
thunhập lớn hơn 2.000.000đồng thì người đó CÓ mua máy tính. Vậy dựa vào

9


mô hình phân lớp khách hàng, nhân viên kinh doanh có thể biết khách hàng có
mua máy tính hay không.
 Giai đoạn phân lớp (classification)
Giai đoạn phân lớp sẽ sử dụng mô hình xây dựng được ở giai đoạn huấn
luyện để phân lớp dữ liệu.
Tên

Giới tính

Tuổi

Thu nhập


Bách

Nam

27

3.800.000

???

Hương

Nữ

25

2.900.000

???

Mua máy tính

Bảng 2. Dữ liệu cần phân lớp
Trong giai đoạn này, một bộ dữ liệu kiểm tra độc lập với bộ dữ liệu huấn
luyện trước đó được sử dụng để đánh giá.Việc sử dụng mô hình được phục vụ
cho việc phân lớp dữ liệu trong tương lai hoặc phân lớp cho những đối tượng
chưa biết đến.
Trước khi sử dụng mô hình phải đánh giá được tính chính xác của mô
hình. Ta thực hiện phân lớp các mẫu dữ liệu trong bộ dữ liệu kiểm tra, từ đó
xác định xem có bao nhiêu phần tử dữ liệu được phân lớp đúng và bao nhiêu

phân tử dữ liệu bị phân lớp sai. Nếu độ chính xác của mô hình là chấp nhận
được thì mô hình được sử dụng để phân lớp cho những dữ liệu tương lai hoặc
những dữ liệu chưa biết nhãn.
Hình 2 mô tả quá trình phân lớp dữ liệu dựa vào mô hình đã xây dựng
được ở giai đoạn huấn luyện. Như vậy, dữ liệu khách hàng có tên là Bách, giới
tính Nam và có mức thu nhập 3.800.000 đồng thoả mãn điều kiện nên được gán
nhãn là YES (có mua máy tính).

Mô hình

10


Hình 2. Quá trình phân lớp dữ liệu
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết
định tới sự thành công của mô hình phân lớp. Do vậy chìa khóa của vấn đề phân
lớp dữ liệu là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính
xác cao và có khả năng mở rộng được. Trong đó khả năng mở rộng được của
thuật toán được đặc biệt chú trọng và phát triển [22]. Có thể liệt kê các kỹ thuật
phân lớp đã được sử dụng trong những năm qua như sau:
 Cây quyết định (Decision tree)
 Mạng Bayes (Naïve Bayes)
 K-láng giềng gần nhất (K-nearest neighbor)
 Máy vectơ hỗ trợ (Support Vector Machine)
 Mạng nơron
 Phân tích thống kê
 Các thuật toán di truyền…
1.1.3. Ứng dụng của phân lớp dữ liệu
11



Phân lớp dữ liệu là bài toán có ứng dụng rất rộng rãi và có ý nghĩa thực tế
trong nhiều lĩnh vực như:
 Phát hiện gian lận
Gian lận, như gian lận thẻ tín dụng và gian lận di động là một vấn đề tốn
kém đối với nhiều tổ chức kinh doanh. Tại Hoa Kỳ, gian lận di động khiến các
ngành công nghiệp viễn thông phải chi trả hàng trăm triệu đô mỗi năm. Các
công ty cố gắng để phát hiện gian lận bằng cách phân tích tiêu thụ khác nhau
trong cơ sở dữ liệu giao dịch của họ.Tuy nhiên, trong bộ sưu tập giao dịch, có
rất nhiều người sử dụng hợp pháp hơn những người gian lận [21]. Mặc dù
những trường hợp gian lận rất ít nhưng lại mang đến những tổn thất lớn.Chính
vì vậy, việc phát hiện gian lận là một việc cần thiết, cần có biện pháp giải quyết.
 Chẩn đoán y học
Khai phá dữ liệu sinh học là một phần rất quan trọng của lĩnh vực Tin –
Sinh học (Bioinformatics). Cơ sở dữ liệu lâm sàng lưu trữ một lượng lớn thông
tin về bệnh nhân và tình trạng sức khỏe của họ. Kỹ thuật khai phá dữ liệu được
áp dụng trên các cơ sở dữ liệu cố gắng tìm cách phát hiện các mối quan hệ và
các mẫu trong dữ liệu lâm sàng và dữ liệu bệnh lý để hiểu được sự tiến triển
của bệnh và các tính năng nhất định. Kiến thúc được phát hiện có thể sử dụng
để chẩn đoán sớm bệnh. Trong cơ sở dữ liệu lâm sàng, trường hợp bệnh khá
hiếm so với dân số bình thường. Nếu chẩn đoán người bị bệnh thì người không
bị bệnh sẽ gây thiệt hại nghiêm trọng về người. Do đó, nâng cao hiệu quả trong
việc chẩn đoán y học càng đoán vai trò quan trọng [21].
 Phát hiện sự xâm nhập mạng
Xâm nhập bất hợp pháp là những hành động đe doạ tính toàn vẹn, bảo mật
và tính sẵn sàng của tài nguyên mạng. Trong thế giới của kết nối, bảo mật đã
trở thành vấn đề lớn đối với tồn tại của hệ thống. Với sự phát triển của Internet
và sự sẵn có của các công cụ, thủ thuật trợ giúp cho xâm nhập và tấn công
12



mạng, yêu cầu kiểm soát truy cập bất hợp pháp là yếu tố rất quan trọng đảm
bảo cho sự ổn định của hệ thống. Như các hệ thống máy tính dựa trên hệ thống
mạng ngày càng có vai trò quan trọng trong xã hội hiện đại, cuộc tấn công vào
hệ thống máy tính và mạng máy tính phát triển phổ biến hơn. Học quy tắc dự
đoán từ dữ liệu mạng là một phương pháp hiệu quả để phát hiện bất thường tự
động hóa và đơn giản hóa phát triển của ngãn hiệu chữ ký xâm nhập. Điều đó
cho thấy rằng các loại khác nhau của cuộc tấn công mạng là có thật - một số
xuất hiện áp đảo, một số hiếm hơn - trong tập các bản ghi kết nối mạng. Ví dụ,
dữ liệu cuộc thi KDD-CUP’99 bao gồm 4 loại tấn công mạng: từ chối dịch vụ
(dos), giám sát (probe), từ xa đến địa phương (r2l) và người sử dụng gốc (u2r).
Giữa 4 loại của sự tấn công, loại u2r và r2l có bản chất hiếm hơn [20].
 Công nghiệp viễn thông
Công nghiệp viễn thông là một trong những ngành công nghiệp mới nổi,
cung cấp nhiều dịch vụ như trên điện thoại di động, Internet, truyền hình ảnh…
Do sự phát triển mạnh của công nghệ máy tính và mạng máy tính, viễn thông
đãng phát triển với tốc độ rất lớn. Đây là lý do tại sao khai phá dữ liệu trở nên
quan trọng trong lĩnh vực này. Khai phá dữ liệu trong ngành công nghiệp viễn
thông, sử dụng tốt hơn nguồn tài nguyên và cải thiện chất lượng dịch vụ viễn
thông. Một số ứng dụng của khai phá dữ liệu trong ngành công nghiệp viễn
thông như: Phân tích dữ liệu đa chiều viễn thông; Xây dựng các mô hình phát
hiện gian lận; Phát hiện bất thường trong giao dịch viễn thông; Phân tích hành
vi sử dụng dịch vụ viễn thông của khách hàng; Sử dụng các công cụ trực quan
trong phân tích dữ liệu viễn thông…[20]
1.2.

Phân lớp dữ liệu mất cân bằng

1.2.1. Dữ liệu mất cân bằng
Một tập dữ liệu được coi là mất cân bằng nếu một trong các lớp có số

lượng của các đối tượng quá nhỏ để so sánh với các lớp khác. Hầu hết các bài
13


báo nghiên cứu chỉ đề cập tới trường hợp có hai phân lớp [3].Một lớp nhỏ hơn
được gọi là lớp thiểu số, và lớp lớn hơn được gọi là lớp đa số.Lớp thiểu số bao
gồm một số đối tượng positive, và lớp đa số bao gồm nhiều đối tượng negative.
Ví dụ, một tập dữ liệu Mammography chứa 10.923 mẫu được gán nhãn
“Negative” (Không ung thư) và 260 mẫu được gán nhãn “Positive” (Ung thư).
Người ta đòi hỏi phải có một bộ phân loại cung cấp mức độ cân bằng của việc
dự đoán độ chính xác (với mức độ lý tưởng là 100%) cho cả lớp thiểu số và lớp
đa số trong tập dữ liệu. Trên thực tế, người ta thấy rằng, các phân loại có xu
hướng cung cấp một mức độ cân bằng của độ chính xác, với lớp đa số có độ
chính xác gần 100% và lớp thiểu số có độ chính xác là 0-10%. Giả sử, một phân
loại đạt độ chính xác là 10% đối với lớp thiểu số, nghĩa là sẽ có 234 mẫu lớp
thiểu số bị phân loại sai thành lớp đa số. Điều đó sẽ dẫn đến 234 bị ung thư
nhưng được chuẩn đoán là không bị ung thư [6]. Như vậy, việc phân lớp nhầm
sẽ gây hậu quả nghiêm trọng. Từ đó cho thấy vai trò của việc giải quyết bài
toán mất cân dữ liệu và đây cũng là vấn đề được nhiều nhà nghiên cứu trong
lĩnh vực học máy quan tâm.
1.2.2. Đặc trưng của dữ liệu mất cân bằng
 Phân bố dữ liệu không cân bằng
Đối với phân lớp nhị phân, mức độ mất cân bằng dữ liệu có thể được biểu
diễn bởi tỉ lệ giữa kích thước mẫu của lớp thiểu số so với lớp đa số. Trong các
ứng dụng thực tế, tỉ lệ này có thể mất cân bằng rất lớn như 1:100, 1:1000 hoặc
thậm chí lớn hơn. Nhiều nghiên cứu đã được tiến hành để đưa ra mối quan hệ
giữa các phân lớp dữ liệu và tính hiệu quả phân lớp. Đa phần những dữ liệu có
phân bố tương đối cân bằng thường đạt hiệu quả phân lớp tối ưu hơn những dữ
liệu mất cân bằng. Hiệu quả phân lớp sẽ giảm xuống khi mức độ chênh lệch đạt
đến một ngưỡng nào đó, các yếu tố khác như kích thước mẫu hay sự phân chia

lớp đều không ảnh hưởng đến hiệu suất.Ví dụ trong một số ứng dụng, tỉ lệ này
14


là 1:35 nhưngcó thể phù hợp để xây dựng một mô hình khác, đối với trường
hợp khác có tỉ lệ là 1:10 lại gặp phải khó khăn khi giải quyết vấn đề [21].
 Kích thước mẫu nhỏ
Kích thước mẫu dữ liệu quá nhỏ cũng ảnh hưởng không nhỏ tới kết quả,
khi đó hiệu quả phân lớp sẽ bị giảm xuống.Điều này khá dễ hiểu, nếu kích thước
mẫu quá nhỏ, tức là số lượng các phần tử ở lớp thiểu số là ít, sẽ không đủ thông
tin và sự chính xác để xây dựng mô hình phân lớp.Có thể nói, với một bộ dữ
liệu đủ lớn thì có thể phân bố dữ liệu không đều cũng không ảnh hưởng nhiều
đến hiệu quả phân lớp. Do đó, sự phân bố trong phân lớp dữ liệu mất cân bằng
có thể không còn là một trở ngại để phân loại dữ liệu nếu bộ dữ liệu lớn được
cung cấp đầy đủ [21].
 Phân chia lớp
Hiệu quả phân lớp cũng bị ảnh hưởng bởi sự phân chia dữ liệu giữa lớp
thiểu số và lớp đa số. Nếu tồn tại một mô hình phân chia rõ ràng giữa các lớp,
đường phân chia các lớp được biểu diễn rất đơn giản và chính xác, sẽ không
cần đưa ra các quy tắc để phân biệt hai lớp dữ liệu. Tuy nhiên, với trường hợp
các phần tử ở mỗi lớp lại có sự chồng chéo, đan xen thông tin lẫn nhau
theonhiều cấp độ trong cùng một không gian đặc trưng thì các quy tắc phân biệt
rất khó được phát hiện và biểu diễn. Khi đó, số lượng mẫu của các lớp thiểu số
có thể bị giảm đáng kể do dự đoán sai trong việc phân chia lớp một cách chính
xác.
 Phân lớp con
Trong thực tế, một phân lớp đơn có thể được tạo thành bởi nhiều lớp con.
Các lớp con này thường không chứa cùng số lượng phần tử, vậy nên cũng có
hiện tượng mất cân bằng dữ liệu giữa các phân lớp con. Khi đó, vấn đề phân
lớp dữ liệu càng trở nên phức tạp hơn bởi mỗi phân lớp con cần một quy tắc

15


khác nhau để mô tả. Điều đó kéo theo quá trình huấn luyện cho các lớp càng
khó khan và giảm tính hiệu quả của việc phân lớp dữ liệu.
1.3.

Một số bài toán phân lớp dữ liệu chuẩn

1.3.1. Cây quyết định (Decision tree)
Cây quyết định là một phương pháp rất mạnh và phổ biến cho cả hai nhiệm
vụ của khai phá dữ liệu là phân lớp và dự đoán. Cấu trúc của cây quyết định
được biểu diễn dưới dạng cây. Trong đó, mỗi nút trong(internal node) biểu diễn
một thuộc tính, nhánh (branch) biểu diễn giá trị có thể có của thuộc tính, mỗi
lá (leaf node) biểu diễn các lớp quyết định và đỉnh trên cùng của cây gọi là gốc
(root). Cây quyết định có thể được dùng để phân lớp bằng cách xuất phát từ
gốc của cây và di chuyển theo các nhánh cho đến khi gặp nút lá. Nút lá này sẽ
cho biết phần tử dữ liệu đó được gán nhãn lớp nào [21]. Trên cơ sở phân lớp
này, chúng ta có thể chuyển đổi về các luật quyết định.Một cây quyết định có
thể được học bằng cách chia tập hợp nguồn thành các tập con dựa theo một
kiểm tra giá trị thuộc tính.
Ví dụ sau đây sẽ giải thích về cây quyết định:
Ta có dữ liệu huấn luyện về 14 đối tượng. Mỗi đối tượng được mô tả bởi
4 thuộc tính là Thời tiết, Nhiệt độ, Độ ẩm, Gió và 1 thuộc tính phân loại là Chơi
golf.
Dữ liệu huấn luyện cho biết sự lựa chọn có chơi golf hay không của người
chơi dựa vào 4 thuộc tính đã cho:

Thời tiết


Nhiệt độ

Độ ẩm

Gió

Chơi golf

Nắng

Nóng

Cao

Nhẹ

Không

Nắng

Nóng

Cao

Mạnh

Không

Âm u


Nóng

Cao

Nhẹ



Mưa

Ấm áp

Cao

Nhẹ



16


Mưa

Mát

Trung bình

Nhẹ




Mưa

Mát

Trung bình

Mạnh

Không

Âm u

Mát

Trung bình

Mạnh



Nắng

Ấm áp

Cao

Nhẹ

Không


Nắng

Mát

Trung bình

Nhẹ



Mưa

Ấm áp

Trung bình

Nhẹ



Nắng

Ấm áp

Trung bình

Mạnh




Âm u

Ấm áp

Cao

Mạnh



Âm u

Nóng

Trung bình

Nhẹ



Mưa

Ấm áp

Cao

Mạnh

Không


Bảng 3. Ví dụ về phân lớp bằng cây quyết định
Để giải quyết bài toán trên, một mô hình cây quyết định được đưa ra để
kiểm tra khi nào chơi golf và khi nào không chơi golf:

Thời tiết
Nắng

Độ ẩm
Cao

Khôn

Mưa

Âm u

Gió


Mạnh

Trung bình



Khôn

Nhẹ




Hình 3. Phân lớp dữ liệu bằng cây quyết định
Việc tạo cây quyết định bao gồm 2 giai đoạn: Tạo cây và tỉa cây. Để tạo
cây ở thời điểm bắt đầu tất cả những dữ liệu huấn luyện là ở gốc, sau đó phân
chia dữ liệu huấn luyện theo cách đệ quy trên thuộc tính được chọn. Việc tỉa

17


cây là xác định và xóa những nhánh mà có phần tử nhiễu hoặc phần tử không
thể phân vào một lớp nào đó[1][9].
Cuối những năm 1970 và đầu những năm 1980, J.Ross Quinlan, một nhà
nghiên cứu trong học máy, đã phát triển thuật toán cây quyết định là ID3
(Iterative Dichotomiser). Sau đó Quinlan đã đưa ra C4.5 (kế tiếp của ID3).Năm
1984, một nhóm các chuyên viên thống kê đã công bố cuốn sách Classification
and Regression Trees (CART), mô tả sự phát triển của cây quyết định nhị
phân[21].Có rất nhiều thuật toán phân lớp, nhưng việc chọn thuật toán nào để
có hiệu quả phân lớp cao phụ thuộc vào rất nhiều yếu tố, trong đó, cấu trúc dữ
liệu ảnh hưởng rất lớn đến kết quả của các thuật toán. Chẳng hạn như thuật toán
ID3 và CART cho hiệu quả phân lớp cao đối với các trường số liệu (quantitative
value), trong khi đó, các thuật toán như J48, C4.5 có hiệu quả cao hơn đối với
các dữ liệu (ordinal, binary, nominal)…
1.3.2. Mạng Bayes (Naïve Bayes)
Naïve Bayes là phương pháp phân loại dựa vào xác suất được sử dụng
rộng rãi trong lĩnh vực máy học, được sử dụng lần đầu tiên trong lĩnh vực phân
loại bởi Maron vào năm 1961, sau đó trở nên phổ biến dùng trong nhiều lĩnh
vực như trong các công cụ tìm kiếm, các bộ lọc email…
Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:
𝑃(𝑌|𝑋) =


𝑃(𝑋𝑌) 𝑃(𝑋|𝑌)𝑃(𝑌)
=
𝑃(𝑋)
𝑃(𝑋)

Áp dụng trong bài toán phân loại, các dữ kiện gồm có:
 D: tập dữ liệu huấn luyện đã được vectơ hóa dưới dạng:
𝑥⃗ = (𝑥1 , 𝑥2 , … , 𝑥𝑛 )
 Ci: phân lớp i, với i = {1,2,..,m}.
 Các thuộc tính độc lập điều kiện đôi một với nhau.
Theo định lý Bayes: 𝑃(𝐶𝑖 |𝑋) =

𝑃(𝑋|𝐶𝑖 )𝑃(𝐶𝑖 )
𝑃(𝑋)

18


Theo tính chất độc lập điều kiện:𝑃(𝑋|𝐶𝑖 ) = ∏𝑛𝑘=1 𝑃(𝑥𝑘 |𝐶𝑖 )
Trong đó:
 𝑃(𝐶𝑖 |𝑋)là xác suất thuộc phân lớp i khi biết trước mẫu X.
 𝑃(𝐶𝑖 )xác suất là phân lớp i.
 𝑃(𝑥𝑘 |𝐶𝑖 )xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân
lớp i.
Các bước thực hiện thuật toán Naïve Bayes:
Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính 𝑃(𝐶𝑖 ) và
𝑃(𝑥𝑘 |𝐶𝑖 )
Bước 2: Phân lớp 𝑋 𝑛𝑒𝑤 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ), ta cần tính xác suất thuộc từng
phân lớp khi đã biết trước Xnew. Xnew được gán vào lớp có xác suất lớn nhất theo

công thức: 𝑚𝑎𝑥 (𝑃(𝐶𝑖 ) ∏𝑛𝑘=1 𝑃(𝑥𝑘 |𝐶𝑖 ))
𝐶𝑖 ∈𝐶

1.3.3. K-láng giềng gần nhất (K-nearest neighbor)
K-nearest neighbor (KNN) làthuật toán phân lớp đơn giản, không có quá
trình học và được sử dụng khá phổ biến trong Data mining. Phương pháp này
phân lớp các đối tượng dựa khoảng cách Euclid của phần tử cần gán nhãn lớp
(Query Point) với tất cả các phần tử dữ liệu trong bộ dữ liệu huấn luyện. KNN
được khám phá bởi nhiều nhà nghiên cứu trên các lĩnh vực khác nhau, đáng
chú ý nhất là Lloyd (1957,1982), Forgey (1965), Friedman và Rubin (1967) và
McQueen (1967) [3].
Thuật toán KNN thực hiện phân lớp một phần tử dựa vào k láng giềng gần
nhất của nó (k là tham số biết trước của thuật toán và là số nguyên).Đầu tiên,
ta tính khoảng cách của đối tượng cần phân lớp tới tất cả các phần tử dữ liệu
trong bộ dữ liệu huấn luyện. Thực hiện sắp xếp các phần tử huấn luyện theo
khoảng cách tăng dần và lấy k láng giềng gần nhất. Phần tử mới sẽ được gán

19


nhãn cho lớp mà chiếm số lượng lớn hơn trong tổng số k láng giềng đang xét
[20].

Hình 4. Phân lớp dữ liệu bằng phương pháp KNN
Hình 4 là một ví dụ về phân lớp dữ liệu bằng phương pháp k-láng giềng
gần nhất, dữ liệu huấn luyện được mô tả bởi dấu (+) và dấu (-). Đối tượng cần
được xác định lớp cho nó là “hình ngôi sao” (query point). Nhiệm vụ của chúng
ta là ước lượng (hay dự đoán) lớp của Query point dựa vào việc lựa chọn số
láng giềng gần nhất với nó. Nói các khác, chúng ta muốn biết liệu Query point
sẽ được phân vào lớp (+) hay lớp (-).

1.3.4. Máy vectơ hỗ trợ (Support Vector Machine)
Support Vector Machine (SMV) là kỹ thuật mới đối với việc phân lớp dữ
liệu, là phương pháp học sử dụng không gian giả thuyết các hàm tuyến tính trên
không gian đặc trưng nhiều chiều, dựa trên lý thuyết tối ưu và lý thuyết thống
kê, được để xuất bởi Vapnik (1995). SVM được ứng dụng thành công trong
việc nhận dạng, phân tích dữ liệu, phân loại gen…[5] Trong kỹ thuật SVM
không gian dữ liệu nhập ban đầu sẽ đuợc ánh xạ vào không gian đặc trưng và
trong không gian đặc trưng này mặt siêu phẳng phân chia tối ưu sẽ được xác
định.
Ta có tập S gồm e các mẫu học:
𝑆 = {(𝑥1 , 𝑦1 ), (𝑥2 , 𝑦2 )(𝑥3 , 𝑦3 ) … (𝑥𝑒 , 𝑦𝑒 )}  (𝑋. 𝑌)𝑒
20


Với một vectơ đầu vào n chiều xi ∈ Rn thuộc lớp I hoặc lớp II (tương ứng
nhãn 𝑦𝑖 = 1 đối với lớp I và 𝑦𝑖 = −1đối với lớp II).Một tập mẫu học được gọi
là tầm thường nếu tất cả các nhãn là bằng nhau.
Đối với các dữ liệu phân chia tuyến tính, ta có thể xác định được siêu
phẳng 𝑓(𝑥)mà nó có thể chia tập dữ liệu.Khi đó, với mỗi siêu phẳng nhận được
ta có𝑓(𝑥) ≥ 0 nếu đầu vào x thuộc lớp dương và f(x) < 0 nếu x thuộc lớp
âm. 𝑓(𝑥) = 𝑤. 𝑥 + 𝑏 = ∑𝑛𝑗=1 𝑤𝑖 𝑥𝑖 + 𝑏
𝑦𝑖 𝑓(𝑥𝑖 ) = 𝑦𝑖 (𝑤. 𝑥𝑖 + 𝑏) ≥ 0, 𝑖 = 1, . . , 𝑙
Trong đó: w là vectơ pháp tuyến n chiều và b là giá trị ngưỡng.
Vectơ pháp tuyến w xác định chiều của siêu phẳng 𝑓(𝑥), còn giá trị
ngưỡng b xác định khoảng cách giữa siêu phẳng gốc.

Hình 5. Ví dụ về phân lớp dữ liệu bằng SMV
Xét một ví dụ về bài toàn phân lớp như hình trên, ở đó ta phải tìm một
đường thẳng sao cho bên trái nó toàn là các điểm đỏ, bên phải nó toàn là các
điểm xanh. Bài toán dùng đường thẳng để phân chia này được gọi là phân lớp

tuyến tính (linear classification).

21


SVM tiếp cận giải quyết vấn đề thông qua khái niệm gọi là lề, đường biên
(margin)… Lề được chọn là khoảng cách nhỏ nhất từ đường phân cách đến mọi
điểm dữ liệu hay là khoảng cách từ đường phân cách đến điểm gần nhất [7].

Hình 6. Đường biên trong SMV
Trong SVM, đường phân lớp tốt nhất chính là đường có khoảng cách
margin lớn nhất (tức là sẽ tồn tại rất nhiều đường phân cách, xoay theo các
phương khác nhau, và ta chọn ra đường phân cách có khoảng cách margin là
lớn nhất).

Hình 7. Minh họa kỹ thuật phân lớp bằng SMV

22


SVM có xu hướng ít gặp phải vấn đề mất cân bằng lớp so với cách thuật
toán học phân lớp khác, bởi đường ranh giới giữa các lớp được tính toán, chỉ
với vài vectơ hỗ trợ và kích cỡ lớp có lẽ không ảnh hướng quá nhiều đến đường
phân lớp. Tuy nhiên, một số công trình nghiên cứu đã chỉ ra rằng SMV có thể
không đạt được hiệu quả trong việc xác định đường phân lớp khi lớp được
phân bố quá lệch. SVM chỉ đơn giản là học cách phân loại mọi thứ như các
lớp phổ biến để tạo nên đường biên lớn nhất và lỗi tối thiểu.
Ta thấy rằng, với các tập dữ liệu của các bài toán phân lớp như vậy sẽ làm
cho mô hình học phân lớp gặp rất nhiều khó khăn trong việc phân lớp cho dữ
liệu của lớp thiểu số. Chính vì vậy, cần phải có những hướng tiếp cận đối trong

việc khai phá dữ liệu, đặc biệt là những bộ dữ liệu mất cân bằng.

23


CHƯƠNG 2: PHƯƠNG PHÁP MỚI DỰA TRÊN ĐƯỜNG BIÊN
VÀ VÙNG AN TOÀN NÂNG CAO HIỆU QUẢ PHÂN LỚPDỮ LIỆU
MẤT CÂNG BẰNG

2.1.

Các phương pháp tiếp cận bài toán phân lớp đối với dữ liệu

mất cân bằng hiện nay
Các vấn đề về mất cân bằng dữ liệu ngày càng được quan tâm và nhấn
mạnh trong những năm gần đây [15]. Nó được ứng dụng rộng rãi trong nhiều
lĩnh vực như Tin - Sinh học, chẩn đoán y tế, mạng lưới giám sát và phát hiện
xâm nhập, gian lận, động đất, các vụ nổ hạt nhân, truy xuất thông tin và các tác
vụ lọc, phân loại văn bản, học phát âm từ…[16] Từ các khía cạnh của từng ứng
dụng, tính chất của vấn đề mất cân bằng được chia làm hai trường hợp: Dữ liệu
bị mất cân bằng một cách tự nhiên hoặc dữ liệu mất cân bằng không tự nhiên
nhưng nó quá tốn kém để đạt được dữ liệu của phân lớp thiểu số.
Một số giải pháp cho vấn đề mất cân bằng lớp được đưa ra là dựa trên mức
độ dữ liệu và mức độ thuật toán. Ở cấp độ dữ liệu, mục đích là để cân bằng sự
phân bố các lớp bởi việc điều chỉnh mẫu vùng dữ liệu. Ở cấp độ thuật toán, các
giải pháp cố gắng thích ứng sự tồn tại các thuật toán học phân lớp để tăng cường
việc học với các mẫu trong phân lớp thiểu số [21].
2.1.1. Phương pháp tiếp cận trên mức độ dữ liệu
Điều chỉnh mẫu là một phương pháp thường được sử dụng trong việc xử
lý vấn đề mất cân bằng lớp, tuy nhiên vấn đề được đưa ra là điều gì hoặc làm

cách nào để quyết định sự phân bố lớp tối ưu cho một tập dữ liệu.
Tăng kích thước mẫu là làm cho số lượng các phần tử ở lớp thiểu số tăng
lên nhằm giảm sự chênh lệch dữ liệu giữa hai phân lớp. Giải pháp này này bao
gồm nhiều hình thức khác nhau của lấy mẫu như: Sinh thêm phần tử ngẫu nhiên;
Sinh thêm phần tử ngẫu nhiên để thay thế; Định hướng sinh thêm phần tử, tức
24


là, không có mẫu mới được tạo nên, nhưng sự chọn lựa các mẫu để thay thế này
được biết trước chứ không phải ngẫu nhiên;Sinh thêm phần tử với sự sinh ra
được thông báo của các mẫu mới; Hoặc sinh phần tử có chủ đích: tăng phần tử
thiểu số ở vùng an toàn (Safe-level), tăng phần tử ở đường biên
(Borderline)…[18] Bên cạnh đó, còn có phương pháp tăng kích thước mẫu
bằng cách sinh ra các phần tử nhân tạo và gán nhãn cho phần tử đó thuộc lớp
thiểu số.SMOTE là thuật toán sinh thêm các phần tử nhân tạo đầu tiên và qua
thực nghiệm đã chứng minh được hiệu quả của nó[13]. Đã có nhiều thuật toán
được cải tiến từ SMOTE như Borderline-SMOTE[11], Safe-levelSMOTE[4]hoặc kết hợp SMOTE với các phương pháp khác.
Giảm kích thước mẫu là việc loại bỏ các phần tử ở lớp đa số, làm cho số
lượng các phần tử ở hai phân lớp giảm bớt tính mất cân bằng. Cách thức đơn
giản nhất của phương pháp này là loại bỏ ngẫu nhiên các phần tử thuộc lớp đa
số mà không cần bất cứ điều kiện gì. Tuy nhiên, trong quá trình loại bỏ ngẫu
nhiên, có thể một số phần tử dữ liệu có giá trị bị xóa bỏ mất, gây thiếu thông
tin và số lượng các phần tử của lớp tập huấn bị giảm đáng kể, ảnh hưởng không
tốt nhỏ tới hiệu quả phân lớp. Ngoài ra, còn có một số phương pháp giảm số
lượng mẫu có chủ đích như giảm phần tử nhiễu ở lớp đa số, với mỗi phương
pháp lại có những định nghĩa khác nhau về phần tử nhiễu. Tiêu biểu như một
số thuật toán đã được công bố sau: Condensed Nearest Neighbor Rule (CNN),
Neighborhood Cleaning Rule (NCL), Edited Nearest Neighbor Rule (ENN),
Tomek links [19].
Như vậy, việc thay đổi phân bố lớp có thể thực hiện bằng nhiều cách như

tăng phần tử lớp thiểu số, giảm phần tử lớp đa số, kết hợp vừa sinh thêm phần
tử lớp thiểu số vừa loại bỏ phần tử lớp đa số hoặc một số phương pháp nâng
cao khác.

25


×