Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 22

VIET NAM NATIONAL UNIVERSITY

HA NOI SCHOOL OF BUSINESS AND MANAGEMENT


----------------------------------------------------------------------------------

PRICE RISK CLUSTERING

Pham Hoang Nhat Nguyen, Pham Duc Cuong,


MEMBER
Nguyen Thi Hong Anh, Do Duc Anh

HA NOI – 2023

1
Mục Lục
I. Mô tả về bài toán, cấu trúc chung của tập dữ liệu, chi tiết từng thuộc tính
trong tập dữ liệu 3
1. Mô tả về bà i toá n 3
2. Mô tả cấ u trú c chung củ a tậ p dữ liệu 4
3. Lự a chọ n kỹ thuậ t khai thá c dữ liệu 5
II. Cơ sở lý thuyết liên quan 5
1. Định nghĩa phâ n cụ m 5
2. K-Means 6
3. Elbow point 7
4. Silhouette score 8
5. Davies-Bouldin 9
III. Kỹ thuật sử dụng trong tiền xử lý dữ liệu 10
IV. Xây dựng mô hình trên Rapidminer 13
V. Xây dựng, trực quan hóa,đánh giá mô hình trên Python 16
1, Xâ y dự ng mô hình 16
2, Trự c quan hó a, đá nh giá mô hình 19

2
I. Mô tả về bài toán, cấu trúc chung của tập dữ liệu, chi tiết từng
thuộc tính trong tập dữ liệu
1. Mô tả về bài toán
Bà i toá n về phâ n cụ m rủ i ro về giá là 1 trong nhữ ng bà i toá n điển hình và
đượ c nghiên cứ u rộ ng rã i trong nhiều nă m trở lạ i đâ y. Sau đâ y, chú ng tô i sẽ đưa
ra mộ t số thô ng tin và mô tả nhấ t định liên quan tớ i bà i toá n. Đầ u tiên, rủ i ro về
phâ n cụ m giá (price clustering risk) liên quan đến rủ i ro mà cá c nhà đầ u tư phả i
đố i mặ t khi giá cổ phiếu tậ p trung và o mộ t số giá trị kết thú c bằ ng cá c con số
nhấ t định. Khi giá cổ phiếu tậ p trung và o cá c giá trị nà y, cá c nhà đầ u tư có thể
gặ p khó khă n trong việc mua hoặ c bá n cổ phiếu vớ i giá mong muố n. Điều nà y có
thể dẫ n đến sự giả m tính thanh khoả n củ a cổ phiếu và gâ y ra rủ i ro cho cá c nhà
đầ u tư khi thự c hiện quyết định giao dịch. Do đó , rủ i ro về phâ n cụ m giá là mộ t
trong nhữ ng yếu tố đượ c xem xét trong quá trình đá nh giá rủ i ro củ a cá c nhà
đầ u tư. Rủ i ro giá cả đó ng vai trò quan trọ ng trong cá c thị trườ ng tà i chính và
kinh doanh.
Hiện tượ ng gom cụ m rủ i ro giá cả (price risk clustering) xuấ t hiện khi cá c
biến độ ng giá xả y ra ở cá c thờ i điểm gầ n nhau, tạ o thà nh cá c "cụ m" trong dữ
liệu thị trườ ng. Mụ c tiêu chính củ a việc nghiên cứ u về hiện tượ ng nà y là để hiểu
và dự đoá n sự biến độ ng giá cả , từ đó giú p cá c nhà đầ u tư và doanh nghiệp đưa
ra cá c quyết định tà i chính thô ng minh. Việc phâ n tích và nhậ n biết cá c cụ m rủ i
ro giá cả có thể giú p cá c nhà đầ u tư:
Dự đoá n xu hướ ng thị trườ ng: Bằ ng cá ch hiểu cá c cụ m rủ i ro giá cả , nhà
đầ u tư có thể dự đoá n đượ c xu hướ ng giá cả trong tương lai gầ n.

3
Quả n lý rủ i ro: Doanh nghiệp và nhà đầ u tư có thể sử dụ ng thô ng tin về
cụ m rủ i ro để thiết lậ p cá c chiến lượ c quả n lý rủ i ro tà i chính, giả m thiểu cá c tổ n
thấ t có thể xả y ra khi thị trườ ng biến độ ng.
Ra quyết định mua bá n chứ ng khoá n: Hiểu rõ về cụ m rủ i ro giá cả giú p
nhà đầ u tư quyết định mua hoặ c bá n chứ ng khoá n tạ i cá c thờ i điểm thích hợ p,
tố i đa hó a lợ i nhuậ n hoặ c giả m thiểu lỗ .
Dự đoá n biến độ ng kinh tế: Cụ m rủ i ro giá cả cũ ng có thể cung cấ p thô ng
tin quý bá u cho cá c nhà nghiên cứ u và chính phủ để dự đoá n cá c biến độ ng kinh
tế và xã hộ i trong tương lai.
Như vậ y, nghiên cứ u về hiện tượ ng gom cụ m rủ i ro giá cả khô ng chỉ hỗ
trợ cá c nhà đầ u tư và doanh nghiệp trong việc đưa ra cá c quyết định tà i chính
mà cò n giú p cả i thiện hiểu biết về hoạ t độ ng củ a thị trườ ng tà i chính.

2. Mô tả cấu trúc chung của tập dữ liệu.


