CẢI TIẾN THUẬT TOÁN K-MEANS VÀ ỨNG DỤNG HỖ TRỢ SINH VIÊN CHỌN CHUYÊN NGÀNH THEO HỌC CHẾ TÍN CHỈ

Phân cụm dữ liệu là phương pháp xử lý thông tin nhằm khám phá mối liên hệ giữa các mẫu dữ liệu bằng cách tổ chức chúng thành các cụm tương tự. Tất cả các dạng dữ liệu được biểu diễn bởi các đặc trưng đó là vectơ n-chiều. Để phân cụm dữ liệu cần thực hiện các bước cơ bản sauTài liệu giúp bạn tham khảo ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

Thông tin:
10 trang 4 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

CẢI TIẾN THUẬT TOÁN K-MEANS VÀ ỨNG DỤNG HỖ TRỢ SINH VIÊN CHỌN CHUYÊN NGÀNH THEO HỌC CHẾ TÍN CHỈ

Phân cụm dữ liệu là phương pháp xử lý thông tin nhằm khám phá mối liên hệ giữa các mẫu dữ liệu bằng cách tổ chức chúng thành các cụm tương tự. Tất cả các dạng dữ liệu được biểu diễn bởi các đặc trưng đó là vectơ n-chiều. Để phân cụm dữ liệu cần thực hiện các bước cơ bản sauTài liệu giúp bạn tham khảo ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

