Bài viết trình bày giải pháp xác định tham số k tốt nhất, nhằm tối ưu mô hình phân loại dữ liệu dựa trên thuật toán K Nearest Neighbor. Thuật toán K Nearest Neighbor là một trong các thuật toán được đánh giá đơn giản, hiệu quả và được sử dụng rộng rãi trong lĩnh vực học máy.
Trang 1Tối Ưu Mô Hình Phân Lớp Dữ Liệu Dựa Trên Thuật Toán
K Nearest Neighbor
Nguyễn Thanh! và Trần Đình Sơn?
12 Trường Đại học Công nghệ Thông tin và Truyền thông Việt-Hàn, Đà Nẵng, Việt Nam
{thanhn, tdson}8@vku.udn vn
Tóm tắt Trong những năm gan đây, việc sử dụng trí tuệ nhân tạo để xử lý đữ liệu lớn là rat phé biến Các mô hình xử ly dữ liệu được xây dựng dựa trên các thuật toán học máy để giải quyết các bài toán
cụ thể đã được phát triển rộng rãi Thuật toán K Nearest Neighbor la mét trong các thuật toán được đánh giá đơn giản, hiệu quả và được sử dụng rộng rãi trong lĩnh vực học máy Nó có thể thực hiện trên
ca dữ liệu có cầu trúc hoặc không có cầu trúc, nhằm phân loại đữ liệu và xây dựng các mô hình dự bao, nhận đạng vv Tuy nhiên, kết quá của mô hình phụ thuộc rất lớn vào việc chọn tham số k (số láng giềng gần nhất) Trong bài báo này chúng tôi trình bày giải pháp xác định tham số k tốt nhất, nhằm tối
ưu mô hình phân loại dữ liệu dựa trên thuật toán K Nearest Neighbor
Từ khóa: Học máy, khai phá đữ liệu, phân lớp, K Nearest Neighbor, mô hình, tối ưu
Abstract In recent years, the artificial intelligence it's very common to use to process big data Data processing models built on machine learning algorithms to solve specific problems have been widely developed The K Nearest Neighbor algorithm is one of the simplest, effective and widely used algo- rithms in machine learning field It can be performed on both structured or unstructured data, in order
to classify the data and build predictive, identity, etc models large on the selection of parameter k (number of nearest neighbors) In this paper we present the best solution to determine the parameter k,
to optimize the data classification model based on the K Nearest Neighbor algorithm
Keywords: Machine learning, Data mining, Classification, K Nearest Neighbor, Modeling, Optimiza- tion
1l Giới thiệu
Khai thác dữ liệu được xem là một công nghệ tạo nên sự đột phá mang tính cách mạng trong lĩnh vực thông tin Thuật ngữ khai phá dữ liệu (khám phá tr¡ thức) đề cập đến quá trình phân tích dữ liệu từ các khía cạnh khác nhau và tóm tắt dữ liệu thành những thông tin hữu ích bằng một số công cụ và kỹ thuật phân tích Về mặt kỹ thuật, khai thác dữ liệu là quá trình tìm kiếm các mối tương quan giữa các trường (biến) trong dữ liệu Khai thác dữ liệu bao gồm các chức năng: chuyền đổi, chuẩn hóa, thông kê và tạo các mô hình phân tích và dự đoán đề trích xuất những thông tin hữu ích từ tập đữ liệu lớn, nhằm hỗ trợ cho việc ra quyết định Đặc biệt có thê phân lớp đữ liệu và xây dựng các mô hình dự báo trong tương lai Tuy nhiên, các mô hình
có độ chính xác khác nhau và không cao, do vậy việc tìm giải pháp nâng cao hiệu năng của mô hình là rất cần thiết Trong bài báo này chúng tôi tập trung nghiên cứu và đề xuất giải pháp tối ưu hóa mô hình phân loại dữ liệu dựa trên thuật toán K-Near Phần còn lại của bài báo được trình bày như sau: phan 2 giới thiệu
về phân lớp dữ liệu, phân 3 trình bày thuật toán KNN, phân 4 xây dựng mô hình phân lớp dữ liệu, phần 5
trình bảy giải pháp tối ưu mô hình phân lớp dữ liệu dựa trên thuật toán K Nearest Neighbor, phần 6 so sánh hiệu năng của các mô hình, phân 7 kết luận và hướng nghiên cứu trong tương lai
2 Phân lớp dữ liệu
Các thuật toán phân lớp được tiễn hành gồm 2 bước:
Trang 2Xây dựng mô hình: là mô tả một tập những lớp được định nghĩa trước, trong đó: mỗi bộ hoặc mẫu được gan thuộc về một lớp được định nghĩa trước như là được xác định bởi thuộc tính nhãn lớp, tập hợp của những bộ dữ liệu (observation) được sử dụng trong việc mô hình được gọi là tập huấn luyện (train) Mô hình được biểu diễn bởi những luật phân lớp, cây quyết định và những công thức toán học
Sử dụng mô hình: Việc sử dụng mô hình phục vụ cho mục đích 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 Trước khi sử dụng mô hình cần phải đánh giá tính chính xác của
mô hình, trong đó: nhãn của mẫu kiểm tra được so sánh với kết quả phân lớp của mô hình, độ chính xác
của mô hình là tỷ lệ phần trăm mà mô hình phân loại đúng dựa trên tập dữ liệu kiểm thử (test), tập kiếm thử là độc lập với tập huấn luyện
Có rất nhiều thuật toán dùng để phân lớp đữ liệu Trong bài báo này chúng tôi sử dụng mô hình phân
lớp dựa trên thuật toán K Nearest Neighbor đề triển khai và tối ưu
3 Thuật toán K Nearest Neighbor
Thuat toan K Nearest Neighbor (K-NN) [1] [2] là một thuật toán máy học có giám sát dùng đề phân loại một điểm dữ liệu mới vào lớp đích, tùy thuộc vảo các tính năng của các điểm dữ liệu lân cận của nó, K-NN
là nền tảng của phương pháp học phi tham số Do tính đơn giản và linh hoạt của nó, thuật toán này đã trở thành phương pháp được lựa chọn trong nhiều tình huống học máy [3] Đặc biệt là trong các cải đặt mô hình phức tạp Các ứng dụng hiện đại của thuật toán K-NN bao gồm hệ thông khuyến nghị [4], phân loại văn bản [5], phân loại bệnh tim [6] và dự đoán thị trường tài chính [7] và một số lĩnh vực khác
Ứng dụng thành công thuật toán K-NN đòi hỏi phải có sự lựa chọn can than cua ba thành phan: số lân cận gần nhất k, vectơ trọng số ơ và khoảng cách giữa các điểm đữ liệu Tuy nhiên, vấn đề chọn k và ơ tối
ưu vẫn chưa được hiệu đầy đủ và đã được nghiên cứu rộng rãi từ những năm 1950 với nhiều cách tiếp cận khác nhau Hầu hết các công trình nghiên cứu về lý thuyết đều tập trung vào phương pháp tiệm cận, trong
đó số mẫu n dần đến vô cùng [8], và bỏ qua trường hợp thực tế (n là hữu hạn) Phần lớn các nghiên cứu ứng dụng thuật toán K-NN để tìm giả trị tôi ưu của k trên mỗi tập dữ liệu dường như bỏ qua câu trúc cụ thể của tập dữ liệu và các thuộc tính của các điểm dữ liệu có nhãn mà chúng ta muốn ước tính
Thuật toán phân loại K- Nearest Neighbor có thể dự đoán nhãn đích bằng cách tìm lớp láng giềng gần nhất Lớp gần nhất sẽ được xác định bằng cách sử dụng khoảng cách Euclidean [9]
d(x,y) =
Chọn giá trị của k trong K-Nearest Neighbor là vấn đề quyết định hiệu quả của thuật toán ứng với bộ dữ liệu Nếu chọn giá trị của k nhỏ sẽ có ảnh hưởng lớn đến kết quả, mô hình không chính xác, ngược lại nếu chọn giá trị của k lớn sẽ tốn kém về mặt tính toán Cách tiếp cận phố biến là chọn k = Vn
Trong bài báo nảy, chung tôi đưa ra một cách tiếp cận nhất quán vả có nguyên tắc để lựa chọn k một cách thích ứng trên mỗi điểm dữ liệu Với mỗi điểm dữ liệu, chúng tôi mong muốn tìm ra trọng số cục bộ tốt nhất, theo cách tiếp cận giảm thiêu khoảng cách giữa giá tri dự đoán và giá trị thật Chúng tôi sử dụng
kỹ thuật học máy đề tìm k tốt nhất nhằm tối ưu hóa mô hình
Trang 34 Xây dựng mồ hình
Nạp dữ liệu
Tiền xử lý dữ liệu Chuẩn hóa dữ liệu
ị
Tách dữ liệu (train, test) Xây dựng mô hình
Hình 1 Các bước xây dựng mô hỉnh 4.1 Nạp dữ liệu (chọn dữ liệu)
Đề tiến hành thực nghiệm chúng tôi chọn dữ liệu tại địa chỉ
link https://archive.ics.uci.edu/ml/datasets/Statlog+%28GermantCredit+Data%29 Day la bo dir liéu tin dung ngan hang chia 1000 hé so xin vay von, gém 21 thuéc tinh (bién) sé du tai khoản, số tiền tin dung, tuổi, nghề nghiệp, hồ sơ khoản vay, v.v
"data.frame'": 1000 obs of 21 variables:
$ creditability : int 1111111111
$ Account Balance int 1121111142
$ Duration of.Credit month : int 18 9121212108618 24
$ Payment Status.of.Previous.credit: int 4424444442
$ Purpose : int 2090000033
$ Credit Amount int 1049 2799 841 2122 2171 2241 3398 1361 1098 3758
$ value Savings Stocks int 1121111113
$ Length of current employment int 2343324211
$ Installment per cent int 4223411241
$ Sex Marital Status int 2323333322
$ Guarantors int 11121111111
$ Duration in Current address int 4242434444
$ Most valuable available asset int 2111211134
$ Age years int 21 36 23 39 38 48 39 40 65 23
$ Concurrent.Credits int 3333133333
$ Type of apartment int 1111212221
$ No.of.Credits at this Bank ỉnt 1212222121
$ Occupation int 3322222211
$ No of dependents int 1212121211
$ Telephone : int 1111111111
$ Foreign worker : int 1112222211
Hình 2 Cầu trúc của dữ liệu Chúng tôi chỉ trích xuất các thuộc tính cân thiết phục vụ cho nghiên cứu, trong trường hợp này chúng tôi chọn 8 biến:
"data.frame ` : 1000 obs of 8 variables:
$ creditability : int 1112121121111
$ Age years : int 21 36 23 39 38 48 39 40 65 23
$ Sex Marital Status int 2323333322
$ Credit Amount : int 1049 2799 841 2122 2171 2241 3398 1361 1098 3758
$ Length of current employment: int 2343324211
$ Purpose : int 2090000033
Hinh 3 Các biên được trích xuất
Trang 44.2 Chuẩn hóa dữ liệu
Đề hạn chế sai số trong quá trình phân tích và xây dựng mô hình, chúng tôi chuẩn hóa dữ liệu trước khi thực hiện mỗ hình bằng cách tạo hàm normalize với mục đích chuyên đổi dữ liệu về thang đo từ 0 đến l Tạo hàm chuẩn hóa normalize
normalize = function(x) {
return ((x - min(x)) / (max(x) - min(x)))}
Chuẩn hóa đữ liệu
data normalize = normalize(data))
4.3 Tách dữ liệu và xây dựng mô hình
Đề nhất quán trong quá trình thực nghiệm, chúng tôi tiên hành mô hình hóa và kiểm tra mô hình trên cùng một cấu trúc đữ liệu, nghĩa là chúng tôi chia dữ liệu thành 2 phần theo tỷ lệ 7:3 (7 phần dùng để xây dựng
mô hình và 3 phần dùng để kiểm tra mô hình) Các mẫu trong mỗi phân được trích chọn ngẫu nhiên từ dữ liệu gốc
data_train = random(data, 0.7)
data_test = random(data, 0.3)
model <- knn(data train, data test, cl=train labels, k = Vn)
5 Téiuu mé hinh
Bat dau
| +
K=1, k<n
|
| Mô hinh (k) |
| + | Danh sách Kết quả
‡
| ktu =vị trí(max(danh sách két qua) |
ị
| mô hinh tôi ứu (ktu) | {
Ket thuc
Hinh 4, Thuat toan téi wu mé hinh
Đề tối ưu mô hình, chúng tôi dùng kỹ thuật máy học, cho mô hình tự động nhận lần lượt các gia tri cua k (k = 1,n — 1) ứng với mỗi giá trị của k, mô hình sẽ tính và lưu lại giá trị trong một véc tơ, sau đó tìm vị trí của phần tử có giá trị lớn nhất, xuất hiện đầu tiên trong véc tơ (giá trị k_opt tối ưu) Sau đó truyền giá trị k_opt cho mô hình, chúng ta sẽ có được mô hình tối ưu
Phương pháp tối ưu mô hình
i<=l
k.optm <- 0
result <- c()
for Gin I:n-1){
model <- knn(train=data_train, test=data_test, cl=train labels, k=1)
k.optm[i] <- sum(test_labels == model)/NROW(test_labels)
k=i
result <- append(result,k.optm[1])
}
k_opt <- which.max(result)
model _opt <- knn(train=data train, test=data test, cl=train labels, k=k_opt)
Trang 56 So sánh hiệu năng của hai mô hình trước và sau khi tôi ưu
Chúng tôi tiên hành kiêm tra 2 mô hình trên cùng tập dữ liệu và kết quả tính toán như hình 5a và hình 5b test
model 0 1
0 § 6
1 87 199
Accuracy : 0.69
95% CI : (0.6343, 0.7419)
No Information Rate : 0.6833
P-Value [Acc > NIR] : 0.4291
Kappa : 0.0712
Mcnemar's Test P-Value : <2e-16
Sensitivity : 0.08421
specificity : 0.97073
Pos Pred value : 0.57143
Neg Pred value : 0.69580
Prevalence : 0.31667
Detection Rate : 0.02667
Detection Prevalence : 0.04667
Balanced Accuracy : 0.52747
Hình ãa Kết quả của mô hình trước khi tôi ưu Hình 5b Kết quả của mô hình tốiưu
Dựa vào các giá trị của các mô hình cung cấp, chúng tôi tính được các giá trị đánh giá hiệu năng của
mô hình như: Accuracy, Error, True Positive Rate, True Negative Rate, Precision (bang 1)
Bang 1 Bang so sánh hiệu năng của 2 mé hinh
Accu- Error True Posi- False Posi- TrueNega- Prcci-
Dựa vào bang so sánh hiệu năng của hai mô hình, chúng ta thấy mô hình tối ưu có độ chính xác (Accuracy) cao hơn và tỷ lệ sai số (Error rate) thâp hơn so với mô hình chưa được tôi ưu
7 Kết luận và hướng nghiên cứu trong tương lai
Trong bài báo này, chúng tôi đã tìm được giải pháp tôi ưu mô hình phân lớp dữ liệu dựa trên thuật toán K Nearest Neighbor, với độ chính xác cao hơn so với mô hình truyền thông Tuy nhiên, việc tìm giá trị k tốt
nhất cho mô hình tối ưu, chúng tôi phải thực hiện việc thử mô hình một cách tự động nhiều lần (n-1 lần),
điều này tốn nhiều thời gian tính toán đối với dữ liệu lớn Trong tương lai chúng tôi sẽ tiếp tục nghiên cứu
để xác định ngưỡng trên và ngưỡng dưới nhằm rút gắn thời gian tính toán
Tài liệu tham khảo
1 T M Cover and P E Hart Nearest neighbor pattern classification IEEE Transactions on Information Theory, 13(1):21-27, 1967
2 E Fix and J L Hodges Jr Discriminatory analysis-nonparametric discrimination: consistency properties Tech- nical report, DTIC Document, 1951
3 X Wu, V Kumar, J R Quinlan, J Ghosh, Q Yang, H Motoda, G J McLachlan, A Ng, B Liu, 5 Y Philip, et
al Top 10 algorithms in data mining Knowledge and information systems, 14(1):1-37, 2008
Trang 64 D Adeniyi, Z Wei, and Y Yongquan Automated web usage data mining and recommendation system using k- nearest neighbor (knn) classification method Applied Computing and Informatics, 12(1):90—L08, 2016
5 B Trstenjak, 8 Mikac, and D Donko Knn with tf-idf based framework for text categorization Procedia Engi- neering, 69: 1356-1364, 2014
6 B Deekshatulu, P Chandra, et al Classification of heart disease using k-nearest neighbor and genetic algorithm Procedia Technology, 10:85—94, 2013
7 S B Imandoust and M Bolandraftar Application of k-nearest neighbor (knn) approach for predicting economic events: Theoretical background International Journal of Engineering Research and Applications, 3(5):605—610,
2013
8 L Devroye, L Gy orfi, and G Lugosi A probabilistic theory of pattern recognition, volume 31 Springer Science
& Business Media, 2013
9 Tabak, John (2014), Geometry: The Language of Space and Form, Facts on File math library, Infobase Publishing,
p 150, ISBN 97808 16068760