Đây là link data nhóm em đã tìm kiếm và sử dụng: Nhấp vào đây
Trong tậ p dữ liệu nà y, cá c thuộ c tính đều là m rõ đượ c giá trị cũ ng như ý
nghĩa nhấ t định, ngoà i ra là m rõ nhữ ng thô ng tin, số liệu và chủ yếu là loạ i thuộ c
tính số . Theo từ ng cộ t :
Company: Tên củ a cô ng ty (ví dụ như AAPL, tượ ng trưng cho Apple Inc).
Date: Ngà y giao dịch củ a thô ng tin giá cổ phiếu. Cụ thể, dữ liệu bắ t đầ u từ
ngà y 15/06/2023 và kết thú c và o ngà y 17/07/2023.
Giá đó ng cử a hoặ c giá cuố i cù ng củ a cổ phiếu trong ngà y đó . Đâ y là giá
cuố i cù ng củ a cổ phiếu trong ngà y đó và thườ ng đượ c sử dụ ng để đá nh giá hiệu
suấ t chung củ a cổ phiếu trong khoả ng thờ i gian đó .
Volume: Số lượ ng cổ phiếu đã đượ c giao dịch trong ngà y đó và cung cấ p
thô ng tin về mứ c độ quan tâ m củ a nhà đầ u tư và thanh khoả n củ a thị trườ ng.
Open: Giá mở cử a củ a cổ phiếu trong ngà y đó .

4
High: Giá cao nhấ t mà cổ phiếu đạ t đượ c trong ngà y đó .
Low: Giá thấ p nhấ t mà cổ phiếu đạ t đượ c trong ngà y đó .

3. Lựa chọn kỹ thuật khai thác dữ liệu


Kỹ thuậ t khai thá c dữ liệu phâ n cụ m khô ng chỉ là mộ t phương phá p tổ
chứ c dữ liệu mộ t cá ch cấ u trú c, mà cò n là mộ t cá ch để khá m phá và hiểu sâ u
hơn về nguyên nhâ n và hà nh vi đằ ng sau dữ liệu. Trong quá trình nà y, cá c điểm
dữ liệu đượ c nhó m lạ i thà nh cá c cụ m dự a trên cá c đặ c điểm chung mà khô ng
yêu cầ u sự hướ ng dẫ n từ bên ngoà i. Điều nà y cho phép chú ng ta phá t hiện ra
nhữ ng mố i quan hệ tiềm ẩ n, cá c xu hướ ng, và cấ u trú c trong dữ liệu mà có thể
khô ng dễ dà ng nhậ n biết chỉ thô ng qua việc quan sá t dữ liệu tự nhiên.
Trong ngữ cả nh củ a dự á n nà y, việc lự a chọ n kỹ thuậ t khai thá c dữ liệu
phâ n cụ m trở nên đặ c biệt quan trọ ng. Đố i diện vớ i mộ t tậ p dữ liệu lớ n chứ a
hà ng và cộ t, việc phâ n cụ m khô ng chỉ giú p chú ng ta tổ chứ c dữ liệu mộ t cá ch
logic mà cò n giú p loạ i bỏ sự phứ c tạ p từ việc xử lý tấ t cả cá c dữ liệu nà y mộ t
cá ch riêng lẻ. Kỹ thuậ t nà y là chìa khó a để mở khó a nhữ ng thô ng tin tiềm ẩ n về
giá cổ phiếu, giú p chú ng ta định hình và tố i ưu hó a chiến lượ c đầ u tư.
Cụ thể, ở bà i toá n nà y sẽ phâ n nhữ ng thuộ c tính về tên cô ng ty có cù ng
tính chấ t dự a trên nhữ ng yếu tố như “Close/Last”, “High/Low”, “Company” để
nắ m bắ t đượ c đâ u là nhữ ng nhó m cổ phiếu có cù ng giá trị tă ng hay giá trị giả m.
Từ đó hỗ trợ nhà đầ u tư trong việc phâ n bổ quyết định mua cổ phiếu và tố i đa
hó a lợ i nhuậ n.
Kết hợ p vớ i định nghĩa và mô tả chi tiết về dữ liệu, việc lự a chọ n kỹ thuậ t
khai thá c dữ liệu phâ n cụ m khô ng chỉ là quyết định mà cò n là bướ c đi quan
trọ ng để chú ng ta chinh phụ c thá ch thứ c củ a dữ liệu lớ n và phứ c tạ p.