22 11 lượt tải Tải xuống
lOMoARcPSD|50205883
Tp chí Khoa hc công ngh và Thc phm 15 (1) (2018) 152-160
CẢI TIẾN THUẬT TOÁN K-MEANS VÀ ỨNG DỤNG HỖ TRỢ
SINH VIÊN CHỌN CHUYÊN NGÀNH THEO HỌC CHẾ TÍN CHỈ
Nguyễn Văn Lễ*, Mạnh Thiên Lý
Nguyễn Thị Định, Nguyễn Thị Thanh Thu
y
Trường Đại học Công nghiệp Thực phẩm TP.HCM
*Email: lecntp@gmail.com
Ngày nhn bài: 27/4/2018; Ngày chp nhận ăng: 05/6/2018
TÓM TẮT
K-Means là thuật toán ược ng dng rt hiu qu trong nhiu bài toán phân cm d liu.
Nhóm tác gi áp dng thuật toán này phân cm chuyên ngành trên tp d liệu im s, tuy
nhiên thut toán kém hiu qu trong mt s trường hp nên chính xác không cao. vy,
trong bài báo này, nhóm tác gi xuất phương pháp phân cụm trên tp d liu nhóm iểm ặc
trưng cho mỗi chuyên ngành. Ngoài ra, ci tiến thut toán K-Means loi b phn t nhiu
nhm gim thi gian tính toán ca thut toán. Kết qu phân cm s h tr sinh viên Khoa Công
ngh Thông tin, Trường Đại hc Công nghip thc phm Thành ph H Chí Minh la chn
chuyên ngành phù hp.
Từ khóa: K-Means, phân cm d liu, chn chuyên ngành, khong cách Euclid, trng tâm.
1. GIỚI THIỆU
1.1. Phân cm
Phân cm d liệu là phương pháp xử lý thông tin nhm khám phá mi liên h gia các
mu d liu bng cách t chc chúng thành các cụm tương tự. Tt c các dng d liệu ược
biu din bởi các ặc trưng ó là vectơ n-chiều. Để phân cm d liu cn thc hiện các bưc
bản sau:
Chọn ặc trưng: Các ặc trưng lựa chn phi hợp th hoá nhiu nht các thông
tin liên quan ến công vic quan tâm.
Chọn ộ o gần nhất: Một o chỉ ra mức tương t hay không tương tự gia hai vectơ ặc
trưng.
Tiêu chuẩn phân cụm: Tiêu chun phân cm th ược biu din bi hàm chi phí hoc
mt vài quy tc khác.
Công nhận kết quả: Sau khi có kết qu phân cm, cn kiểm tra tính úngn ca nó.
Giải thích kết quả: Bng kết qu thc nghim cần phân tích ể ưa ra kết luận úng ắn.
Một số phương pháp phân cụm iển hình: Phân cm phân hoch, phân cm phân cp, phân
cm da trên mật , phân cm dựa trên lưới, phân cm da trên hình, phân cm ràng
buc. Tác gi chọn phương pháp phân cụm phân hoch nhm gom cm c sinh viên theo
chuyên ngành phù hp da trên iểm s mt s hc phn ã tích lũy ược trong thi gian hc tp.
1.2. Thut toán K-Means
1.2.1. Giới thiệu
K-Means là thut toán rt quan trọng và ược s dng ph biến trong k thut phân cm d
liu [1]. Thut toán này tìm cách phân cm các ối tượng ã cho vào k cụm (k là s cụm ược xác
ịnh trước, k nguyên dương) sao cho tổng bình phương khoảng cách gia các ối tượng ến tâm
cm (centroid) nh nht. Về nguyên lý, n ối tượng, mỗi ối tượng có m thuộc nh, các ối
tượng ược phân chia thành k cụm dựa trên các thuộc tính của ối tượng bằng việc áp dụng thuật
toán K-means. Bài toán này xem mỗi thuộc tính của ối tượng ( ối tượng có m thuộc tính) như
một tọa của không gian m chiều biểu diễn ối tượng như một iểm trong không gian m chiều,
ó là:
𝑎𝑎
𝑎𝑎
= (𝑎𝑎
𝑎𝑎1
, 𝑎𝑎
𝑎𝑎2
, … , 𝑎𝑎
𝑎𝑎𝑎𝑎
) (1)
Trong ó: 𝑎𝑎
𝑎𝑎
(𝑎𝑎 = 1. . 𝑎𝑎): Đối tượng thứ i
𝑎𝑎
𝑎𝑎𝑎𝑎
(𝑎𝑎 = 1. . 𝑎𝑎, 𝑎𝑎 = 1. . 𝑎𝑎): Thuộc tính thứ j của ối tượng i.
1.2.2. Khoảng cách Euclid Phương pháp phân cụm d liu thc hin da trên khong cách
Euclid khong cách nh nht t ối tượng ến phn t trng tâm ca các cm. Phn t trng
tâm ca cụm ược xác ịnh bng giá tr trung bình các phn t trong cm.
𝑎𝑎
𝑎𝑎
= (𝑎𝑎
𝑎𝑎1
, 𝑎𝑎
𝑎𝑎2
, … , 𝑎𝑎
𝑎𝑎𝑎𝑎
); 𝑎𝑎 = 1. . 𝑎𝑎 là ối tượng th i cn phân cm
𝑎𝑎
𝑎𝑎
= (𝑎𝑎
𝑎𝑎1
, 𝑎𝑎
𝑎𝑎2
, … , 𝑎𝑎
𝑎𝑎𝑎𝑎
); 𝑎𝑎 = 1. . 𝑎𝑎 là phn t trng tâm cm j
Khong cách Euclid t ối tượng a
i
ến phn t trng tâm nhóm j; c
j
ược tính toán da trên
công thc:
𝑎𝑎
𝑎𝑎𝑎𝑎
(2)
Trong ó: 𝑎𝑎
𝑎𝑎𝑎𝑎
: Khong cách Euclid t a
i
ến c
j
x
is
: Thuc tính th s của ối tượng a
i
x
js
: Thuc
tính th s ca phn t trng tâm c
j
1.2.3. Phần tử trọng tâm
K phần tử trọng tâm ban ầu ược chọn ngẫu nhiên, sau mỗi lần gom các ối tượng vào các
cụm, phần tử trọng tâm ược tính toán lại:
𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎
𝑎𝑎
= {𝑎𝑎
1
, 𝑎𝑎
2
,… , 𝑎𝑎
𝑎𝑎
} cụm thứ i;
𝑎𝑎 = 1. . 𝑎𝑎; k số cluster
𝑎𝑎 = 1. . 𝑎𝑎; m số thuộc tính
𝑎𝑎: Số phần tử hiện có của nhóm thứ i
𝑎𝑎
𝑎𝑎𝑎𝑎
: Thuc tính th j ca phn t s; 𝑎𝑎 = 1. . 𝑎𝑎
𝑎𝑎
𝑎𝑎𝑎𝑎
: Toạ ộ thứ j của phần tử trung tâm cụm i;
𝑎𝑎
𝑎𝑎𝑎𝑎
=
𝑎𝑎
𝑎𝑎=1
𝑎𝑎
𝑎𝑎𝑎𝑎𝑎𝑎 (3)
Thut toán K-Means [2-4]
Input: S cm k và các trng tâm cm {𝑎𝑎
𝑎𝑎
}; 𝑎𝑎
𝑎𝑎
= 1
Output: Các cm 𝑎𝑎[𝑎𝑎] (1 ≤ 𝑎𝑎 𝑎𝑎) và hàm tiêu chuẩn E ạt giá trị tối thiểu.
Begin
Bước 1: Khởi tạo
Chn k trng m {𝑎𝑎
𝑎𝑎
} (1 ≤ 𝑎𝑎 𝑎𝑎), ban ầu trong không gian R
d
(d là số chiều của
dữ liệu). Việc lựa chọn này thể ngẫu nhiên hoặc theo kinh nghiệm. Bước 2: Tính
khoảng cách
Đối vi mi im 𝑎𝑎
𝑎𝑎
(1 ≤ 𝑎𝑎 𝑎𝑎), tính khoảng cách của nó ti mi trng tâm {𝑎𝑎
𝑎𝑎
}
(1 ≤ 𝑎𝑎 𝑎𝑎). Sau ó tìm trọng tâm gần nhất ối với mỗi iểm.
Bước 3: Cập nhật lại trọng tâm
Đối vi mi 1 ≤ 𝑎𝑎 𝑎𝑎, cập nhật trọng tâm cụm m
j
bằng cách xác ịnh trung bình cộng
các vectơ ối tượng dữ liệu.
Điều kiện dừng: Lặp lại các bước 2 và 3 cho ến khi các trọng tâm của cụm không thay ổi.
End
2. GIẢI PHÁP PHÂN CỤM CHUYÊN NGÀNH
2.1. Chuyên ngành và chn chuyên ngành
Chương trình ào tạo h i hc chính quy ngành Công ngh thông tin ược chia làm 4 chuyên
ngành gm: H thng thông tin, Công ngh phn mm, Mạng máy tính và Thương mại iện t
[5]. Mi chuyên ngành gm nhng hc phn chuyên sâu th hin khi kiến thc c thù của
chuyên ngành ó. Hàng năm, Khoa Công ngh Thông tin thường t chc bui gii thiu chuyên
ngành cho sinh viên năm thứ 3. Qua ó, sinh viên s xác ịnh ược chuyên ngành nào phù hp và
tiến hành ăng môn học theo chuyên ngành ã chọn. Tuy nhiên, th thy vic la chn
chuyên ngành như trên phn ln là cm tính, theo s thích ca sinh viên mà chưa có căn cứ c
th dẫn ến vic chn chuyên ngành không phù hp gây nh hưởng lớn ến kết qu hc tp ca
sinh viên. Nhóm tác gi ưa ra giải pháp thc nghim gii quyết việc ịnh hướng chuyên ngành
cho sinh viên mt cách t ộng căn cứ vào kết qu hc tp nhng hc phn có kiến thc b tr
cho tng chuyên ngành. Các hc phn này ược chn theo từng chuyên ngành như sau:
Chuyên ngành Hệ thống thông tin gồm: Cơ sở d liu, Thực hành cơ sở d liu, H qun
tr sở d liu, Thc hành h qun tr sở d liu, Phân ch thiết kế h thng thông tin,
Thc hành phân tích thiết kế h thng thông tin.
Chuyên ngành Công nghệ phần mềm gm: Ngôn ng lp trình, Thc hành ngôn ng lp
trình, Cu trúc d liu và gii thut, Thc hành cu trúc d liu và gii thut, Lp trình hướng
ối tượng, Thc hành lập trình hướng ối tượng.
Chuyên ngành Mạng máy tính truyền thông gm: Kiến trúc máy nh, H iều hành,
Mng máy tính, Thc hành mng máy tính, Qun tr mng, Thc hành qun tr mng.
Chuyên ngành Thương mại iện tử gm: Thiết kế web, Thc hành thiết kế web, Cơ sở d
liu, Thực hành cơ sở d liệu, Đồ ha máynh, Thực hành ồ họa máy tính, Thương mi iện t
ngành CNTT.
2.2. Tin x lý d liu
D liu thu thập ban u là các tp tin excel cha thông tin iểm hc tp ca sinh viên
i hc khóa 05 ngành Công ngh thông tin. Mi tp tin chứa thông tin iểm s các môn
trong mt hc k ược t chc thành bng nhiu ct dòng, trong ó mỗi ct là mt môn
hc, mi dòng là kết qu hc tp ca mt sinh viên trong hc k ó.
Bảng 1. Bảng iểm tng kết hc k ca sinh viên [7]
Do mi tp tin excel ch cha thông tin v iểm ca mt s môn hc nên cn thc hin
tng hp d liu t nhiu tp tin, sau ó loại b các môn hc chung, ch gi li các môn hc
sở ngành kiến thc b tr cho tng chuyên ngành (theo danh sách môn mc 2.1)
nhm phc v cho bài toán phân cm chuyên ngành.
Bảng 2. Kết qu hc tập thu ược sau bước tin x
2.3. ng dng K-Means trong phân cm chuyên ngành
Thut toán K-Means ược áp dng phân cm cho tng chuyên ngành, mi chuyên
ngành kết qu 2 cm, mt cm gm các sinh viên có kh năng theo học chuyên ngành
ó cụm còn li sinh viên không kh năng học, lp li thuật toán cho ến hết các
chuyên ngành. Trọng tâm ban ầu ca mi cm trong tng chuyên ngành ược ch nh vi 2
mc gọi ngưỡng trên ngưỡng dưới. Ngưỡng trên s gom cm gm nhng sinh viên
kh năng học chuyên ngành, ngưỡng dưới gom cm gm nhng sinh viên không có kh
năng học chuyên ngành.
Thut toán K-Means áp dụng vào bài toán ược trình bày như sau:
Input:
Bảng iểm sinh viên tng hợp ã qua bước tin x
Danh sách các môn học ược chn theo tng chuyên ngành.
Trng tâm ca 2 cm ng với ngưỡng trên (có kh năng) và ngưỡng dưới (không có
kh năng)
Output: Danh sách sinh viên ược phân cm theo tng chuyên ngành danh ch sinh
viên không thuc chuyên ngành nào.
Begin
Bước 1: Khi to
Trng tâm ban u theo tng chuyên ngành 𝑎𝑎
𝑎𝑎𝑎𝑎
(𝑎𝑎
0
,𝑎𝑎
1
,… , 𝑎𝑎
𝑎𝑎
); trong ó ki
trng tâm ca cm i thuc chuyên ngành k; m là im s th m thuc trng tâm 𝑎𝑎
𝑎𝑎𝑎𝑎
Danh sách im s 𝑎𝑎
𝑎𝑎𝑎𝑎
(𝑎𝑎
0
, 𝑎𝑎
1
,… , 𝑎𝑎
𝑎𝑎
); trong ó ki nhóm iểm th i thuc
chuyên ngành k; m là iểm s th m thuộc nhóm iểm 𝑎𝑎
𝑎𝑎𝑎𝑎
Bước 2: Phân cm cho mi chuyên ngành
For k = 1 to N do //Lặp N chuyên ngành
R
k
= K-Means (Q
k
); //Xử lý phân cụm cho chuyên ngành Q
k
// R
k
gồm 2 tập: R
k0
gồm những sinh viên ược phân cụm vào chuyên ngành Q
k
, R
k1
gồm những sinh viên không thuộc chuyên ngành Q
k
Bước 3: X kết qu
For i = 1 to M do//Duyệt qua danh sách M sinh viên ầu vào
Nếu SV
i
{tp tt c các chuyên ngành ã phân cụm}
SV
i
{Danh sách khác}
End
Hình 1. Màn hình to các cm cho các chuyên ngành
Kết qu phân cm cho tng chuyên ngành:
Hình 2. Danh sách sinh viên thuc các chuyên ngành sau khi phân cm
2.4. Cải tiến thuật toán K-Means Kết qu phân cm cho thy phn ln sinh viên ược phân
hoch vào cm thuc chuyên ngành H thng thông tin ều iểm các môn hc trong khong
t 6.0 ến 10.0 iểm (Hình 2). Tuy nhiên, vài trường hợp có iểm mt s môn rt thấp (dưới 2.0)
như sinh viên mã 2001140003 có iểm môn Thc hành h qun tr sở d liệu ạt 7.5 im,
trong khi môn Thực hành cơ sở d liu ch ạt 0.0 iểm nhưng sinh viên này vẫn ược phân hoch
vào cm H thng thông tin. Lý do là vic phân cm này s dng khong cách Euclid.
Theo công thc (2), gi s 2 trng tâm: trng tâm (6, 6, 6) thuc phân cm H thng
thông tin trng tâm (2, 2, 2) không thuc phân cm H thng thông tin. Nếu mt sinh viên
thi 3 môn có iểm lần lượt là 2, 7, 10 thì khong cách Euclid t sinh viên này ến hai trng
tâm là √33, √89. Kết qu sinh viên ược phân hoch vào cm H thng thông tin. Tuy nhiên,
nếu sinh viên này hc chuyên ngành H thng thông tin thì s không th áp ng ược yêu cu
ca chuyên ngành vì có một môn cơ sở ngành ch ạt 2.0 iểm.
Đây iểm hn chế khi áp dng thut toán K-Means trong bài toán này. Để khc phc,
nhóm tác gi xuất phương pháp loại b những trường hp nhiễu như ví dụ trên. Theo quy chế
ào to Tín ch, một sinh viên ạt mt môn hc nếu có iểm hc phần ạt t 4.0 tr lên [6]. Nếu sinh
viên có iểm thi dưới 4.0 thì s phi hc li môn học ó. Do ó, nếu nhóm iểm theo chuyên ngành
của sinh viên có iểm không ạt thì sinh viên khó có th hc tiếp vào chuyên ngành. Vì thế, thc
hin loi b những sinh viên có iểm trong nhóm iểm theo chuyên ngành nh hơn 4.0 và không
tính khoảng cách Euclid t những sinh viên này ến các cm trong quá trình thc hin thut toán
K-Means nhm gim thời gian tính toán i vi chuyên ngành ang xét. Tuy nhiên, nhng sinh
viên này vẫn ược xét li khi phân cm cho chuyên ngành khác. Để thc hiện iều này, cn b
sung vào thut toán K-Means tại bước 2 như sau:
Đối vi mi nhóm im 𝑎𝑎(𝑎𝑎
0
, 𝑎𝑎
1
,… , 𝑎𝑎
𝑎𝑎
) thuc chuyên ngành ang xét, nếu 𝑎𝑎
𝑎𝑎
< 4 thì loi D ra khi tp phân cm. Kết qu thc hiện như sau:
Hình 3. Kết qu phân cm chuyên ngành H thng thông tin sau khi loại iểm nhiu
Vic loi b những iểm nhiu trong quá trình phân cm làm gim áng kể thi gian thc
hin thut toán. Theo th nghim, khi thc hin thut toán 10 ln trên cùng mt tp d liu ầu
vào, cùng một máy tính o thời gian (tính bng mili giây) với 2 phương pháp: không kh
nhiu và có kh nhiu. Kết qu ược th hin trong Hình 4:
Hình 4. Biểu ồ so sánh thi gian thc hin thut toán vi tp d liệu ban ầu
Để kim tra tính hiu qu ca vic kh nhiu, 94 sinh viên trong danh sách sinh viên u
vào b loi b, những sinh viên này ều có iểm các môn dưới 4.0, nghĩa là gim s lượng phn
t nhiu, còn li 220 sinh viên và tiếp tc phân cm với 2 phương pháp như trên. Kết qu ược
th hin trong Hình 5:
Hình 5. Biểu ồ so sánh thi gian thc hin thut toán sau khi loi mt s phn t nhiu
Kết qu trên cho thy, thi gian thc thi thuật toán ã khử nhiễu tương i ổn nh không ph
thuc vào d liu nhiu. Trong khi thuật toán chưa khử nhiu có thi gian thc thi tăng tuyến
tính với lượng d liệu ầu vào.
3. KT LUN ĐÁNH GIÁ
Phân cm d liu hiện nay ang ược ng dng rng rãi trong nhiều lĩnh vực. Thut toán K-
means là mt trong nhng thuật toán ơn gin ca phân cụm nhưng có hiệu qu cao và ược ng
dng rng rãi. Nghiên cu này thc hin phân cm d liu cho bài toán h tr sinh viên Khoa
Công ngh Thông tin, Trường Đại hc Công nghip Thc phm Thành ph H Chí Minh la
chn chuyên ngành. Ngoài ra, nhóm tác gi xuất thêm phương pháp khử bt nhiu da trên
bài toán thc tế quản iểm sinh viên. Kết qu cho thy thi gian thc hin thut toán sau khi
kh nhiu giảm áng kể và gi ý la chn chuyên ngành ca sinh viên khá chính xác. ng dng
trên s giúp sinh viên có quyết ịnh chc chnhợp hơn khi la chn chuyên ngành phù hp
vi kh năng của mình.
TÀI LIỆU THAM KHẢO
1. Thut toán K-Means, 2016.
(http://ungdung.khoa-hnvd.com/Hoc_thuat/KMeans.html).
2. Đinh Mạnh Tường - Hc máy: c k thuật bn hiện i, Nhà xut bản Đại hc
Quc gia Hà Ni, 2015, tr. 480-481.
3. Jame McCaffrey - K-Means data clustering using C#, Visual Studio Magazine, 2013
(https://visualstudiomagazine.com/Articles/2013/12/01/K-Means-Data-
ClusteringUsing-C.aspx?Page=1).
4. Nguyễn Văn Chức - Thut toán K-Means vi bài toán phân cm d liu, BIS 2010
(http://bis.net.vn/forums/t/374.aspx).
5. Trường Đại hc ng nghip Thc phm TP. H Chí Minh.- Chương trình ào tạo ngành
Công ngh thông tin, Quyết ịnh s 2352/-DCT ngày 30 tháng 9 năm 2014.
6. Trường Đại hc Công nghip Thc phm TP. H Chí Minh.- Quy chế Đào tạo Đại hc
theo h thng tín ch, Quyết ịnh s 1603/QĐ-DCT ngày 23 tháng 08 năm 2017.
7. Dliu kết qu hc tp ca sinh viên khóa 05DHTH, Khoa Công ngh Thông tin,
Trường Đại hc Công nghip Thc phm TP.HCM, do Phòng Đào to cung cp.
ABSTRACT
IMPROVEMENT OF K-MEANS ALGORITHM AND APPLICATIONS FOR STUDENTS
TO CHOOSE MAJORS BASED ON CREDITS SYSTEM
Nguyen Van Le*, Manh Thien Ly
Nguyen Thi Dinh, Nguyen Thi Thanh Thuy
Ho Chi Minh City University of Food Industry
*Email: lecntp@gmail.com
K-means algorithm is very effectively used in many applications about database
clustering. The authors applied this algorithm to professional clustering on the score data set,
but the authorithms were inefficient in some cases, so the accuracy was not high. Therefore, in
this paper, a clustering method on the group data set specific to each discipline was proposed.
In addition, the improvement of K-Means algorithm for removing noise items was done in order
to reduce the computation time of the algorithm. The result of this clustering will support
students of Faculty of Information Technology, Ho Chi Minh City University of Food Industry
in choosing their majors.
Keywords: K-Means, clustering, choose specialized, Euclidean distance, centroids.
Giy phép xut bn s 435/GP-BTTTT, ngày 23 tháng 10 năm 2013.
In ti Công ty TNHH Sn xuất Thương mi Dch vụ Khang Hưng Phú.
Số lượng 250 cun, kh 19 x 27 cm. In xong và nộp lưu chiểu tháng 6 năm 2018.
| 1/10

Preview text:

lOMoARcPSD| 50205883
Tạp chí Khoa học công nghệ và Thực phẩm 15 (1) (2018) 152-160
CẢI TIẾN THUẬT TOÁN K-MEANS VÀ ỨNG DỤNG HỖ TRỢ
SINH VIÊN CHỌN CHUYÊN NGÀNH THEO HỌC CHẾ TÍN CHỈ
Nguyễn Văn Lễ*, Mạnh Thiên Lý
Nguyễn Thị Định, Nguyễn Thị Thanh Thủy
Trường Đại học Công nghiệp Thực phẩm TP.HCM
*Email: lecntp@gmail.com
Ngày nhận bài: 27/4/2018; Ngày chấp nhận ăng: 05/6/2018 TÓM TẮT
K-Means là thuật toán ược ứng dụng rất hiệu quả trong nhiều bài toán phân cụm dữ liệu.
Nhóm tác giả áp dụng thuật toán này ể phân cụm chuyên ngành trên tập dữ liệu iểm số, tuy
nhiên thuật toán kém hiệu quả trong một số trường hợp nên ộ chính xác không cao. Vì vậy,
trong bài báo này, nhóm tác giả ề xuất phương pháp phân cụm trên tập dữ liệu nhóm iểm ặc
trưng cho mỗi chuyên ngành. Ngoài ra, cải tiến thuật toán K-Means ể loại bỏ phần tử nhiễu
nhằm giảm thời gian tính toán của thuật toán. Kết quả phân cụm sẽ hỗ trợ sinh viên Khoa Công
nghệ Thông tin, Trường Đại học Công nghiệp thực phẩm Thành phố Hồ Chí Minh lựa chọn chuyên ngành phù hợp.
Từ khóa: K-Means, phân cụm dữ liệu, chọn chuyên ngành, khoảng cách Euclid, trọng tâm. 1. GIỚI THIỆU 1.1. Phân cụm
Phân cụm dữ liệu là phương pháp xử lý thông tin nhằm khám phá mối liên hệ giữa các
mẫu dữ liệu bằng cách tổ chức chúng thành các cụm tương tự. Tất cả các dạng dữ liệu ược
biểu diễn bởi các ặc trưng ó là vectơ n-chiều. Để phân cụm dữ liệu cần thực hiện các bước cơ bản sau:
Chọn ặc trưng: Các ặc trưng lựa chọn phải hợp lý ể có thể mã hoá nhiều nhất các thông
tin liên quan ến công việc quan tâm.
Chọn ộ o gần nhất: Một ộ o chỉ ra mức ộ tương tự hay không tương tự giữa hai vectơ ặc trưng.
Tiêu chuẩn phân cụm: Tiêu chuẩn phân cụm có thể ược biểu diễn bởi hàm chi phí hoặc một vài quy tắc khác.
Công nhận kết quả: Sau khi có kết quả phân cụm, cần kiểm tra tính úng ắn của nó.
Giải thích kết quả: Bằng kết quả thực nghiệm cần phân tích ể ưa ra kết luận úng ắn.
Một số phương pháp phân cụm iển hình: Phân cụm phân hoạch, phân cụm phân cấp, phân
cụm dựa trên mật ộ, phân cụm dựa trên lưới, phân cụm dựa trên mô hình, phân cụm có ràng
buộc. Tác giả chọn phương pháp phân cụm phân hoạch nhằm gom cụm các sinh viên theo
chuyên ngành phù hợp dựa trên iểm số một số học phần ã tích lũy ược trong thời gian học tập.
1.2. Thuật toán K-Means
1.2.1. Giới thiệu
K-Means là thuật toán rất quan trọng và ược sử dụng phổ biến trong kỹ thuật phân cụm dữ
liệu [1]. Thuật toán này tìm cách phân cụm các ối tượng ã cho vào k cụm (k là số cụm ược xác
ịnh trước, k nguyên dương) sao cho tổng bình phương khoảng cách giữa các ối tượng ến tâm
cụm (centroid) là nhỏ nhất. Về nguyên lý, có n ối tượng, mỗi ối tượng có m thuộc tính, các ối
tượng ược phân chia thành k cụm dựa trên các thuộc tính của ối tượng bằng việc áp dụng thuật
toán K-means. Bài toán này xem mỗi thuộc tính của ối tượng ( ối tượng có m thuộc tính) như
một tọa ộ của không gian m chiều và biểu diễn ối tượng như một iểm trong không gian m chiều, ó là:
𝑎𝑎𝑎𝑎 = (𝑎𝑎𝑎𝑎1, 𝑎𝑎𝑎𝑎2, … , 𝑎𝑎𝑎𝑎𝑎𝑎) (1)
Trong ó: 𝑎𝑎𝑎𝑎 (𝑎𝑎 = 1. . 𝑎𝑎): Đối tượng thứ i
𝑎𝑎𝑎𝑎𝑎𝑎 (𝑎𝑎 = 1. . 𝑎𝑎, 𝑎𝑎 = 1. . 𝑎𝑎): Thuộc tính thứ j của ối tượng i.
1.2.2. Khoảng cách Euclid Phương pháp phân cụm dữ liệu thực hiện dựa trên khoảng cách
Euclid là khoảng cách nhỏ nhất từ ối tượng ến phần tử trọng tâm của các cụm. Phần tử trọng
tâm của cụm ược xác ịnh bằng giá trị trung bình các phần tử trong cụm.
𝑎𝑎𝑎𝑎 = (𝑎𝑎𝑎𝑎1, 𝑎𝑎𝑎𝑎2, … , 𝑎𝑎𝑎𝑎𝑎𝑎); 𝑎𝑎 = 1. . 𝑎𝑎 là ối tượng thứ i cần phân cụm
𝑎𝑎𝑎𝑎 = (𝑎𝑎𝑎𝑎1, 𝑎𝑎𝑎𝑎2, … , 𝑎𝑎𝑎𝑎𝑎𝑎); 𝑎𝑎 = 1. . 𝑎𝑎 là phần tử trọng tâm cụm j
Khoảng cách Euclid từ ối tượng ai ến phần tử trọng tâm nhóm j; cj ược tính toán dựa trên công thức: 𝑎𝑎𝑎𝑎𝑎𝑎 (2) Trong ó:
𝑎𝑎𝑎𝑎𝑎𝑎: Khoảng cách Euclid từ ai ến cj
xis: Thuộc tính thứ s của ối tượng ai xjs: Thuộc
tính thứ s của phần tử trọng tâm cj
1.2.3. Phần tử trọng tâm
K phần tử trọng tâm ban ầu ược chọn ngẫu nhiên, sau mỗi lần gom các ối tượng vào các
cụm, phần tử trọng tâm ược tính toán lại:
𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 = {𝑎𝑎1, 𝑎𝑎2,… , 𝑎𝑎𝑎𝑎} – cụm thứ i;
𝑎𝑎 = 1. . 𝑎𝑎; k số cluster
𝑎𝑎 = 1. . 𝑎𝑎; m số thuộc tính
𝑎𝑎: Số phần tử hiện có của nhóm thứ i
𝑎𝑎𝑎𝑎𝑎𝑎: Thuộc tính thứ j của phần tử s; 𝑎𝑎 = 1. . 𝑎𝑎
𝑎𝑎𝑎𝑎𝑎𝑎: Toạ ộ thứ j của phần tử trung tâm cụm i; 𝑎𝑎 = 𝑎𝑎𝑎𝑎
∑𝑎𝑎𝑎𝑎=1𝑎𝑎 𝑎𝑎𝑎𝑎𝑎𝑎 (3)
Thuật toán K-Means [2-4]
Input: Số cụm k và các trọng tâm cụm {𝑎𝑎𝑎𝑎}; 𝑎𝑎𝑎𝑎 = 1
Output: Các cụm 𝑎𝑎[𝑎𝑎] (1 ≤ 𝑎𝑎 ≤ 𝑎𝑎) và hàm tiêu chuẩn E ạt giá trị tối thiểu. Begin
Bước 1: Khởi tạo
Chọn k trọng tâm {𝑎𝑎𝑎𝑎} (1 ≤ 𝑎𝑎 ≤ 𝑎𝑎), ban ầu trong không gian Rd (d là số chiều của
dữ liệu). Việc lựa chọn này có thể là ngẫu nhiên hoặc theo kinh nghiệm. Bước 2: Tính khoảng cách
Đối với mỗi iểm 𝑎𝑎𝑎𝑎 (1 ≤ 𝑎𝑎 ≤ 𝑎𝑎), tính khoảng cách của nó tới mỗi trọng tâm {𝑎𝑎𝑎𝑎}
(1 ≤ 𝑎𝑎 ≤ 𝑎𝑎). Sau ó tìm trọng tâm gần nhất ối với mỗi iểm.
Bước 3: Cập nhật lại trọng tâm
Đối với mỗi 1 ≤ 𝑎𝑎 ≤ 𝑎𝑎, cập nhật trọng tâm cụm mj bằng cách xác ịnh trung bình cộng
các vectơ ối tượng dữ liệu.
Điều kiện dừng: Lặp lại các bước 2 và 3 cho ến khi các trọng tâm của cụm không thay ổi. End
2. GIẢI PHÁP PHÂN CỤM CHUYÊN NGÀNH
2.1. Chuyên ngành và chọn chuyên ngành
Chương trình ào tạo hệ ại học chính quy ngành Công nghệ thông tin ược chia làm 4 chuyên
ngành gồm: Hệ thống thông tin, Công nghệ phần mềm, Mạng máy tính và Thương mại iện tử
[5]. Mỗi chuyên ngành gồm những học phần chuyên sâu thể hiện khối kiến thức ặc thù của
chuyên ngành ó. Hàng năm, Khoa Công nghệ Thông tin thường tổ chức buổi giới thiệu chuyên
ngành cho sinh viên năm thứ 3. Qua ó, sinh viên sẽ xác ịnh ược chuyên ngành nào phù hợp và
tiến hành ăng ký môn học theo chuyên ngành ã chọn. Tuy nhiên, có thể thấy việc lựa chọn
chuyên ngành như trên phần lớn là cảm tính, theo sở thích của sinh viên mà chưa có căn cứ cụ
thể dẫn ến việc chọn chuyên ngành không phù hợp gây ảnh hưởng lớn ến kết quả học tập của
sinh viên. Nhóm tác giả ưa ra giải pháp và thực nghiệm giải quyết việc ịnh hướng chuyên ngành
cho sinh viên một cách tự ộng căn cứ vào kết quả học tập những học phần có kiến thức bổ trợ
cho từng chuyên ngành. Các học phần này ược chọn theo từng chuyên ngành như sau:
Chuyên ngành Hệ thống thông tin gồm: Cơ sở dữ liệu, Thực hành cơ sở dữ liệu, Hệ quản
trị cơ sở dữ liệu, Thực hành hệ quản trị cơ sở dữ liệu, Phân tích thiết kế hệ thống thông tin,
Thực hành phân tích thiết kế hệ thống thông tin.
Chuyên ngành Công nghệ phần mềm gồm: Ngôn ngữ lập trình, Thực hành ngôn ngữ lập
trình, Cấu trúc dữ liệu và giải thuật, Thực hành cấu trúc dữ liệu và giải thuật, Lập trình hướng
ối tượng, Thực hành lập trình hướng ối tượng.
Chuyên ngành Mạng máy tính và truyền thông gồm: Kiến trúc máy tính, Hệ iều hành,
Mạng máy tính, Thực hành mạng máy tính, Quản trị mạng, Thực hành quản trị mạng.
Chuyên ngành Thương mại iện tử gồm: Thiết kế web, Thực hành thiết kế web, Cơ sở dữ
liệu, Thực hành cơ sở dữ liệu, Đồ họa máy tính, Thực hành ồ họa máy tính, Thương mại iện tử ngành CNTT.
2.2. Tiền xử lý dữ liệu
Dữ liệu thu thập ban ầu là các tập tin excel chứa thông tin iểm học tập của sinh viên
ại học khóa 05 ngành Công nghệ thông tin. Mỗi tập tin chứa thông tin iểm số các môn
trong một học kỳ ược tổ chức thành bảng có nhiều cột và dòng, trong ó mỗi cột là một môn
học, mỗi dòng là kết quả học tập của một sinh viên trong học kỳ ó.
Bảng 1. Bảng iểm tổng kết học kỳ của sinh viên [7]
Do mỗi tập tin excel chỉ chứa thông tin về iểm của một số môn học nên cần thực hiện
tổng hợp dữ liệu từ nhiều tập tin, sau ó loại bỏ các môn học chung, chỉ giữ lại các môn học
cơ sở ngành có kiến thức bổ trợ cho từng chuyên ngành (theo danh sách môn ở mục 2.1)
nhằm phục vụ cho bài toán phân cụm chuyên ngành.
Bảng 2. Kết quả học tập thu ược sau bước tiền xử lý
2.3. Ứng dụng K-Means trong phân cụm chuyên ngành
Thuật toán K-Means ược áp dụng phân cụm cho từng chuyên ngành, mỗi chuyên
ngành có kết quả là 2 cụm, một cụm gồm các sinh viên có khả năng theo học chuyên ngành
ó và cụm còn lại là sinh viên không có khả năng học, lặp lại thuật toán cho ến hết các
chuyên ngành. Trọng tâm ban ầu của mỗi cụm trong từng chuyên ngành ược chỉ ịnh với 2
mức gọi là ngưỡng trên và ngưỡng dưới. Ngưỡng trên sẽ gom cụm gồm những sinh viên
có khả năng học chuyên ngành, ngưỡng dưới gom cụm gồm những sinh viên không có khả năng học chuyên ngành.
Thuật toán K-Means áp dụng vào bài toán ược trình bày như sau: Input:
Bảng iểm sinh viên tổng hợp ã qua bước tiền xử lý
Danh sách các môn học ược chọn theo từng chuyên ngành.
Trọng tâm của 2 cụm ứng với ngưỡng trên (có khả năng) và ngưỡng dưới (không có khả năng)
Output: Danh sách sinh viên ược phân cụm theo từng chuyên ngành và danh sách sinh
viên không thuộc chuyên ngành nào. Begin Bước 1: Khởi tạo
Trọng tâm ban ầu theo từng chuyên ngành 𝑎𝑎𝑎𝑎𝑎𝑎(𝑎𝑎0,𝑎𝑎1,… , 𝑎𝑎𝑎𝑎); trong ó ki là
trọng tâm của cụm i thuộc chuyên ngành k; m là iểm số thứ m thuộc trọng tâm 𝑎𝑎𝑎𝑎𝑎𝑎
Danh sách iểm số 𝑎𝑎𝑎𝑎𝑎𝑎(𝑎𝑎0, 𝑎𝑎1,… , 𝑎𝑎𝑎𝑎); trong ó ki là nhóm iểm thứ i thuộc
chuyên ngành k; m là iểm số thứ m thuộc nhóm iểm 𝑎𝑎𝑎𝑎𝑎𝑎
Bước 2: Phân cụm cho mỗi chuyên ngành
For k = 1 to N do //Lặp N chuyên ngành
Rk = K-Means (Qk); //Xử lý phân cụm cho chuyên ngành Qk
// Rk gồm 2 tập: Rk0 gồm những sinh viên ược phân cụm vào chuyên ngành Qk, Rk1
gồm những sinh viên không thuộc chuyên ngành Qk Bước 3: Xử lý kết quả
For i = 1 to M do//Duyệt qua danh sách M sinh viên ầu vào
Nếu SVi {tập tất cả các chuyên ngành ã phân cụm} SVi {Danh sách khác} End
Hình 1. Màn hình tạo các cụm cho các chuyên ngành
Kết quả phân cụm cho từng chuyên ngành:
Hình 2. Danh sách sinh viên thuộc các chuyên ngành sau khi phân cụm
2.4. Cải tiến thuật toán K-Means Kết quả phân cụm cho thấy phần lớn sinh viên ược phân
hoạch vào cụm thuộc chuyên ngành Hệ thống thông tin ều có iểm các môn học trong khoảng
từ 6.0 ến 10.0 iểm (Hình 2). Tuy nhiên, vài trường hợp có iểm một số môn rất thấp (dưới 2.0)
như sinh viên có mã 2001140003 có iểm môn Thực hành hệ quản trị cơ sở dữ liệu ạt 7.5 iểm,
trong khi môn Thực hành cơ sở dữ liệu chỉ ạt 0.0 iểm nhưng sinh viên này vẫn ược phân hoạch
vào cụm Hệ thống thông tin. Lý do là việc phân cụm này sử dụng khoảng cách Euclid.
Theo công thức (2), giả sử có 2 trọng tâm: trọng tâm (6, 6, 6) thuộc phân cụm Hệ thống
thông tin và trọng tâm (2, 2, 2) không thuộc phân cụm Hệ thống thông tin. Nếu một sinh viên
thi 3 môn có iểm lần lượt là 2, 7, 10 thì khoảng cách Euclid từ sinh viên này ến hai trọng
tâm là √33, √89. Kết quả sinh viên ược phân hoạch vào cụm Hệ thống thông tin. Tuy nhiên,
nếu sinh viên này học chuyên ngành Hệ thống thông tin thì sẽ không thể áp ứng ược yêu cầu
của chuyên ngành vì có một môn cơ sở ngành chỉ ạt 2.0 iểm.
Đây là iểm hạn chế khi áp dụng thuật toán K-Means trong bài toán này. Để khắc phục,
nhóm tác giả ề xuất phương pháp loại bỏ những trường hợp nhiễu như ví dụ trên. Theo quy chế
ào tạo Tín chỉ, một sinh viên ạt một môn học nếu có iểm học phần ạt từ 4.0 trở lên [6]. Nếu sinh
viên có iểm thi dưới 4.0 thì sẽ phải học lại môn học ó. Do ó, nếu nhóm iểm theo chuyên ngành
của sinh viên có iểm không ạt thì sinh viên khó có thể học tiếp vào chuyên ngành. Vì thế, thực
hiện loại bỏ những sinh viên có iểm trong nhóm iểm theo chuyên ngành nhỏ hơn 4.0 và không
tính khoảng cách Euclid từ những sinh viên này ến các cụm trong quá trình thực hiện thuật toán
K-Means nhằm giảm thời gian tính toán ối với chuyên ngành ang xét. Tuy nhiên, những sinh
viên này vẫn ược xét lại khi phân cụm cho chuyên ngành khác. Để thực hiện iều này, cần bổ
sung vào thuật toán K-Means tại bước 2 như sau:
Đối với mỗi nhóm iểm 𝑎𝑎(𝑎𝑎0, 𝑎𝑎1,… , 𝑎𝑎𝑎𝑎) thuộc chuyên ngành ang xét, nếu ∃𝑎𝑎𝑎𝑎
< 4 thì loại D ra khỏi tập phân cụm. Kết quả thực hiện như sau:
Hình 3. Kết quả phân cụm chuyên ngành Hệ thống thông tin sau khi loại iểm nhiễu
Việc loại bỏ những iểm nhiễu trong quá trình phân cụm làm giảm áng kể thời gian thực
hiện thuật toán. Theo thử nghiệm, khi thực hiện thuật toán 10 lần trên cùng một tập dữ liệu ầu
vào, cùng một máy tính và o thời gian (tính bằng mili giây) với 2 phương pháp: không khử
nhiễu và có khử nhiễu. Kết quả ược thể hiện trong Hình 4:
Hình 4. Biểu ồ so sánh thời gian thực hiện thuật toán với tập dữ liệu ban ầu
Để kiểm tra tính hiệu quả của việc khử nhiễu, 94 sinh viên trong danh sách sinh viên ầu
vào bị loại bỏ, những sinh viên này ều có iểm các môn dưới 4.0, nghĩa là giảm số lượng phần
tử nhiễu, còn lại 220 sinh viên và tiếp tục phân cụm với 2 phương pháp như trên. Kết quả ược thể hiện trong Hình 5:
Hình 5. Biểu ồ so sánh thời gian thực hiện thuật toán sau khi loại một số phần tử nhiễu
Kết quả trên cho thấy, thời gian thực thi thuật toán ã khử nhiễu tương ối ổn ịnh không phụ
thuộc vào dữ liệu nhiễu. Trong khi thuật toán chưa khử nhiễu có thời gian thực thi tăng tuyến
tính với lượng dữ liệu ầu vào.
3. KẾT LUẬN VÀ ĐÁNH GIÁ
Phân cụm dữ liệu hiện nay ang ược ứng dụng rộng rãi trong nhiều lĩnh vực. Thuật toán K-
means là một trong những thuật toán ơn giản của phân cụm nhưng có hiệu quả cao và ược ứng
dụng rộng rãi. Nghiên cứu này thực hiện phân cụm dữ liệu cho bài toán hỗ trợ sinh viên Khoa
Công nghệ Thông tin, Trường Đại học Công nghiệp Thực phẩm Thành phố Hồ Chí Minh lựa
chọn chuyên ngành. Ngoài ra, nhóm tác giả ề xuất thêm phương pháp khử bớt nhiễu dựa trên
bài toán thực tế quản lý iểm sinh viên. Kết quả cho thấy thời gian thực hiện thuật toán sau khi
khử nhiễu giảm áng kể và gợi ý lựa chọn chuyên ngành của sinh viên khá chính xác. Ứng dụng
trên sẽ giúp sinh viên có quyết ịnh chắc chắn và hợp lý hơn khi lựa chọn chuyên ngành phù hợp
với khả năng của mình.
TÀI LIỆU THAM KHẢO
1. Thuật toán K-Means, 2016.
(http://ungdung.khoa-hnvd.com/Hoc_thuat/KMeans.html).
2. Đinh Mạnh Tường - Học máy: các kỹ thuật cơ bản và hiện ại, Nhà xuất bản Đại học
Quốc gia Hà Nội, 2015, tr. 480-481.
3. Jame McCaffrey - K-Means data clustering using C#, Visual Studio Magazine, 2013
(https://visualstudiomagazine.com/Articles/2013/12/01/K-Means-Data-
ClusteringUsing-C.aspx?Page=1).
4. Nguyễn Văn Chức - Thuật toán K-Means với bài toán phân cụm dữ liệu, BIS 2010
(http://bis.net.vn/forums/t/374.aspx).
5. Trường Đại học Công nghiệp Thực phẩm TP. Hồ Chí Minh.- Chương trình ào tạo ngành
Công nghệ thông tin, Quyết ịnh số 2352/QĐ-DCT ngày 30 tháng 9 năm 2014.
6. Trường Đại học Công nghiệp Thực phẩm TP. Hồ Chí Minh.- Quy chế Đào tạo Đại học
theo hệ thống tín chỉ, Quyết ịnh số 1603/QĐ-DCT ngày 23 tháng 08 năm 2017.
7. Dữ liệu kết quả học tập của sinh viên khóa 05DHTH, Khoa Công nghệ Thông tin,
Trường Đại học Công nghiệp Thực phẩm TP.HCM, do Phòng Đào tạo cung cấp. ABSTRACT
IMPROVEMENT OF K-MEANS ALGORITHM AND APPLICATIONS FOR STUDENTS
TO CHOOSE MAJORS BASED ON CREDITS SYSTEM Nguyen Van Le*, Manh Thien Ly
Nguyen Thi Dinh, Nguyen Thi Thanh Thuy
Ho Chi Minh City University of Food Industry
*Email: lecntp@gmail.com
K-means algorithm is very effectively used in many applications about database
clustering. The authors applied this algorithm to professional clustering on the score data set,
but the authorithms were inefficient in some cases, so the accuracy was not high. Therefore, in
this paper, a clustering method on the group data set specific to each discipline was proposed.
In addition, the improvement of K-Means algorithm for removing noise items was done in order
to reduce the computation time of the algorithm. The result of this clustering will support
students of Faculty of Information Technology, Ho Chi Minh City University of Food Industry in choosing their majors.
Keywords: K-Means, clustering, choose specialized, Euclidean distance, centroids.
Giấy phép xuất bản số 435/GP-BTTTT, ngày 23 tháng 10 năm 2013.
In tại Công ty TNHH Sản xuất Thương mại Dịch vụ Khang Hưng Phú.
Số lượng 250 cuốn, khổ 19 x 27 cm. In xong và nộp lưu chiểu tháng 6 năm 2018.