Paper Title (use style paper title) SMOTE INFFC Giải quyết nhiễu và các phần tử ở đường biên trong phân lớp mất cân bằng, bởi bộ lọc dựa trên sự hợp nhất các phân lớp Hội thảo quốc gia lần thứ XX Một.
Trang 1SMOTE-INFFC: Giải quyết nhiễu và các phần tử ở đường biên trong phân lớp mất cân bằng, bởi bộ lọc dựa trên sự hợp nhất
các phân lớp
Giáp Thị Phương Thảo
Phòng Đào tạo - NCKH
Trường CĐ Sư phạm Điện Biên
Email:giapphuongthao@gmail.c
om
Bùi Dương Hưng Khoa Công nghệ thông tin Trường Đại học Công Đoàn E-mail: hungbd@dhcd.edu.vn
Đặng Xuân Thọ Khoa Công nghệ thông tin Trường Đại học Sư phạm Hà Nội E-mail: thodx@hnue.edu.vn
Tóm tắt:Sự phân bố không đồng
đều giữa các phần tử trong các bộ
dữ liệu được gọi là dữ liệu mất cân
bằng Đối với các tập dữ liệu này
việc phân lớp thường có hiệu suất
thấp Tuy nhiên sự mất cân bằng
phân lớp cũng không phải là vấn đề
chính ảnh hưởng đến hiệu suất phân
lớp mà còn liên quan đến các yếu tố
khác Một trong số đó là sự xuất hiện
của các phần tử nhiễu và phần tử
đường biên (các phần tử nằm xung
quanh khu vực ranh giới lớp) Kỹ
thuật sinh thêm phần tử nhân tạo
(SMOTE) là một trong những
phương pháp tiền xử lý tốt nhất để
cân bằng số lượng các phần tử trong
mỗi lớp Tuy vậy SMOTE còn có
những hạn chế nội tại có thể làm
trầm trọng thêm vấn đề các phần tử
nhân tạo được sinh thêm Bài báo đề
xuất một sự mở rộng mới của
SMOTE thông qua bộ lọc nhiễu dựa
trên sự hợp nhất các phân lớp
(INFFC) có thể khắc phục được các
vấn đề được tạo ra bởi các phần tử
nhiễu và phần tử đường biêntrong
các bộ dữ liệu không cân bằng Phần
mở rộng mới SMOTE-INFFC này
được nghiên cứu thực nghiệm và so
sánh với SMOTE, INFFC cơ bản và
một số các mở rộng của SMOTE Các thí nghiệm được thực hiện trên các bộ dữ liệu mất cân bằng
newthyroid, haberman, ecoli, blood Các kết quả cho thấy rằng cơ chế hoạt động mới tốt hơn các phương pháp hiện có Phân tích các kết quả này cũng giúp xác định các đặc tính của INFFC so với các phương pháp lọc khác.
Keywords: Noise; imbalanced; imbalanced classification
I GIỚI THIỆU Trong khai phá dữ liệu, hai vấn đề phổ biến về chất lượng dữ liệu mà thường ảnh hưởng đến phân lớp dữ liệu trong thực tế là lớp nhiễu và lớp mất cân bằng Lớp nhiễu, nơi các giá trị thuộc tính được ghi nhầm lẫn làm rối một bộ phân lớp và làm giảm hiệu suất dự đoán Lớp mất cân bằng xảy ra khi một lớp chỉ chiếm một phần nhỏ trong những phần tử trong tập dữ liệu, và trong trường hợp như vậy thì phân lớp thường kém chính xác trên lớp thiểu số Hiệu suất phân lớp càng trở nên tồi tệ hơn khi hai vấn đề xảy ra đồng thời
Trang 2Hiện nay để giải quyết bài toàn
phân lớp dữ liệu có chứa lớp mất cân
bằng và lớp nhiễu đa số các nghiên
cứu dựa trên hai hướng tiếp cận
chính là dựa trên mức độ dữ liệu và
dựa trên mức độ thuật toán Tiếp cận
dựa trên mức độ thuật toán là cải tiến
các kỹ thuật tìm kiếm hoặc chiến
lược phân lớp để phù hợp cho loại dữ
liệu mất cân bằng và xử lý đúng đắn
các nhiễu hoặc ít chịu ảnh hưởng bởi
sự xuất hiện của nó Tiếp cận dựa
trên mức độ dữ liệu bao gồm những
phương pháp tiền xử lý các tập dữ
liệu[10][1] nhằm loại bỏ các phần tử
nhiễu như một bước trước và điều
chỉnh phân bố dữ liệu của các lớp
làm giảm tính mất cân bằng trong lớp
mất cân bằng
Một số phương pháp đã được thực
hiện để xử lý dữ liệu nhiễu và mất
cân bằng như sinh thêm phần tử nhân
tạo ở lớp thiểu số SMOTE[10]; sinh
thêm phần tử nhân tạo ở vùng an
toàn Safe-Level SMOTE[2], sinh
thêm phần tử nhân tạo ở khu vực
đường biên Boderline- SMOTE[5]
Ngoài các phương pháp mở rộng
của SMOTE còn có các phương pháp
áp dụng các bộ lọc như: Lọc tập hợp
EF[3], lọc phân vùng IPF[12], lọc
dựa trên sự hợp nhất của các phân
lớp INFFC[8]
Một phương pháp mở rộng mới
của SMOTE đó là kết hợp với bộ lọc
IPF để xử lý nhiễu trong lớp mất cân
bằng cũng đã được giới thiệu vào
năm 2015 đó là SMOTE-IPF
[7].Mặc dù các phương pháp trên đã
có những hiệu quả nhất định đối với
mất cân bằng lớp có dữ liệu nhiễutuy nhiên các phương pháp này vẫn có những hạn chế nhất định như:SMOTE có một số hạn chế liên quan đến sinh thêm phần tử “mù” Bởi vậy việc sinh thêm các phần tử tích cực (ở lớp thiểu số) chỉ làm cho các phần tử mới tạo ra và những phần tử ở mỗi lớp là gần sát nhau Trong khi các đặc tính khác của dữ liệu bị bỏ qua như sự phân bố của các phần tử ở lớp đa số Những phương pháp lọc nhiễu chỉ xử lý được vấn đề về dữ liệu nhiễu chưa giải quyết được vấn dề mất cân bằng
dữ liệu nên khi khi phân lớp dữ liệu cho các bộ dữ liệu mất cân bằng có
xử lý nhiễu khó thực hiện với một số
bộ dữ liệu
Từ đó tác giả đề xuất một sự mở rộng mới của SMOTE thông qua một nhân tố mới với một bộ lọc lặp đi lặp lại dựa trên tập hợp các phân lớp đó
là INFFC (Iterative Noise Filter based on the Fusion of Classifiers)
để loại bỏ nhiễu
Phương pháp SMOTE – INFFC trong phân lớp dữ liệu mất cân bằng Phương pháp này sử dụng kỹ thuật tái lấy mẫu SMOTE để sinh thêm phần tử nhân tạo ở lớp thiểu số, cân bằng phân lớp và áp dụng kỹ thuật lọc INFFC (Iterative Noise Filter based on the Fusion of Classifiers)
để loại bỏ nhiễu ở đường biên Phần
II sẽ giới thiệu chi tiết về phương pháp SMOTE-INFFC Một số kết quả đạt được và đánh giá sẽ được trình bày trong phần III, và cuối cùng
là phần IV sẽ kết luận
Trang 3II PHƯƠNG PHÁP
SMOTE-INFFC XỬ LÝ NHIỄU VÀ CÁC
PHẦN TỬ ĐƯỜNG BIÊN TRONG
PHÂN LỚP MẤT CÂN BẰNG
1.Phương pháp SMOTE
Thuật toán dựa trên lấy mẫu
SMOTE (Synthetic Minority
Over-sampling Technique) được đưa ra
vào năm 2002, thuật toán SMOTE cố
gắng để giải quyết vấn đề mất cân
bằng lớp Nó là một trong những
cách tiếp cận nổi tiếng nhất được
thông qua do sự đơn giản và hiệu quả
của nó Nó là sự kết hợp của
oversampling và undersampling,
nhưng cách tiếp cận oversampling
không phải là bằng cách tái tạo lớp
thiểu số mà xây dựng phần tử dữ liệu
mới ở lớp thiểu số
Dữ liệu nhân tạo ở lớp thiểu số
được sinh thêm bằng cách [10]:
Tìm hàng xóm gần nhất của mỗi
phần tử của lớp thiểu số
Chọn ngẫu nhiên một trong số
những hàng xóm gần nhất (tùy thuộc
vào số lượng phần tử muốn sinh
thêm)
Sinh thêm phần tử nhân tạo trên
đoạn thẳng nối phần tử đang xét và
láng giềng được lựa chọn bằng cách
tính độ lệch giữa véc tơ thuộc tính
của phần tử lớp thiểu số đang xét và
láng giềng của nó Nhân độ lệch này
với một số ngẫu nhiên giữa 0 và 1
Và lấy kết quả thu được thêm nó vào
vector thuộc tính phần tử lớp thiểu số
đang xét
2 Phương pháp INFFC
Phương pháp lọc của INFFC là lọc dựa trên sự kết hợp của các phân lớp Cách thức lọc dựa trên 3 mô hình chính
Lọc toàn bộ (Ensemble-based filtering) Ưu điểm chính của các phương pháp tiếp cận này dựa trên giả thiết thu thập các dự đoán từ các phân lớp khác nhau có thể cung cấp khả năng phát hiện nhiễu tốt hơn so với thu thập thông tin từ một phân lớp đơn lẻ
Lọc lặp lại (Iterative filtering) Sức mạnh của các loại bộ lọc là việc sử dụng một loại bỏ lặp đi lặp lại các phần tử nhiễu dưới ý tưởng rằng các phần tử loại bỏ trong một lần lặp không ảnh hưởng đến việc phát hiện nhiễu trong các bộ lọc tiếp theo Lọc dựa trên số liệu (Metric-based filtering) Các bộ lọc nhiễu này dựa trên tính toán các số đo đối với dữ liệu huấn luyện và thường cho phép người thực hành kiểm soát mức độ
dự đoán của bộ lọc theo cách mà chỉ những ví dụ mà mức độ nhiễu ước tính vượt quá ngưỡng được loại bỏ
Đề xuất lọc của INFFC là sự kết hợp của 3 mô hình nói trên
Ba bước được thực hiện trong mỗi lần lặp đó là [8]:
Lọc sơ bộ (Preliminary filtering): Bước đầu tiên này loại bỏ một phần của nhiễu hiện tại trong lần lặp hiện tại để giảm ảnh hưởng của
nó ở các bước sau Cụ thể hơn, các phần tử nhiễu được xác định với độ tin cậy cao được dự kiến sẽ được loại
bỏ trong bước này
Trang 4Hình 1: Sơ đồ thực hiện lọc của
INFFC [8]
Trong hình 1 lọc sơ bộ thực hiện
như sau: Dữ liệu đưa vào lọc là CT có
khả năng chứa các phần tử nhiễu (CT
= DT ở lần lặp đầu tiên) Do đó, việc
lọc dựa trên những dữ liệu nhiễu này
có thể gây hiểu nhầm vì các mô hình
lọc được xây dựng bị ảnh hưởng bởi
các phần tử nhiễu Vì vậy, các dữ liệu
này không đủ đáng tin cậy để quyết
định loại bỏ các phần tử nhiễu
Trong phần này trước tiên thực hiện
lọc sơ bộ dữ liệu CT ở mỗi lần lặp để
loại bỏ hầu hết các phần tử có khả
năng nhiễu cao Sau đó, xem xét
bước lọc thứ hai, lọc không nhiễu,
trong đó bộ lọc ở giai đoạn này chỉ
được huấn luyện với các phần tử
được coi là không có nhiễu (CPC) vì
vậy xác định nhiễu của lọc không
nhiễu được mong đợi là đáng tin cậy
hơn
Bộ lọc là một hệ thống dựa trên
tập hợp các phân lớp FC (fusion of
classifiers) của ba bộ phân lớp nói C4.5 [6], 3-NN [4] và LOG [11] từ
CT (tập huấn luyện khi bắt đầu lặp lại) Bộ lọc dựa trên FC này được sử dụng để đánh giá các phần tử của cùng bộ CT Các phần tử nhiễu CPN
được xác định bởi bộ lọc sẽ được xoá khỏi CT, dẫn đến dữ liệu huấn luyện
CPC Lọc không nhiễu (Noise-free filtering): Một bộ lọc mới, được tạo
từ dữ liệu đã được dọn sạch một phần từ bước trước, được áp dụng cho tất cả các phần tử huấn luyện trong lần lặp hiện tại, kết quả thành hai bộ phần tử: một bộ sạch và một
bộ nhiễu Bộ lọc này dự kiến sẽ chính xác hơn so với bộ lọc trước đó
vì các bộ lọc nhiễu được xây dựng từ
dữ liệu sạch hơn
Trong hình 1số liệu lọc được cung cấp bởi lọc sơ bộ (CPC) là một bộ dữ liệu sạch hơn tập huấn luyện đầu vào CT Do đó, bộ lọc dựa trên FC được xây dựng từ những dữ liệu sạch hơn CPC này dự kiến sẽ thực hiện xác định nhiễu chính xác hơn trong CT, vì các mô hình được xây dựng để lọc không bị ảnh hưởng bởi các phần tử nhiễu, do các phần tử có khả năng nhiễu cao đã được phát hiện và loại
bỏ khỏi CT Do đó, ở bước thứ hai của mỗi lần lặp, bộ lọc dựa trên FC thực hiện trên bộ dữ liệu CPC Bộ lọc này được đánh giá trên toàn bộ các phần tử CT (tất cả các phần tử huấn luyện ban đầu) Từ đây thu được hai
bộ dữ liệu khác nhau là CC và CN
(CC CT, bao gồm các phần tử được coi là sạch bởi bộ lọc và CN CT, là
DT
CT
Điều kiện dừng CF
Fals
e
Tr u e
I
n
p
u
t
CT CPC
CPC CN CF CN
Ou tpu t Ou tpu t Ou tpu t
Tập huấn luyện
Bộ phân tích
1, Lọc
sơ bộ
2, Lọc không nhiễu 3,xóa nhiễu cuối cùng
Bộ lọc FC(C4
5,
3-NN, LOG
Bộ lọc FC(C4.5, 3-NN, LOGTính số
điểm nhiễu
Trang 5tập các phần tử được coi là có tiềm
năng nhiễu (với CC CN = và CC
CN = CT))
Loại bỏ nhiễu cuối cùng (Final
removal of noise): Bước cuối cùng
này bộ lọc kiểm soát độ nhạy cảm
nhiễu làm giảm số lượng các phần tử
nhiễu bị loại bỏ, đảm bảo rằng chỉ
những phần tử gây nhiễu thực sự mới
bị loại bỏ còn các phần tử nghi ngờ
là nhiễu sẽ được phân tích lại sau
Các phần tử nhiễu được xác định
trong bước lặp thứ hai CN là những
phần tử được xem xét phân tích với
điểm số nhiễu Chúng được sắp xếp
theo điểm số nhiễu, từ những nhiễu
hơn đến nhiễu ít hoặc có thể là
những phần tử sạch được nhận dạng
sai bởi nhiễu do bộ lọc Cuối cùng,
các phần tử vượt quá ngưỡng thiết
lập bởi người dùng sẽ bị loại bỏ Việc
xác định điểm số nhiễu được thực
hiện qua các quan sát sau:
Nhãn lớp của một số phần tử
huấn luyện có thể là sai: Bất kỳ tập
dữ liệu nào cũng dễ bị nhiễu Vì bộ
lọc thiết kế đặc biệt để xử lý các tập
dữ liệu có nhiễu trong lớp nên không
thể tin tưởng vào lớp của tất cả các
phần tử
Các phần tử nhiễu phát hiện bởi
bất kỳ bộ lọc nào có thể không chính
xác: Từ tiền đề ở trên, các quyết định
thu được từ dữ liệu nhiễu cũng có thể
không chính xác Bộ lọc INFFC liên
quan đến các quyết định của bộ lọc
nhiễu trong đó các phần tử nhiễu
được chỉ định Do đó, tập hợp các
phần tử nhiễu phát hiện trong bước
thứ hai tại mỗi lần lặp sẽ được phân tích với điểm số nhiễu
Phần tử trong các cụm nhiễu có
độ tin cậy thấp hơn: Thông tin thu
được từ một cụm phần tử nhiễu, tức
là tập hợp các phần tử nhiễu là không đáng tin cậy Có những phần
tử được dán nhãn là nhiễu do bộ lọc
có thể sạch và ngược lại Tương tự xảy ra với các nhãn lớp: rõ ràng là trong một cụm các phần tử nhiễu, hầu hết trong số chúng sẽ có nhãn lớp được gán không chính xác Vì vậy, thông tin từ các cụm này cần được thận trọng (với sự tự tin ít)
Sự hiện diện của các phần tử với
các nhãn lớp khác nhau trong vùng lân cậncủa một phần tử có thể chỉ ra rằng đó là một phần tử nhiễu: Các
phần tử khác trong vùng lân cận (k hàng xóm gần nhất) của một phần tử
e có nhãn lớp khác với phần tử e thì phần tử e có khả năng như là nhiễu
Sẽ càng có nhiều khả năng e là nhiễu nếu k hàng xóm gần nhất của nó đã được dán nhãn là các phần tử sạch bằng bộ lọc nhiễu
Sự hiện diện của các phần tử với
nhãn lớp tương tự trong vùng lân cận của một phần tử có thể cho thấy
đó là một phần tử sạch: Các phần tử
khác trong vùng lân cận (k hàng xóm gần nhất) của một ví dụ e có cùng nhãn lớp với ví dụ e, thì ví dụ e sẽ sạch hơn Nó thậm chí sẽ rất có thể cho e là sạch nếu hàng xóm gần nhất của nó đã được dán nhãn là phần tử sạch bằng bộ lọc nhiễu Trong bộ lọc INFFC sẽ xem xét các thông tin sau
Trang 6(được cung cấp bởi các phần tử từ
CT) để đặt độ tin cậy (confidence)
của một ví dụ e CN có nhãn nhiễu
là nhiễu:
+ Các kết quả phát hiện của bộ lọc
không có nhiễu FC (liên quan đến
các quan sát 1 và 2): mỗi phần tử
được dán nhãn là sạch hoặc nhiễu
bởi bộ lọc dựa trên FC được xây
dựng trong bước thứ hai của phương
pháp
+ Thông tin của mỗi phần tử huấn
luyện thuộc về hàng xóm của các
phần tử nhiễu khác (liên quan đến
quan sát 3): thời gian một phần tử
trong số k hàng xóm gần nhất của
các phần tử khác được dán nhãn là
nhiễu trong CN (gọi là t(e)) Giá trị
này cung cấp ý tưởng về mức độ liên
quan đến một phần tử trong các khu
vực nhiễu (các cụm với nhiễu) Nếu
giá trị cao, có nghĩa là phần tử này là
một trong những hàng xóm gần nhất
của nhiều phần tử khác có thể có
nhiễu
+ Thông tin về vùng lân cận của
mỗi phần tử e (liên quan đến quan sát
4 và 5) các phân lớp của e và các
phần tử gần e, nghĩa là, k hàng xóm
gần nhất (k = 5 được xem xét trong
bộ lọc này) Dựa trên quan sát 3, hàm
confidence(e) được định nghĩa như
sau:
(1) Hàm này kiểm tra xem phần tử e
có gần các phần tử nhiễu khác
không Nó trả về các giá trị trong
khoảng (0,1] Giá trị của
confidence(e) cao hơn nếu e không
nằm trong vùng lân cận của các phần
tử nhiễu khác, trong khi đó e thấp hơn nếu e nằm trong vùng lân cận của một số phần tử nhiễu Do đó, nếu confidence(e) = 1 (khi e không nằm trong vùng lân cận của bất kỳ phần
tử nhiễu nào), thông tin mà phần tử này cung cấp rất đáng tin cậy (vì nó được gán nhãn lớp là sạch hoặc nhiễu bởi bộ lọc dựa trên FC) Tuy nhiên, nếu confidence(e) 0 (khi e là một trong những hàng xóm gần nhất của nhiều phần tử nhiễu), thông tin
mà nó cung cấp không được tính đến
Tương tự như vậy, dựa trên quan sát 3-5, hàm neighborhood(e) được định nghĩa như sau:
(2) Chức năng này nhằm mục đích phân tích các vùng lân cận của một phần tử e (k hàng xóm gần nhất) để xác định mức độ e đang ở trong một cụm nhiễu Hàm này tính giá trị trung bình của k hàng xóm gần nhất xem xét các lớp (hàm differentClasses(e, ei)), mức độ sạch của mỗi láng giềng của e (chức năng clean(ei)) và độ tin cậy của mỗi hàng xóm (hàm confidence(ei))
Hàm differentClasses(e1; e2), được định nghĩa trong phương trình (3), có tính đến các quan sát 4 (các lớp khác nhau tăng điểm nhiễu) và 5 (các lớp đồng thời làm giảm điểm nhiễu) Trong trường hợp đó, nếu phần tử e và ei lân cận của nó có các nhãn lớp khác nhau thì giá trị
Trang 7neighborhood(e) tăng lên, trong khi
nếu chúng có cùng nhãn lớp thì giá
trị của neighborhood(e) sẽ bị giảm
Hơn nữa, các quan sát 4 và 5 nêu
rõ rằng các phần tử sạch phải có
trọng số cao hơn các phần tử có
nhiễu trong việc tính toán điểm số
nhiễu Do đó, chức năng clean(ei)
được xác định dựa trên việc xem xét
số lượng các phần tử nhiễu xung
quanh một phần tử ei (trong đó n(ei))
là chỉ số độ sạch của phần tử) Do
đó, các phần tử sạch được bao quanh
bởi nhiều phần tử sạch có mức độ
sạch cao hơn các phần tử sạch được
bao quanh bởi các phần tử nhiễu, vì
chúng ta không được tin tưởng vào
thông tin được cung cấp bởi các khu
vực với nhiều phần tử nhiễu (quan
sát 3) Tương tự xảy ra với các phần
tử nhiễu: nếu một phần tử nhiễu
được bao quanh bởi nhiều phần tử
nhiễu khác, thì có thể nói rằng phần
tử này có mức độ nhiễu thấp hơn các
phần tử nhiễu khác bao quanh bởi
các phần tử sạch, được đặt trong một
khu vực đáng tin cậy hơn Vì những
lý do này, chức năng clean(ei) được
định nghĩa như sau:
(4) Hàm isnoise(ei), được sử dụng bởi
clean(ei), chỉ đơn giản trả về 1 nếu ei
là một phần tử nhiễu và -1 nếu nó là
sạch Nhớ lại rằng sự gắn kết của
mỗi phần tử với bộ lọc sạch và nhiễu
được xác định bởi bộ lọc dựa trên FC được sử dụng trong bước thứ hai của quá trình lọc Do đó, chức năng clean(e) cung cấp một giá trị về sự sạch sẽ của phần tử e
Cuối cùng, tính điểm số nhiễu NS cho phần tử e CN là chủ yếu dựa vào phân tích khu vực lân cận của
nó, được đại diện bởi neighborhood(e), và giá trị này được đánh giá bởi độ tin cậy của riêng phần tử e, được đại diện bởi confidence(e) Do đó, cả hai chức năng được kết hợp để xác định điểm
số nhiễu NS(e) như sau:
NS(e) = confidence(e) neighborhood(e)(5)
Như chúng ta đã đề cập, hàm confidence(e) được định nghĩa trong khoảng [0,1], trong khi hàm neighborhood(e) được định nghĩa trong [-1, 1] Do đó, NS được xác định trong khoảng [-1, 1], cao hơn nếu phần tử e có nhiều khả năng có nhiễu Dấu hiệu của kết quả được cung cấp bởi hàm neighborhood(e) xác định nếu phần tử e thực sự là sạch (giá trị âm) hoặc nhiễu (giá trị dương), trong khi giá trị tuyệt đối của nó xác định mức độ tin cậy trong
sự lựa chọn này (giá trị là -1 tương ứng nếu phần tử e hoàn toàn sạch và
1 nếu phần tử e chắc chắn là nhiễu) Một giá trị NS(e) =0 ngụ ý rằng không có thông tin đáng tin cậy về phần tử e được dán nhãn sạch hoặc nhiễu Mặt khác, chức năng confidence(e) là một yếu tố khác xác định mức độ đại diện của kết quả
Trang 8cung cấp bởi neighbourhood(e), dựa
trên mức độ thành viên của e đến các
cụm nhiễu Sau khi tính điểm nhiễu
cho mỗi ví dụ về nhiễu tiềm năng
trong CN, những phần tử có điểm số
nhiễu cao hơn ngưỡng được thiết lập
bởi người dùng sẽ được loại bỏ
3 Phương pháp SMOTE-INFC
Phương pháp INFFC duy trì mức
độ loại bỏ các phần tử nhiễu cân bằng
hơn các bộ lọc nhiễu khác đặc biệt
khi mức độ nhiễu tăng Do đó,
phương pháp INFFC thể duy trì sự
cân bằng giữa các phần tử đã xóa
(phần tử nhiễu) và những phần tử
không nhiễu (phần tử sạch)
Tuy nhiên đối với phân lớp mất
cân bằng thì phương pháp này còn có
những hạn chế nhất định vì vậy tác
giả đề xuất một phương pháp
SMOTE-INFFC để làm giảm tính
mất cân bằng giữa lớp đa số và lớp
thiểu số đồng thời bộ lọc INFFC giúp
xử lý nhiễu và các phần tử ở đường
biên, góp phần nâng cao hiệu quả
phân lớp
Ý tưởng của thuật toán như sau:
Input (tập dữ liệu mất cân bằng
chứa nhiễu)
Output(Tập dữ liệu cân bằng và
sạch)
DT là tập dữ liệu huấn luyện mất
cân bằng gốc
Áp dụng SMOTE với tập D được
tập DT =SMOTE(D) thu được tập dữ
liệu cân bằng
Với mỗi lần lặp:
+ Lọc sơ bộ: áp dụng lần lượt các thuật toán C4.5, 3-NN, LOG vào tập
DT thu được tập dữ liệu sạch DPC
+ Lọc Không nhiễu: Áp dụng lần lượt các thuật toán C4.5, 3-NN, LOG vào tập DPC vừa thực hiện ở lọc sơ bộ thu được 2 tập dữ liệu là DC (tập dữ liệu sạch) và DN (tập dữ liệu nhiễu) + Loại bỏ tập nhiễu: Tại bước này các phần tử nhiễu được xác định ở bước lọc không nhiễu sẽ được tính điểm số nhiễu dựa vào thông tin các phần tử trong tậpdữ liệu huấn luyện
là hàng xóm của những phần tử nhiễu
và thông tin vùng lân cận của các phần tử nhiễu Sau đó các phần tử nhiễu sẽ được sắp xếp theo điểm số này từ nhiễu nhiều đến nhiễu ít Cuối cùng, các phần tử vượt quá ngưỡng thiết lập bởi người dùng sẽ bị loại bỏ
- Kết thúc quá trình thu được tập
dữ liệu sạch DF
Hình 2a mô tả dữ liệu gốc có sự mất cân bằng giữa các phần tử, đồng thời chứa các phần tử nhiễu và phần
tử đường biên Hình 2b dữ liệu được thực hiện bởi phương pháp SMOTE
để cân bằng số lượng phần tử, hình 2c áp dụng lọc INFFC để loại bỏ nhiễu giúp việc phân lớp được thường xuyên
- Ý tưởng chính của thuật toán là loại bỏ nhiễu và các phần tử ở đường biên trong phân lớp mất cân bằng dựa trên sự kết hợp của SMOTE và tập hợp các phân lớp Phương pháp này không làm tăng chi phí phân lớp và cân bằng các phần tử lớp thiểu số với lớp đa số Sơ đồ quá trình thực nghiệm được mô tả trong hình 3 Từ
Ph
ần
tử
đa số Ph
ần
tử thi
ểu số
Trang 9Hội thảo quốc gia lần thứ XX: Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông – Quy Nhơn, 23-24/11/2017
tập dữ liệu huấn luyện ban đầu được
chi thành 2 tập là train (dùng để huấn
luyện) và test (dùng để kiểm thử) tiếp
đó tập train sẽ được thực hiện lần
lượt các phương pháp SMOTE,
INFFC tiếp đó được phân lớp bằng
phương pháp bagging tree, xây dựng
mô hình và kiểm thử trên tập test
Hình 3: Sơ đồ quá trình thực hiện
phương pháp SMOTE-INFFC
III THỰC NGHIỆM VÀ ĐÁNH
GIÁ
1 Dữ liệu
Các bộ dữ liệu được sử dụng là các
bộ dữ liệu thực tế áp dụng cho phân
lớp mất cân bằng với các phần tử
nhiễu và đường biên được trình bày
trong [9] và các bộ dữ liệu dành cho
phân lớp mất cân bằng khác Các bộ
dữ liệu này có sẵn tại kho dữ liệu
KEEL (http://keel.es) và kho dữ liệu
UCI Cụ thể như sau:
BẢNG 1: DỮ LIỆU THỰC
NGHIỆM
Dữ liệu
Số phần tử
Thuộc tính
Tỷ lệ mất cân bằng
abalone 731 8 1:16
newthyroi
haberman 306 3 1:3
yeast 1484 8 1:28
coil2000 5822 85 1:17
2 Cách thực nghiệm
Để đánh giá hiệu quả của phương pháp kết hợp, tôi đã tiến hành cài đặt
và chạy chương trình bằng ngôn ngữ
R Tôi thực nghiệm trên các bộ dữ liệu được trình bày trong bảng 1 với các phương pháp điều chỉnh dữ liệu: SMOTE, INFFC, IPF, BLSMOTE, SLSMOTE và phương pháp SMOTE-INFFC Sau khi áp dụng các phương pháp điều chỉnh dữ liệu, các
bộ dữ liệu mới được phân lớp bằng giải thuật “bagging tree” và thực hiện tính 2 tiêu chí đánh giá AUC và Gmean mục đích là để so sánh kết quả AUC và Gmean của các phương pháp điều chỉnh dữ liệu Kết quả so sánh cuối cùng là giá trị trung bình của Gmean và AUC sau 20 lần thực hiện các phương pháp trên
Hình 4: Kết quả AUC của 7 bộ dữ liệu thực nghiệm
Hình 5: Kết quả Gmean của 7 bộ dữ liệu thực nghiệm
3 Kết quả
Qua kết quả thu được ở Hình 4 và
5 cho thấy phương pháp SMOTE-INFFC có kết quả cao hơn các phương pháp khác về lĩnh vực lọc dữ liệu cũng như các phương pháp có tiền xử lý với SMOTE
Ph
ần
tử
đa số Ph
ần
tử thi
ểu số
Trang 10Hình 6: Phân bố của các bộ dữ liệu: a ablone; b blood; c ecoli;
d.haberman; e newthyroid,; f coil2000; g yeast.
Đối với hướng lọc dữ liệu thì
phương pháp SMOTE-INFFC thực
hiện tốt hơn các phương pháp IPF,
INFFC bởi vì đối với dữ liệu mất cân
bằng thì các phần tử tích cực thường
ít nhưng lại có ý nghĩa quan trọng
cho việc phân lớp Đặc biệt với bộ dữ
liệu coil2000, khi chỉ áp dụng bộ lọc
IPF hoặc INFFC sẽ dẫn đến các
nhiều phần tử thiểu số bị xóa, không
thực hiện phân lớp dữ liệu
Đối với các phương pháp có tiền
xử lý với SMOTE như SMOTE-IPF,
BLSMOTE, SLSMOTE thì phương
pháp của chúng tôi cũng đạt hiệu suất
phân lớp cao hơn hẳn Điều đó là do
sau khi thực hiện tiền xử lý với
SMOTE thì bộ lọc INFFC sẽ loại bỏ
các phần tử nhiễu và phần tử đường
biên có kiểm soát độ nhạy cảm nhiễu
bằng cách tính số điểm nhiễu (được
trình bày trong phần II, mục 2) và
ngưỡng loại bỏ nhiễu không vượt quá
1% dữ liệu huấn luyện
4 Đánh giá
Qua kết quả thực nghiệm chúng
tôi thấy rằng với tất cả các bộ dữ liệu
thực nghiệm thì phương pháp
SMOTE-INFFC cho kết quả tốt Các
bộ dữ liệu ecoli, newthyroid có kết
quả khá cao lần lượt là 0.82, 0.950
bởi các bộ dữ liệu này có phân bố dữ
liệu tốt, ít các phần tử nhiễu và phần
tử đường biên
Các bộ dữ liệu abalone, blood, haberman, coil2000, yeast có AUC
và Gmean thấp hơn vì các bộ dữ liệu này có phân bố không đồng đều, có nhiều phần tử nhiễu và phần tử đường biên
Đối với bộ dữ liệu coil2000 có AUC và Gmean của INFFC và IPF
có giá trị 0 vì trong quá trình áp dụng
bộ lọc các phần tử positive là các phần tử nhiễu và phần tử đường biên khá nhiều dẫn đến bị xóa không thể phân lớp dữ liệu được
Dưới đây là mô tả của cácbộ dữ liệu thực nghiệm.Thông qua các hình ảnh mô tả của các bộ dữ liệu chúng tôi thấy rằng phương pháp SMOTE-INFFC phù hợp với các bộ dữ liệu có phân bố thường xuyên hơn Đối với các bộ dữ liệu liệu mất cân bằng có phân bố chồng chéo thì phương pháp của chúng tôi cũng giải quyết tốt vấn
đề mất cân bằng và nhiễu do sự chồng chéo tạo ra ranh giới lớp thường xuyên hơn như các bộ dữ liệu coil2000, haberman, blood
IV KẾT LUẬN Bài báo đã nghiên cứu phương pháp giải quyết nhiễu ở đường biên trong phân lớp mất cân bằng bởi phương pháp mới đó là kết hợp sinh thêm phần tử nhân tạo và bộ lọc nhiễu dựa trên sự hợp nhất của các phương pháp phân lớp nhằm làm tăng độ chính xác phân lớp dữ liệu
Sự phù hợp của phương pháp này đã