5
II. Cơ sở lý thuyết liên quan
1. Định nghĩa phân cụm
Clustering ( phâ n cụ m ), trong ngữ cả nh củ a má y họ c khô ng giá m sá t, là
mộ t phương phá p phâ n nhó m dữ liệu thà nh cá c nhó m (clusters) dự a trên sự
tương đồ ng củ a chú ng. Mụ c tiêu củ a clustering là tìm ra cá c nhó m dữ liệu tự
nhiên hoặ c ẩ n, mà trong mỗ i nhó m, cá c điểm dữ liệu có sự tương đồ ng lớ n vớ i
nhau, trong khi giữ cho cá c điểm dữ liệu khá c nhó m có sự khá c biệt lớ n.
Quá trình clustering thườ ng bắ t đầ u bằ ng việc định nghĩa mộ t số chỉ số
tương đồ ng (similarity metrics) hoặ c đo lườ ng khoả ng cá ch (distance metrics)
để đo lườ ng mứ c độ tương tự giữ a cá c điểm dữ liệu. Sau đó , cá c thuậ t toá n
clustering sẽ phâ n nhó m cá c điểm dữ liệu bằ ng cá ch tố i ưu hó a mộ t hà m mụ c
tiêu dự a trên độ tương đồ ng hoặ c khoả ng cá ch giữ a cá c điểm.
Có nhiều phương phá p clustering khá c nhau, trong đó hai phương phá p
phổ biến là hierarchical clustering (phâ n cấ p) và k-means clustering (phâ n
nhó m theo trung tâ m). Hierarchical clustering xâ y dự ng cá c cụ m từ ng bướ c
mộ t, bắ t đầ u từ việc mỗ i điểm dữ liệu là mộ t cụ m riêng lẻ và sau đó gom nhó m
chú ng lạ i dự a trên độ tương đồ ng. K-means clustering yêu cầ u xá c định trướ c
số lượ ng cụ m cầ n tạ o ra và lự a chọ n ngẫ u nhiên cá c trung tâ m ban đầ u cho cá c
cụ m, sau đó lặ p đi lặ p lạ i quá trình gá n cá c điểm và o cụ m và cậ p nhậ t lạ i vị trí
trung tâ m cho đến khi hộ i tụ .
Mụ c đích củ a clustering có thể khá c nhau tuỳ thuộ c và o bà i toá n cụ thể.
Nó có thể đượ c sử dụ ng để khá m phá cấ u trú c ẩ n trong dữ liệu, tìm kiếm cá c
nhó m tương đồ ng để phâ n tích, giả m số chiều củ a dữ liệu hoặ c là m bướ c tiền xử
lý cho cá c nhiệm vụ khá c như phâ n loạ i và gom nhó m.

6
2. K-Means
K-means là mộ t thuậ t toá n phâ n cụ m dữ liệu trong lĩnh vự c má y họ c
khô ng giá m sá t. Mụ c tiêu củ a thuậ t toá n K-means là phâ n nhó m cá c điểm dữ
liệu và o cá c cụ m (clusters) khá c nhau dự a trên sự tương đồ ng củ a chú ng. Thuậ t
toá n nà y thuộ c loạ i phâ n vù ng (partitioning) và dự a trên việc tìm kiếm cá c
trung tâ m cụ m (cluster centroids) để xá c định cá c cụ m.
Quá trình hoạ t độ ng củ a thuậ t toá n K-means bao gồ m cá c bướ c sau:
Khở i tạ o: Chọ n mộ t số lượ ng cụ m K mà ta muố n tạ o ra. Tiếp đó , chọ n K
điểm dữ liệu bấ t kỳ là m trung tâ m ban đầ u cho cá c cụ m.
Gá n cá c điểm dữ liệu và o cụ m: Vớ i mỗ i điểm dữ liệu trong tậ p dữ liệu,
tính toá n khoả ng cá ch từ điểm đó đến tấ t cả cá c trung tâ m cụ m và gá n nó và o
cụ m có trung tâ m gầ n nhấ t.
Cậ p nhậ t trung tâ m cụ m: Tính toá n lạ i vị trí trung tâ m cho mỗ i cụ m bằ ng
cá ch lấ y giá trị trung bình củ a tấ t cả cá c điểm dữ liệu thuộ c cụ m đó .
Lặ p lạ i bướ c 2 và 3 cho đến khi khô ng có sự thay đổ i đá ng kể trong việc
gá n cá c điểm dữ liệu và o cá c cụ m hoặ c khi đạ t đến điều kiện dừ ng đượ c xá c
định trướ c (ví dụ : số lầ n lặ p tố i đa).
Thuậ t toá n K-means cố gắ ng tố i ưu hó a hà m mụ c tiêu, đượ c gọ i là hà m
trung bình bình phương tổ ng khoả ng cá ch (sum of squared distances), bằ ng
cá ch tìm kiếm cá c trung tâ m cụ m tố i ưu nhằ m giả m thiểu tổ ng khoả ng cá ch giữ a
cá c điểm dữ liệu và trung tâ m củ a cụ m tương ứ ng.
K-means là mộ t trong nhữ ng thuậ t toá n phâ n cụ m phổ biến và đơn giả n
nhấ t, thườ ng đượ c sử dụ ng trong nhiều ứ ng dụ ng như phâ n nhó m khá ch hà ng,
phâ n loạ i hình ả nh và phâ n tích dữ liệu.

7
3. Elbow point
Elbow point (điểm khuỷu tay) là mộ t phương phá p đượ c sử dụ ng để
ướ c lượ ng số lượ ng cụ m tố i ưu trong thuậ t toá n phâ n cụ m K-means. Ý tưở ng
chính củ a phương phá p Elbow point là tìm điểm trên đườ ng cong biểu đồ hiển
thị sự biến đổ i củ a tổ ng bình phương khoả ng cá ch giữ a cá c điểm dữ liệu và
trung tâ m cụ m (Sum of Squared Distances, SSD) khi số lượ ng cụ m thay đổ i,
tuy nhiên trong bà i tậ p lớ n nà y chú ng tô i thay thế SSD bằ ng ‘Sihouette score’.
Quá trình tìm điểm khuỷu tay thô ng qua phương phá p Elbow point bao
gồ m cá c bướ c sau:
Thự c hiện thuậ t toá n K-means vớ i cá c giá trị K khá c nhau, từ K = 1 đến mộ t giá
trị tố i đa đượ c xá c định trướ c.
Vớ i mỗ i giá trị K, tính tổ ng bình phương khoả ng cá ch (SSD) giữ a cá c điểm dữ
liệu và trung tâ m cụ m tương ứ ng.
Vẽ biểu đồ hiển thị SSD theo số lượ ng cụ m K.
Xem xét biểu đồ và tìm điểm trên đườ ng cong biểu đồ mà sự biến đổ i củ a SSD
giả m nhanh và sau đó giả m chậ m. Điểm nà y tương ứ ng vớ i điểm khuỷu tay trên biểu
đồ .
Ý nghĩa củ a điểm khuỷu tay là ướ c lượ ng số lượ ng cụ m tố i ưu trong thuậ t
toá n K-means. Điểm nà y thườ ng cho thấ y sự câ n bằ ng giữ a việc giả m SSD (tứ c
là tố i ưu hó a phâ n cụ m) và số lượ ng cụ m. Khi số lượ ng cụ m tă ng, SSD thườ ng
giả m do mỗ i cụ m có ít điểm dữ liệu hơn để phâ n chia. Tuy nhiên, tạ i mộ t điểm
nà o đó trên biểu đồ , việc tă ng số lượ ng cụ m khô ng cò n đá ng kể cả i thiện SSD
nữ a, và đâ y chính là điểm khuỷu tay.
Tuy phương phá p Elbow point cung cấ p mộ t ướ c lượ ng về số lượ ng cụ m
tố i ưu, nhưng nó khô ng phả i lự a chọ n tuyệt đố i. Trong mộ t số trườ ng hợ p, biểu
đồ có thể khô ng có mộ t điểm khuỷu tay rõ rà ng, hoặ c có nhiều điểm có thể đượ c
xem là điểm khuỷu tay. Trong nhữ ng trườ ng hợ p như vậ y, cầ n sử dụ ng sự hiểu

8
biết chuyên mô n và sự thử nghiệm để đưa ra quyết định cuố i cù ng về số lượ ng
cụ m tố i ưu.

4. Sihouette score
Silhouette score (điểm silhouette) là mộ t phương phá p định lượ ng đượ c
sử dụ ng để đá nh giá chấ t lượ ng củ a việc phâ n cụ m trong thuậ t toá n K-means
hoặ c cá c thuậ t toá n phâ n cụ m khá c. Điểm silhouette đo lườ ng mứ c độ tá ch biệt
giữ a cá c cụ m và đồ ng thờ i đá nh giá đồ ng nhấ t bên trong mỗ i cụ m.
Để tính toá n điểm silhouette cho mỗ i điểm dữ liệu, ta thự c hiện cá c bướ c
sau:
1. Gá n cá c điểm dữ liệu và o cá c cụ m sử dụ ng thuậ t toá n phâ n cụ m.
2. Đố i vớ i mỗ i điểm dữ liệu trong cụ m, tính toá n hai giá trị: a và b.
a là trung bình khoả ng cá ch từ điểm dữ liệu đó đến tấ t cả cá c điểm dữ liệu
trong cù ng cụ m.
b là giá trị nhỏ nhấ t củ a trung bình khoả ng cá ch từ điểm dữ liệu đó đến
tấ t cả cá c điểm dữ liệu thuộ c cá c cụ m khá c.
Tính toá n giá trị silhouette cho mỗ i điểm dữ liệu bằ ng cô ng thứ c:
silhouette_score = (b - a) / max(a, b)
Tính toá n trung bình củ a tấ t cả cá c giá trị silhouette củ a cá c điểm dữ liệu
để thu đượ c điểm silhouette tổ ng thể cho phâ n cụ m.
Giá trị silhouette score nằ m trong khoả ng [-1, 1]. Cá c trườ ng hợ p phâ n
cụ m tố t sẽ có silhouette score gầ n 1, cho thấ y rằ ng cá c điểm trong cù ng mộ t
cụ m gầ n nhau và xa cá c cụ m khá c. Trong khi đó , silhouette score gầ n -1 cho
thấ y rằ ng cá c điểm dữ liệu trong cù ng mộ t cụ m gầ n nhau, nhưng gầ n cá c cụ m
khá c hơn.
Ý nghĩa củ a độ đo silhouette score là đá nh giá chấ t lượ ng củ a việc phâ n
cụ m. Mộ t điểm silhouette score cao cho thấ y sự phâ n cụ m tố t hơn, trong đó

9
cá c điểm dữ liệu đượ c gom cà ng gầ n nhau và cà ng xa cá c cụ m khá c. Ngượ c lạ i,
mộ t silhouette score thấ p cho thấ y sự phâ n cụ m khô ng tố t, khi cá c điểm dữ liệu
trong cù ng mộ t cụ m gầ n nhau hơn so vớ i cá c cụ m khá c.
Silhouette score có thể đượ c sử dụ ng để so sá nh và lự a chọ n số lượ ng
cụ m tố i ưu trong thuậ t toá n K-means. Giá trị silhouette score cao cho mộ t số
lượ ng cụ m cụ thể cho thấ y đó là sự phâ n cụ m tố t và có thể là lự a chọ n tố i ưu.

5. Davies-Bouldin
Davies-Bouldin là mộ t phương phá p định lượ ng đượ c sử dụ ng để đá nh
giá chấ t lượ ng củ a việc phâ n cụ m trong cá c thuậ t toá n phâ n cụ m. Điểm Davies-
Bouldin (DB) đo lườ ng mứ c độ tá ch biệt giữ a cá c cụ m và đồ ng thờ i đá nh giá sự
đồ ng nhấ t trong mỗ i cụ m.
Để tính toá n điểm Davies-Bouldin cho mỗ i cụ m, ta thự c hiện cá c bướ c
sau:
1. Gá n cá c điểm dữ liệu và o cá c cụ m sử dụ ng thuậ t toá n phâ n cụ m.
2. Đố i vớ i mỗ i cụ m, tính toá n hai giá trị:
Độ tương đồ ng (similarity) trong cụ m: là trung bình củ a khoả ng cá ch giữ a
mỗ i điểm dữ liệu trong cụ m đến trung bình củ a cụ m.
Độ tương đồ ng (similarity) giữ a cá c cụ m: là khoả ng cá ch giữ a hai trung
bình củ a hai cụ m khá c nhau.
Tính toá n mộ t giá trị gọ i là độ đo Davies-Bouldin cho mỗ i cụ m bằ ng cô ng
thứ c:
DB = (similarity_in_cluster_i + similarity_in_cluster_j) /
distance_between_clusters_i_j
Trong đó : similarity_in_cluster_i là độ tương đồ ng trong cụ m i,
similarity_in_cluster_j là độ tương đồ ng trong cụ m j, và distance_between_clusters_i_j
là độ tương đồ ng giữ a hai cụ m i và j.

10
Tính toá n trung bình củ a tấ t cả cá c giá trị Davies-Bouldin củ a cá c cụ m để
thu đượ c điểm Davies-Bouldin tổ ng thể cho phâ n cụ m.
Giá trị Davies-Bouldin cà ng nhỏ thì chấ t lượ ng phâ n cụ m cà ng tố t. Mộ t
giá trị DB gầ n 0 cho thấ y cá c cụ m tá ch biệt và đồ ng nhấ t, trong khi giá trị DB lớ n
cho thấ y sự chồ ng chéo hoặ c khô ng đồ ng nhấ t giữ a cá c cụ m.

III. Kỹ thuật sử dụng trong tiền xử lý dữ liệu


Tiền xử lý dữ liệu là quá trình chuẩ n bị dữ liệu trướ c khi á p dụ ng cá c
thuậ t toá n phâ n tích hoặ c huấ n luyện mô hình. Điều nà y rấ t quan trọ ng vì dữ
liệu thườ ng khô ng hoà n hả o và cầ n đượ c xử lý trướ c khi sử dụ ng. Nếu dữ liệu
khô ng đượ c tiền xử lý đú ng cá ch, nó có thể gâ y ra cá c vấ n đề như sai só t trong
kết quả , mô hình khô ng chính xá c hoặ c phâ n tích khô ng hiệu quả . Do đó , tiền xử
lý dữ liệu là bướ c quan trọ ng nhấ t trong quá trình phâ n tích dữ liệu và ả nh
hưở ng đến chấ t lượ ng và độ chính xá c củ a kết quả phâ n tích.
Dướ i đâ y là mộ t số kỹ thuậ t tiền xử lý dữ liệu phổ biến:
Loại bỏ các giá trị thiếu (Missing Values): Sử dụ ng kỹ thuậ t như xó a
dò ng, điền giá trị mặ c định hoặ c sử dụ ng mô hình để xử lý cá c giá trị thiếu trong
dữ liệu.
Chuẩn hóa dữ liệu (Data Normalization): Đưa cá c giá trị dữ liệu về cù ng
phạ m vi hoặ c cù ng phâ n phố i. Có thể sử dụ ng kỹ thuậ t như Chuẩ n hó a Min-Max,
Chuẩ n hó a Z-Score hoặ c Chuẩ n hó a theo tỷ lệ.
Xử lý biến đổi (Attribute Transformation): Á p dụ ng cá c biến đổ i dữ liệu
để tạ o ra cá c đặ c trưng mớ i. Ví dụ : Logarithm, Square Root, Binning, PCA
(Principal Component Analysis),...
Lựa chọn đặc trưng (Feature Selection): Chọ n ra cá c đặ c trưng quan
trọ ng nhấ t để giả m chiều dữ liệu và cả i thiện hiệu suấ t mô hình. Có thể sử dụ ng

11
cá c kỹ thuậ t như Information Gain, Chi-square, Correlation, Wrapper hoặ c
Embedded methods.
Sắp xếp lại dữ liệu (Data Reshaping): Thay đổ i cấ u trú c củ a dữ liệu để
phù hợ p vớ i mô hình phâ n tích. Ví dụ : Pivot, Unpivot, Transpose,...
Xử lý nhiễu (Noise Handling): Loạ i bỏ hoặ c giả m thiểu nhiễu trong dữ
liệu. Có thể sử dụ ng kỹ thuậ t như Lọ c nhiễu, Smoothing, hay Outlier Detection.
Trong bài, chúng tôi đã tiền xử lý những dữ liệu thông qua Jupyter Notebook:

Hình 3.1: Hình ảnh chương trình in ra tập dữ liệu và loại bỏ giá trị trùng, Nan.
- Loạ i bỏ cá c giá trị trù ng lặ p: df.drop_duplicates(inplace=True) đã đượ c
sử dụ ng để loạ i bỏ cá c hà ng trù ng lặ p trong cộ t dữ liệu. Giú p loạ i bỏ cá c giá trị
khô ng cầ n thiết và giả m kích thướ c tậ p dữ liệu củ a nhó m.
- Xó a cá c hà ng chứ a giá trị thiếu: df.dropna(inplace=True) đượ c sử dụ ng
để loạ i bỏ cá c hà ng chứ a giá trị thiếu trong tậ p dữ liệu. Việc nà y sẽ đả m bả o
rằ ng tậ p dữ liệu chỉ chứ a cá c giá trị đầ y đủ và giả m thiểu sai só t trong quá trình
phâ n tích dữ liệu.
Trong đoạ n code tiếp theo có hai kỹ thuậ t tiền xử lý dữ liệu đượ c nhó m
sử dụ ng:

12
Hình 3.2: Hình ảnh chương trình trong bước tiền xử dữ liệu.

- Định dạ ng lạ i cộ t ngà y thá ng: df['Date']=pd.to_datetime(df['Date'],


format='%m/%d/%Y', errors='coerce').fillna(pd.to_datetime(df['Date'],
format='%d-%m-%Y', errors='coerce')) đượ c sử dụ ng để định dạ ng lạ i cộ t ngà y
thá ng trong tậ p dữ liệu giú p đả m bả o rằ ng cộ t ngà y thá ng đượ c đọ c chính xá c.
- Loạ i bỏ ký tự đặ c biệt:
df[['Close/Last','Open','High','Low']]=df[['Close/Last','Open','High','Low']].appl
ymap(lambda x: str(x).replace('$', '')) đượ c sử dụ ng để loạ i bỏ ký tự đặ c biệt "$"
trong cá c cộ t giá trị củ a tậ p dữ liệu nhằ m đả m bả o rằ ng cá c giá trị đượ c đọ c
đú ng định dạ ng và có thể sử dụ ng cho cá c phâ n tích sau nà y.

IV. Xây dựng mô hình trên Rapid Miner


Để có thể thuậ n tiện trong việc phâ n tích và đưa ra nhữ ng đá nh giá về
phâ n cụ m, từ đó hỗ trợ trong việc đưa ra quyết định đầ u tư cổ phiếu nhằ m tố i
đa hó a lợ i nhuậ n thì RapidMiner là 1 trong nhiều phầ n mềm hỗ trợ trong việc
đó . Cụ thể, RapidMiner là mộ t cô ng cụ phâ n tích dữ liệu mạ nh mẽ và dễ sử
dụ ng. Ngoà i ra, cho phép ngườ i dù ng trích xuấ t thô ng tin quan trọ ng từ cá c tậ p
dữ liệu lớ n và phâ n tích chú ng để tìm ra cá c mẫ u, xu hướ ng và thô ng tin giá trị.
Đặ c biệt, RapidMiner cung cấ p mộ t giao diện trự c quan và hỗ trợ nhiều cô ng cụ

13
phâ n tích dữ liệu như khai phá dữ liệu, mô hình hó a, phâ n loạ i, gom cụ m và họ c
má y. Điều nà y cho phép chú ng ta xâ y dự ng cá c quy trình phâ n tích dữ liệu phứ c
tạ p mà khô ng cầ n viết mã và đượ c hỗ trợ việc tích hợ p vớ i cá c nguồ n dữ liệu
khá c nhau và cung cấ p cá c cô ng cụ trự c quan để trự c quan hó a kết quả phâ n
tích.
Từ định nghĩa trên, chú ng tô i sẽ tiến hà nh sử dụ ng phầ n mềm theo quá
trình như sau :
Thứ nhất, sau khi trả i qua quá trình về tiền xử lý dữ liệu, chú ng tô i tiến
hà nh sử dụ ng bộ dữ liệu mớ i và o bằ ng cá ch sử dụ ng “Import Data” và lưu dữ
liệu và o “Local Repository”.
Thứ hai, tả i dữ liệu đã lưu bằ ng thẻ “Retrieve”, bên cạ nh đó vớ i nhữ ng cộ t
dữ liệu như “Company” và “Date” sẽ ả nh hưở ng phầ n nà o tớ i quy trình phâ n
tích.
Chính vì lý do đó , sự xuấ t hiện củ a thẻ “Set role” nhằ m đặ t cho 2 cộ t nà y
thà nh “Label” và “ID” 1 cá ch lầ n lượ t.
Thứ ba, mộ t trong nhữ ng bướ c quan trọ ng khô ng thể thiếu là chính là
chuẩ n hó a dữ liệu. Điều nà y sẽ khiến cho khoả ng giá trị củ a thuộ c tính đượ c thu
gọ n lạ i. Trong tậ p dữ liệu nà y, ví dụ ở hà ng đầ u tiên, cộ t “Close/Last” từ
“193.990” thà nh “0.897”.Từ đó , việc so sá nh giữ a cá c thuộ c tính sẽ hiệu quả ,dễ
dà ng.
Thứ tư, thuậ t toá n đượ c sử dụ ng cho phầ n phâ n cụ m chính là “K-Mean”.
Cụ thể, thuậ t toá n nà y sẽ tìm cá ch tố i thiểu hoá khoả ng cá ch giữ a điểm dữ liệu
trong cù ng mộ t nhó m và tố i đa hó a khoả ng cá ch giữ a cá c điểm dữ liệu khá c
nhó m.
Cuối cùng, nhó m chú ng tô i tiến hà nh thự c hiện phương thứ c khá c nữ a đó
chính là “Cluster Distance Performance”. Chi tiết hơn, đâ y chính là bộ đo hiệu

14
suấ t thuậ t toá n củ a thuậ t toá n “K-Mean” và bộ đo nà y sẽ cho ra kết quả đo
lườ ng khoả ng cá ch giữ a cá c điểm dữ liệu trong cù ng mộ t nhó m. Theo như kết
quả đã đạ t đượ c :

K=2 -0.581
K=3 -0.781
K=4 -0.675
K=5 -0.794
K=6 -0.674
K=7 -0.694
K=8 -0.784
K=9 -0.739
K = 10 -0.791

Để đá nh giá 1 cá ch chính xá c nhấ t liệu vớ i số k nà o thì chấ t lượ ng phâ n


cụ m cao nhấ t thì chú ng tô i sử dụ ng “metrics” Davies Bouldin Index, cụ thể, khi
chỉ số nà y cà ng nhỏ hơn thì chỉ số đó tố t nhấ t giữ a cá c phâ n cụ m. Dự a và o kết
quả mà chú ng tô i đã thu thậ p, vớ i k = 5 đạ t chỉ số Davies Bouldin Index nhỏ
nhấ t là -0.794.

15
Hình 4.1: Chương trình RapidMiner về bài toán phân cụm.

V. Xây dựng, trực quan hóa,đánh giá mô hình trên Python


1, Xây dựng mô hình
Bên cạ nh nhữ ng phương phá p, ứ ng dụ ng bà i toá n Price Risk Clustering
và o phầ n mềm Rapid Miner thì chú ng tô i sẽ tiến hà nh sử dụ ng cá ch tiếp cậ n
khá c, cụ thể là ứ ng dụ ng Python để xâ y dự ng lên mô hình củ a thuậ t toá n
‘Clustering’ và o bà i toá n trên. Cá c bướ c thự c hiện như sau :
Bước 1: Import thư viện
Mộ t trong nhữ ng bướ c buộ c phả i có để tiến hà nh, hoà n thà nh xâ y dự ng
mô hình đó là ‘import’ nhữ ng thư viện cầ n thiết cho quy trình. Cụ thể, đâ y là
nhữ ng thư viện chú ng tô i sử dụ ng :

Hình 5.1: Hình ảnh chương trình trích xuất những thư viện cần thiết.

16
import pandas as pd Á p dụ ng trích xuấ t thư viện
pandas
from sklearn.cluster import KMeans Ứ ng dụ ng thuậ t toá n K-Means
from sklearn.preprocessing import Ứ ng dụ ng chuẩ n hó a dữ liệu
StandardScaler
import matplotlib.pyplot as plt Ứ ng dự ng trự c quan hó a
import numpy as np Á p dụ ng trích xuấ t thư viện
numpy
from sklearn.metrics import silhouette_score Ứ ng dụ ng trích xuấ t điểm
silhouette

Sau khi đưa ra nhữ ng thư viện phù hợ p cho quy trình, chú ng tô i quyết
định tiến hà nh truyền ‘pd.read_csv('smn.csv')’ (smn.csv là tên file) và o phầ n tử
‘data’ và trích xuấ t 10 hà ng đầ u tiên củ a bả ng dữ liệu.
Bước 2: Chuẩn hóa dữ liệu
Chú ng ta có thể thấ y rõ ở đâ y cá c giá trị củ a từ ng thuộ c tính nằ m trong
khoả ng khá lớ n và rấ t khó để so sá nh vớ i cá c thuộ c tính vớ i nhau. Chính vì vậ y,
chú ng tô i quyết định lấ y X ( gồ m nhữ ng thuộ c tính chứ a giá trị kiểu số ) kết hợ p
vớ i ‘np.nan_to_num(X)’ nhằ m chuyển đổ i nhữ ng giá trị null thà nh 0 ( nếu có ).
Sau đó , ‘scaler = StandardScaler()’ biểu hiện rằ ng chú ng tô i truyền phương
thứ c chuẩ n hó a dữ liệu hay ‘StandardScaler()’ và o biến ‘scaler’ nhằ m ‘fit’ và
chuyển đổ i ‘X’ ở dò ng thứ 4. Từ đó , tậ p dữ liệu đã chuyển sang nhữ ng số nhằ m
trong khoả ng từ -2 tớ i 1.

17
Hình 5.2 : Hình ảnh chương trình chuẩn hóa dữ liệu

Bước 3: Modeling
Để tiến hà nh nhữ ng phâ n đoạ n liên quan tớ i phâ n cụ m nó i chung và o tậ p
dữ liệu đã thu thậ p, nhó m chú ng tô i tiến hà nh ứ ng dụ ng 1 trong nhữ ng thuậ t
toá n phổ biến đó chính là K-Means. Cụ thể như sau :
B3.1. Khởi tạo đối tượng K-Means
Sau khi đã trích xuấ t thư viện, chú ng tô i dễ dà ng có thể truyền mô hình
và o biến ‘k_means’. Đặ c biệt trong đố i tượ ng K-Means, vớ i ‘init = "k-means++"’
đâ y chính là phương phá p khở i tạ o ra ‘centroid’ ban đầ u qua ‘k-means++’. Bên
cạ nh đó , ‘n_clusters = clusterNum’ để xá c định số lượ ng cá c cụ m cho mô hình.
Cuố i cù ng, n_init = 12 chính là số lầ n chạ y thuậ t toá n (12) vớ i nhữ ng centroid
ban đầ u khá c nhau 1 cá ch ngẫ u nhiên, điều nà y sẽ trá nh đượ c hiện tượ ng cục bộ
hóa, tứ c giá trị hà m tố i ưu nhưng khô ng phả i tố i ưu toà n cụ c mà là giá trị tố i ưu
xung quanh điểm khở i tạ o.

Hình 5.3: Hình ảnh chương trình khởi tạo model K-Means.

18
B3.2. Fitting và đưa ra nhãn từ model

Hình 5.4: Quy trình ‘fitting’ và tạo labels của model.

Vớ i mô hình đã xâ y dự ng ở bướ c trướ c, ta sẽ huấ n luyện (fitting) mô hình


phâ n cụ m K-Means dự a trên tậ p ‘Clus_data’ đã đượ c chuẩ n hó a, cụ thể là
‘k_means.fit(Clus_dataSet)’, từ đó ta sẽ lấ y đượ c nhữ ng giá trị đượ c gá n nhã n
và lưu và o biến ‘labels’.

2, Trực quan hóa, đánh giá mô hình


Theo ý tưở ng nhó m chú ng tô i đã vạ ch ra ban đầ u là khô ng chỉ nắ m bắ t độ
chính xá c củ a mô hình mà cò n là lự a chọ n đâ u là số cụ m tố t nhấ t. Để thự c hiện
đượ c ý tưở ng trên, chú ng tô i quyết định sử dụ ng ‘Silhouette Score’ và nhằ m tố i
giả n hó a đượ c thờ i gian đó là sự xuấ t hiện củ a vò ng lặ p. Cụ thể, đoạ n chương
trình nà y sẽ giớ i hạ n số lầ n lặ p tương ứ ng vớ i k = 9, do trong tậ p dữ liệu chú ng
tô i thu thậ p đượ c chỉ có 10 cô ng ty ; sau khi ứ ng dụ ng thư viện củ a ‘Silhouette
Score’ thì nhữ ng kết quả nà y sẽ đượ c in ra, đồ ng thờ i sẽ đượ c lưu và o ‘list’
đượ c đặ t tên là ‘list_score’ .

19
Hình 5.5: Đoạn chương trình sử dụng SSD để đánh giá.

Từ ả nh ở trên, rõ rà ng ta thấ y đượ c rằ ng vớ i k = 2 điểm ‘silhouette’ đạ t


giá trị là 0.633 đang là cụ m gầ n 1 nhấ t tương đương rằ ng đâ y là k phâ n cụ m tố t
nhấ t vớ i cá c điểm sá t nhau và cá ch xa so vớ i cá c cụ m khá c.
Tuy nhiên để có mộ t cá i nhìn và mứ c độ đá nh giá khá c, nhó m tiến hà nh
á p dụ ng thêm chỉ số SSD để đưa ra nhữ ng đá nh giá khá c nhau hơn nữ a. Tương
tự vớ i chương trình in ra kết quả silhouette score, tiếp tụ c là phương thứ c vò ng
lặ p vớ i số lầ n lặ p từ trong khoả ng 2 – 9, vớ i hà m ‘inertia_’ đạ i diện cho SSD. Và
đâ y chính là kết quả :

Hình 5.6: Kết quả của modeling

20
Á p dụ ng kết quả đã truyền và o củ a ‘list_score1’, chú ng tô i sử dụ ng thư
viện ‘matplotlib.pyplot’ để hỗ trợ quá trình trụ c quan hó a.

Hình 5.7: Xác định điểm Elbow.

Để có thể đưa ra quyết định đượ c đâ u sẽ là k cụ m tố t nhấ t thì sẽ có rấ t


nhiều phương phá p để lự a chọ n tù y thuộ c và o từ ng bà i toá n tuy nhiên nhó m
chú ng tô i tiến hà nh á p dụ ng phương phá p dù ng điểm ‘Elbow point’. Từ kết quả
cung cấ p ở trên, ta dễ dà ng thấ y tạ i điểm k = 4 thì xu hướ ng bắ t đầ u có dấ u hiệu
giả m nhẹ, hay nó i cá ch khá c đâ y chính là đườ ng ‘khuỷu tay’, chính vì đó chú ng
tô i sẽ á p dụ ng mô hình vớ i k = 4.
Như vậ y, sau quá trình trên ta thấ y rằ ng 2 kết quả khô ng đồ ng nhấ t vớ i
nhấ t. Mộ t cá ch tó m gọ n, ‘Silhouette score’ cho k = 2 là tố t nhấ t, trong khi Elbow
point thì k = 4. Tuy nhiên để lự a chọ n giữ a 2 điểm nà y, nhó m chú ng tô i quyết
định ưu tiên Elbow point vì k = 2 củ a Silhouette score quá ít cụ m để phả n á nh
đầ u đủ mẫ u hình giá .
Sau khi đã tiến hà nh xâ y dự ng mô hình và sử dụ ng điểm ‘Silhouette’ và
‘SSD’ thô ng qua vò ng lặ p ở quá trình trướ c cũ ng như lự a chọ n đượ c điểm k cụ m
tố t nhấ t, đâ y là kết quả mà chú ng tô i đã ghi nhậ n đượ c 1 bả ng dữ liệu ở cộ t

21
‘Cluster_num’ gá n nhã n cho từ ng cổ phiếu, và biểu đồ scatter plot trự c quan kết
quả phâ n cụ m.

Hình 5.8: Bảng dữ liệu ở cột ‘Cluster_num’.

Hình 5.9: Biểu đồ scatter plot trực quan kết quả phân cụm.

22

You might also like