Tải bản đầy đủ (.docx) (27 trang)

Tiểu luận môn Toán cho máy tính KHÁM PHÁ LUẬT TRÊN HƯỚNG TIẾP CẬN TẬP THÔ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (782.78 KB, 27 trang )

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
__
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Huỳnh Văn Trận
Dương Thị Phương Mai
KHÁM PHÁ LUẬT TRÊN HƯỚNG TIẾP CẬN TẬP THÔ
Đồ Án Môn Học
Toán Cho Khoa Học Máy Tính
TP HỒ CHÍ MINH – Năm 2014
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
__
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Huỳnh Văn Trận
Dương Thị Phương Mai
KHÁM PHÁ LUẬT TRÊN HƯỚNG TIẾP CẬN TẬP THÔ
Ngành: Khoa Học Máy Tính
Đồ Án Môn Học
Toán Cho Khoa Học Máy Tính
GIẢNG VIÊN HƯỚNG DẪN
TS. Dương Tôn Đảm
TP HỒ CHÍ MINH – Năm 2014
2
MỤC LỤC
3
DANH SÁCH BẢNG BIỂU
4
DANH SÁCH HÌNH
5
MỞ ĐẦU
Ngay từ khi xuất hiện, lý thuyết tập thô do Zdzisaw Pawlak khởi xướng vào
những năm đầu thập niên 80 đã ngay lập tức thu hút sự quan tâm của nhiều nhà


nghiên cứu trên thế giới. Khả năng ứng dụng trong nhiều lĩnh vực khác nhau cho
thấy vai trò quan trọng của lý thuyết này trong việc nghiên cứu và ứng dụng công
nghệ thông tin trong thời đại mới. Lý thuyết tập thô được phát triển trên một nền
tảng toán học vững chắc và cung cấp những công cụ hữu ích để giải quyết các
bài toán phân lớp dữ liệu, phát hiện luật , đặc biệt thích hợp với những bài toán
chứa dữ liệu mơ hồ, không chắc chắn.
Trong lý thuyết tập thô, mô hình biểu diễn dữ liệu được trình bày thông qua hệ
thông tin hay bảng quyết định và ý tưởng chính trong việc phân tích dữ liệu xuất
phát từ khái niệm "bất khả phân biệt" (indiscernibility). Với cách tiếp cận như
vậy, lý thuyết tập thô cho phép phát hiện tri thức từ những bảng dữ liệu lớn với
dữ liệu đa dạng, phức tạp, chưa tinh lọc nhằm phát hiện ra những quy luật tiềm
ẩn từ khối dữ liệu này.
Mục tiêu ở đây là nghiên cứu phát hiện ra luật từ bảng dữ liệu dựa theo cách tiếp
cận tập thô. Nếu tìm được những quy luật chung nhất biểu diễn dữ liệu, người ta
có thể tính toán độ mạnh của các thuộc tính hoặc độ phụ thuộc giữa chúng trong
hệ thông tin. Vì vậy vấn đề phát hiện luật theo tiếp cận tập thô được đặt ra. Với
quy mô nhỏ của một bài đồ án thì ở đây chỉ nghiên cứu một số cách phát hiện
luật đã có trước dựa theo cách tiếp cận tập thô, và ứng dụng vào trong một bài
toán cụ thể.
6
Chương 1 GIỚI THIỆU TỔNG QUAN
1.1 Tập thô
Lý thuyết tập thô (rough set theory) được Zdzislaw Pawlak đề xuất vào
đầu những năm 1980 và nó nhanh chóng được các nhà khoa học tiếp nhận
như một công cụ toán học mới để xử lý những thông tin không đầy đủ và
không chắc chắn.
Các phương pháp của lý thuyết tập thô tỏ ra hết sức quan trọng đối với
lĩnh vực Trí tuệ nhân tạo và các ngành khoa học liên quan đến nhận thức
(máy học, các hệ chuyên gia, các hệ hỗ trợ quyết định, lập luận dựa trên
quy nạp và nhận dạng…)

Triết lý của tập thô dự trên nhận định rằng mọi đối tượng trong vũ trụ đều
gắn với môt loại thông tin nào đó (như dữ liệu, tri thức ). Ví dụ nếu các
đối tượng là các bệnh nhân bị một căn bệnh nào đó, thì các triệu chứng
của bệnh tạo nên thông tin về bệnh nhân.
Các đối tượng được đặc trưng bởi cùng thông tin thì không thể phân biệt
được (indiscernable). Vì vậy quan hệ tương đương là cơ sở toán học của lý
thuyết tập thô.
Một tập bất kỳ các đối tượng không thể phân biệt được (các đối tượng
tương tự) được gọi là tập cơ bản (elementary set) và tạo thành nguyên tử
(atom hay granule) của tri thức về vũ trụ.
Xấp xỉ dưới và xấp xỉ trên:
Trong lý thuyết tập thô, bất cứ một khái niệm không rõ ràng nào đều được
thay bằng một cặp khái niệm không chính xác gọi là xấp xỉ dưới (lower
approximation) và xấp xỉ trên (upper approximation) của khái niệm.
7
Xấp xỉ dưới gồm tất cả các đối tượng chắc chắn thuộc về khái niệm, xấp
xỉ trên gồm tất cả các đối tượng có thể thuộc về khái niệm. Hiệu của xấp
xỉ trên và xấp xỉ dưới tạo thành khoảng ranh giới (boundary region) của
khái niệm.
Các phép toán cơ bản của lý thuyết tập thô được sử dụng để phát hiện các
mẫu cơ sở (fundamental pattern) trong dữ liệu. Do đó, với một ý nghĩa
nhất định phương pháp lập luận thô cũng chính là học máy (machine
learning), phát hiện tri thức (knowledge discovery), suy diễn thống kê
(statistic inference) và suy diễn quy nạp (inductive inference).
1.2 Hệ thông tin
1.2.1 Một số khái niệm
1.2.1.1 Hệ thông tin (Information System)
Đôi khi ta hay gặp các tập hợp dữ liệu được miêu tả bằng một bảng, trong
đó một hàng biểu diễn một bản ghi (record), còn các cột biểu diễn một
thuộc tính. Từ những năm đầu của thập kỉ 80, Pawlak hình thức hóa bảng

biểu này thành khái niệm hệ thông tin (Information System).
Định nghĩa: Hệ thông tin (information system) là một bộ bốn:
trong đó:
• U = {x
1
, x
2
, , x
n
} là một tập hữu hạn các đối tượng (objects) gọi là
vũ trụ (univerce).
• A là tập thuộc tính và được chia thành 2 tập con: các thuộc tính
điều kiện C (condition attribute) và các thuộc tính quyết định D
(decision attribute); .
• V là tập hữu hạn các giá trị thuộc tính trong đó: với V
a
là miền
(domain) của thuộc tính a.
• f: là hàm thông tin (information function) trong đó .
8
1.2.1.2 Bảng quyết định (decision table)
Giả sử rằng và , một hệ thông tin có thể được xem như một bảng quyết
định hay còn gọi là một bảng thuộc tính giá trị .
Bảng quyết định là có tính chất quyết định khi và chỉ khi . Ngược lại nó
không có tính quyết định.
Trong trường hợp bảng quyết định không có tính quyết định thì quyết định
không được xác định một cách duy nhất mà có thể là cả một tập quyết
định.
Một cơ sở dữ liệu được xem như một thông tin trong đó các cột là các
thuộc tính, các hàng là các đối tượng và thực thể ở cột p, hàng x có giá trị

p(x). Mỗi hàng trong bảng biểu diễn thông tin về một đối tượng trong U.
Trong cơ sở dữ liệu, có thuộc tính là thuộc tính quyết định, các thuộc tính
còn lại là thuộc tính điều kiện.
Ví dụ:
Bảng 1 Ví dụ về Bảng quyết định
U Cảnh quan Nhiệt độ Gió Đánh cầu lông
U1 Nắng Thấp Nhẹ yes
U2 Nắng Cao Nhẹ yes
U3 Nắng Thấp Nhẹ yes
U4 Mưa Cao Mạnh no
U5 Nắng Thấp Nhẹ no
U6 Nắng Quá cao Nhẹ no
U7 Mưa Cao Nhẹ yes
1.2.1.3 Quan hệ bất khả phân biệt (indiscernibility relation)
Cho hệ thông tin . Với mỗi tập con các thuộc tính , tồn tại một quan hệ hai
ngôi trên U, kí hiệu IND(B), xác định bởi:
9
IND(B) được gọi là quan hệ B-quan hệ bất khả phân biệt (B-
indiscernibility relation), đây là một quan hệ tương đương trên U.
Nếu thì hai đối tượng u và v không phân biệt được bởi các thuộc tính
trong B. Lớp tương đương chứa phần tử u được kí hiệu [u]
B
. Khi đó quan
hệ IND(B) được xác định hoàn toàn bởi các lớp tương đương [u]
B
, .
1.2.1.4 Rút gọn và lõi
Trong bảng quyết định, các thuộc tính điều kiện được phân thành ba
nhóm: thuộc tính lõi, thuộc tính rút gọn và thuộc tính không cần thiết.
Thuộc tính lõi là thuộc tính cốt yếu, không thể thiếu trong việc phân hoạch

chính xác tập dữ liệu. Thuộc tính không cần thiết là những thuộc tính dư
thừa, nghĩa là có thể loại bỏ một thuộc tính như vậy mà không ảnh hưởng
đến việc phân lớp dữ liệu. Thuộc tính của tập rút gọn nằm giữa hai tập
thuộc tính trên, với một tổ hợp thuộc tính nào đó, nó là thuộc tính dư thừa
và với một tổ hợp các thuộc tính khác nó có thể là cốt yếu.
Cho là một bảng quyết định, thuộc tính được gọi là không cần thiết trong
bảng quyết định T nếu POS
C
(D) = POS
(C\{c})
(D). Nói cách khác, là không
cần thiết khi và chỉ khi trên POSC(D) phụ thuộc hàm nghiệm đúng;
ngược lại, c được gọi là cần thiết.
Bảng quyết định T được gọi là độc lập nếu mọi thuộc tính đều cần thiết.
Tập tất cả các thuộc tính cần thiết trong T được gọi là lõi và được kí hiệu
Core(C). Lúc đó, một thuộc tính cần thiết còn được gọi là thuộc tính lõi.
Tập các thuộc tính được gọi là một rút gọn của tập thuộc tính điều kiện C
nếu là độc lập và POS
R
(D) = POS
C
(D). Nói cách khác, R là tập rút gọn
nếu nó là tập tối tiểu thỏa mãn POS
R
(D) = POS
C
(D). Ta kí hiệu Red(C) là
tập tất cả các rút gọn của C trong T. Một thuộc tính là cần thiết khi và chỉ
khi nó thuộc vào mọi tập rút gọn của C. Điều đó được thể hiện trong mệnh
đề sau:

10
1.2.1.5 Luật quyết định
Một công cụ thường được sử dụng để nghiên cứu bảng quyết định là luật
quyết định. Cụ thể, cho là một bảng quyết định, với mỗi , chúng ta cho
tương ứng một hàm xác định bởi , với mỗi . Hàm d
u
được gọi là một luật
quyết định và u được xem như là nhãn của luật quyết định đó.
11
Chương 2 KHÁM PHÁ TRI THỨC THEO HƯỚNG TIẾP
CẬN TẬP THÔ
2.1 Khám phá luật trong bảng quyết định
2.1.1 Luật trong bảng quyết định
Giả sử là một bảng quyết định; X biểu thị sự kết hợp giữa các từ nhận
dạng (descriptors) bao hàm trong các thuộc tính điều kiện A; Y biểu thị
một từ nhận dạng d = v trong đó v là bất kỳ một giá trị nào của thuộc tính
quyết d
Định Nghĩa (Luật theo tiếp cần tập thô)
Một luật quyết định có dạng “Nếu X thì Y” được biểu diễn bởi X  Y
với S biểu thị độ mạnh của luật.
2.1.2 Hai đặc trưng của luật: Độ mạnh và độ nhiễu
Cho luật X  Y, Độ mạnh của luật này ký hiệu là S (X  Y) được xác
định theo công thức sau:
s(X)(1-r(X  Y))
Với s(X) được gọi là độ mạnh của X:
Với,
là số các đối tượng quan sát thỏa mãn trong lần thứ i.
Trong trường hợp sử dụng tri thức kinh nghiệp thì s(X) được tính:
Độ nhiễu r(X  Y) được tính như sau:
Với là các đối số thuộc lớp Y trong các trường hợp thỏa mãn bộ sinh.

12
2.1.3 Quá trình khám phá luật
Quá trình dưới đây thực hiện quá trình khám phá luật. Ta có bảng quyết
định như sau:
Bảng 2 Bảng quyết định Đánh cầu lông
u Cảnh quan Nhiệt độ Gió Đánh cầu lông
u1 Nắng Thấp Nhẹ yes
u2 Nắng Cao Nhẹ yes
u3 Nắng Thấp Nhẹ yes
u4 Mưa Cao Mạnh no
u5 Nắng Thấp Nhẹ no
u6 Nắng Quá cao Nhẹ no
u7 Mưa Cao Nhẹ yes
Bảng gồm các thuộc tính điều kiện là: Cảnh quan, Nhiệt độ, Gió.
Tập giá trị của thuộc tính Cảnh quan: V
Cảnh quan
= {Nắng, Mưa}
Tập giá trị của thuộc tính Nhiệt độ: V
Nhiệt độ
= {Thấp, Cao, Quá cao}
Tập giá trị của thuộc tính Gió: V
Gió
= {Nhẹ, Mạnh}
Tập giá trị của thuộc tính Đánh cầu lông: V
đánh cầu lông
= {yes,no}
Bảng quyết định tương ứng miêu tả trong bảng phân phối tổng quát như
sau:
Bảng 3 Bảng phân phối tổng quát thời tiết
F(x)

G(x)
Nắng
Thấp
Mạnh
Nắng
Thấp
Nhẹ
Mưa
Thấp
Nhẹ
Mưa
Quá
cao
Nhẹ
*Thấp
Mạnh
1/2 1/2
*Thấp
Nhẹ
1/2
*Cao
Mạnh

*Cao
Nhẹ

*Quá
Cao

13

Mạnh
*Quá
Cao
Nhẹ
1/2
*Nắng
Mạnh
1/3

-

Mưa
Cao*
1/2
Mưa
Quá
Cao*

**Mạn
h
1/6 1/6

-

Nắng** 1/6 1/6
Mưa** 1/6
Trong đó: F(x) là các đội tượng có thể (PI)
G(x) là các bộ sinh có thể (PG)
G(x)  F(x) là các quan hệ xác suất giữa PI và GI và được xác
định là:

Trong đó:
a) Từ bảng quyết định trên xét trường hợp có tỷ lệ nhiễu là = 0.
Bảng 4 Bảng tỉ lệ nhiễu = 0
u Cảnh quan Nhiệt độ Gió Đánh cầu lông
u1’ Nắng Thấp Nhẹ yes,
yes,
no
u2 Nắng Cao Nhẹ yes
u3 Nắng Thấp Nhẹ yes
u4 Mưa Cao Mạnh no
u5 Nắng Thấp Nhẹ no
u6 Nắng Quá cao Nhẹ no
14
u7 Mưa Cao Nhẹ yes
u Cảnh quan Nhiệt độ Gió Đánh cầu lông
U1’ Nắng Thấp Nhẹ
u2 Nắng Cao Nhẹ yes
u4 Mưa Cao Mạnh no
u6 Nắng Quá cao Nhẹ no
u7 Mưa Cao Nhẹ yes
Ta có: r
{yes)
(u1’) = 1 – 2/3 = 0.33 và r
{không}
(u1’) = 1 – 1/3 = 0.67
Đặt T
nhiễu
= 0 thì r
{cấm}
(u1) = 0.33 > T

nhiễu
và r
{không}
(u1) = 0.67 > T
nhiễu
Như vậy là d(u1’) =
* Tạo vector phân biệt cho u2 được tính như sau:
m
2,1’
= {Nhiệt độ}
m
2,2
=
m
2,4
= {Cảnh quan, Gió}
m
2,6
= {Nhiệt độ}
m
2,7
=
u1 u2 u4 u6 u7
u2 Nhiệt độ Cảnh quan, gió Nhiệt độ
Tìm tập rút gọn cho u2
f
T
(u2) = (Nhiệt độ) T (Cảnh quan gió) (Nhiệt độ) T
= (Nhiệt độ) (Cảnh quan gió)
= (Nhiệt độ Cảnh quan) (Nhiệt độ gió)

Tạo luật cho u2
f
T
(u2) =
s({Nắng, Cao}) = 0.5
r({Nắng, Cao} yes) = 0
15
{Nắng, Cao} yes) với S = (1 x ½) x (1-0) = 0.5
s({Nhẹ, Cao}) = 1
r({Nhẹ, Cao} yes) = 0
{Nhẹ, Cao} yes) với S = (2 x ½) x (1-0) = 0
* Tạo vector phân biệt cho u4
Vector phân biệt u4 được tính như sau:
m
4,1’
= {Cảnh quan, nhiệt độ, gió}
m
4,2
= {Cảnh quan, gió}
m
4,4
=
m
4,6
=
m
4,7
= {Gió}
u1 u2 u4 u6 u7
u4 Cảnh quan, Nhiệt

độ, Gió
Cảnh quan,
Gió
Tìm tập rút gọn cho u4
f
T
(u4) = (Cảnh quan Nhiệt độ Gió) (Cảnh quan Gió) T (Gió)
= (Gió)
Tạo luật cho u4
f
T
(u4) =
s(Mạnh) = 1/6
r({Mạnh}  no) = 0
{Mạnh}  Không với S = (1x1/6) x (1-0) = 0.167
16
Sau lần lược các bước tạo vector phân biệt, tạo tập rút gọn, tạo luật cho
u6, u7 ta có luật cho tất cả các trường hợp như sau:
u2: {Nắng, Cao}  yes, với S = 0.5
{Cao, Nhẹ} yes với S=1
u4: {Mạnh} no, với S = 0.167
u6: {Quá cao}  no với S = 0.25
u7: {Nắng, Nhẹ}  yes, với S = 0.5
{Cao, Nhẹ} yes với S = 1
Bộ sinh thuộc tính yes
u2 u7
Nắng, Cao, Nhẹ Mưa, Cao, Nhẹ
*,Cao, Nhẹ 1/2 1/2
Mưa, *, Nhẹ 1/3
Nắng, Cao, * 1/2

{Cao, Nhẹ}  yes với S = 1 u2,u7
{Nắng, Nhẹ}  yes với S = 0.5 u7
{Nắng, Cao}  yes với S = 0.5 u2
Nắng, Quá Cao, Nhẹ Mưa, Cao, Mạnh
*,*,Mạnh 1/6
*, Quá Cao, * 1/4
{Mạnh}  no với S = 1/6 u4
{Quá cao} no với S = 1/4 u6
Các luật sinh ra với tỷ lệ nhiễu = 0 (T
nhiễu
= 0)
• Các luật chắc chắn
{Mạnh}  no với S = 1/6 u4
{Quá cao}  no với S = 1/4 u6
{Cao, Nhẹ}  yes với S = 1 u2,u7
• Các luật có thể
17
{Thấp}  yes với S = (1/4)(1/2)
{Nắng, Thấp}  yes với S = (1/2)(2/3)
{Nắng, Nhẹ}  yes với S = (1/3)(2/3)
{Thấp, Nhẹ}  yes với S = (1/2)(2/3)
Các trường hợp bao phủ: u1,u3,u5
b) Xét trường hợp tỷ lệ nhiễu > 0
Bảng 5 Bảng tỉ lệ nhiễu > 0
u Cảnh quan Nhiệt độ Gió Đánh cầu lông
u1’ Nắng Thấp Nhẹ yes,
yes,
no
u2 Nắng Cao Nhẹ yes
u3 Nắng Thấp Nhẹ yes

u4 Mưa Cao Mạnh no
u5 Nắng Thấp Nhẹ no
u6 Nắng Quá cao Nhẹ no
u7 Mưa Cao Nhẹ yes
u Cảnh quan Nhiệt độ Gió Đánh cầu lông
u1’ Nắng Thấp Nhẹ yes
u2 Nắng Cao Nhẹ yes
u4 Mưa Cao Mạnh no
u6 Nắng Quá cao Nhẹ no
u7 Mưa Cao Nhẹ yes
Ta có r
{yes}
(u1’) = 1 – 1/3 = 0.33 và r
{no}
(u1’) = 1 – 1/3 = 0.67
Đặt T
nhiễu
= 0.5 thì r
{yes}
(u1’) = 0.33 < T
nhiễu
Như vậy là d(u1’) = yes
• Luật sinh ra tất cả các trường hợp
u1’: {Thấp}  yes, S = ¼*2/3 = 0.167
u2: {Nắng,Cao}  yes, S = 0.5
{Cao,Nhẹ}  yes, S = 1
u4: {Mạnh}  no, S = 0.167
u6: {Quá Cao}  no, S = 0.25
u7: {Mưa, Nhẹ}  yes, S = 0.5
{Cao, Nhẹ}  yes, S = 1

18
2.1.4 Thuật toán tối ưu hóa các luật
Giả sử bảng quyết định gồm n đối tượng và m thuộc tính, tỷ lệ nhiễu r.
Câu hỏi đặt ra là tìm tập tối ưu các luật có cùng độ mạnh.
Bước 1: các đối tượng với các giá trị thuộc tính điều kiện giống nhau được
coi như một thuộc tính đối tượng gọi là đối tượng ghép.
Bước 2: Tính toán tỷ lệ nhiễu r cho mỗi đối tượng ghép.
Bước 3: Chọc một đối tượng u từ U và tạo một vector phân biệt được cho
u.
Bước 4: Tìm tất cả các tập rút gọn cho đối tượng u sử dụng hàm phân biệt
được.
Bước 5: Tạo các luật từ tập rút gọn cho u, và xem lại độ mạnh của mỗi
luật.
Bước 6: Chọn luật tốt nhất từ các luật từ bước 5, sử dụng phương pháp
đánh giá kinh nghiệm khi lựa chọn luật.
Bước 7: U = U – {u}. Nếu U , Thi quay lại bước 3, trường hợp khác thì
tiếp bước 8.
Bước 8: kết thúc nếu số các luật được chọn trong bước 6 cho mỗi trường
hợp là 1, trường hợp còn lại thì tìm một tập tối thiểu các luật mà chứa tất
cả các trường hợp trong bản quyết định.
Độ phức tạp thời gian của thuật toán:
O(mn
2
+ mn
2
N(G
t
)) với N(G
t
) là số lần sinh và nhỏ hơn O(2

m-1
)
Thuật toán này có thể không phù hợp cho cơ sở dự liệu mà số các thuộc
tính là lớn. Để giải quyết vấn đề này các tác giả đã đưa ra phương pháp:
• Tìm kiếm tập rút gọn (tập con) của các thuộc tính điều kiện trong quá
trình tiền xử lý.
• Tìm giải pháp gần tối ưu sử dụng phương pháp tìm kiếm kinh nghiệm
hiệu quả.
19
Chương 3 ỨNG DỤNG VÀO BÀI TOÁN KHÁM PHÁ LUẬT
TRONG DỮ LIỆU CHỨNG KHOÁN
3.1 Tổng quan về dữ liệu chứng khoán sử dụng
Dữ liệu để chạy chương trình là các mã cổ phiếu của Việt Nam, bao gồm
696 mã, được lấy từ bản Cân đối tài chính và Kết quả kinh doanh của các
công ty từ quý 1/2011 tới quý 1/2014. Tất cả dữ liệu này được ghi vào
từng file cho từng mã cổ phiếu.
Mục đích chính của chúng ta là sẽ dự báo được giá cổ phiếu trên thị
trường, cụ thể là nhận biết được một cổ phiếu sẽ có xu hướng tăng giá
(Price Increasing) hay giảm giá (Price Decreasing). Bước đầu tiên là ta
cần phải có một bản phân tích tài chính để đánh giá hiệu suất của một
công ty. Có rất nhiều chỉ tiêu nhưng ta chỉ xét những chỉ tiêu chính và có
thể phân loại chúng thành 5 nhóm:
• Lợi nhuận (Profitability)
• Hoạt động (Activity)
• Tính thanh khoản (Liquidity)
• Nợ (Debt)
• Vị thế trên thị trường tài chính (Position on Financial Market)
Lợi nhuận (Profitability) được thể hiện như sau:
Chỉ số này thường được biết dưới tên Return on Asset (ROA), trong đó,
lợi nhuận ròng là lợi nhuận sau thuế của công ty.

Hoạt động (Activity) được thể hiện như sau:
Tính thanh khoản (Liquidity) được thể hiện như sau:
Nợ (Debt) được thể hiện như sau:
20
Vị trí trên thị trường tài chính (Position on Financial Market) được thể
hiện như sau:
Chỉ số này thường được biết với tên Price-Earnings ratio (chỉ số P/E).
Trong đó lợi nhuận trên một chứng khoán (Earnings per share – EPS)
được tính bằng:
Trên lý thuyết và thực tế hiện nay tồn tại rất nhiều phương pháp khác nhau
để đánh giá sức mạnh, vị trí và hiệu suất của các công ty trên thị trường.
Ví dụ: có phương pháp phân loại tất cả các công ty ra thành các nhóm
ngành phụ thuộc vào ngành công nghiệp tương ứng của công ty đó. Sau
đó là đánh giá các công ty riêng biệt cho từng nhóm ngành, và cuối cùng
những kết quả riêng lẻ đó sẽ được tích hợp lại với nhau. Phương pháp này
khá là phức tạp bởi vì mỗi nhóm ngành đòi hỏi ngưỡng về chỉ tiêu kinh tế
khác nhau, và các bước đánh giá cũng khác nhau.
Phương pháp được đề xuất ở đây sẽ tương đối đơn giản nhưng hiệu quả
trong việc đánh giá hiệu suất. Chúng ta sẽ xem xét năm tiêu chí ở trên, và
so sánh hai giá trị liền kề nhau trong một khoảng thời gian t
1
và t
2
. Nếu tỉ
lệ của một tiêu chí trong hai thời điểm lớn hơn 1, ta có thể kết luận vị trí
trên thị trường tài chính và hiệu suất của công ty đó tăng. Ngược lại, nếu tỉ
lệ này nhỏ hơn 1, ta có thể kết luận vị trí trên thị trường tài chính và hiệu
suất của công ty này giảm.
Cụ thể trong đồ án này chúng ta sẽ tính toán 5 chỉ số tài chính này của một
công ty theo từng giai đoạn 3 tháng (1 quý), thời gian tính từ Quý 1/2011

tới Quý 1/2014. Với mỗi một giai đoạn, ta sẽ có số liệu của giai đoạn hiện
tại và giai đoạn liền kề trước, từ đó ta có thể kết luận được hiệu suất của
công ty này đang tăng hay giảm, và do đó dự đoán được hướng phát triển
của công ty cho giai đoạn sau, từ đó có thể ra quyết định đầu tư hay
không.
Vấn đề tiếp theo của chúng ta là, làm sao phân lớp được các công ty dựa
vào năm tiêu chí này, việc định nghĩa các luật này cần phải chính xác thì
xác suất dự báo đúng sẽ càng cao, và ngược lại nếu việc định nghĩa các
luật không được làm một cách cẩn thận thì khả năng chương trình đự đoán
sai sẽ là rất cao. Các luật này sẽ được đề cập tới ở mục tiếp theo.
21
3.2 Các luật khám phá được từ dữ liệu
Vì không phải mã cổ phiếu nào cũng có mức độ ảnh hưởng như nhau trên
thị trường, và để giảm bớt khối lượng tính toán từ rất nhiều mã cổ phiếu,
chương trình hiện giờ chỉ rút ra 20 mã cổ phiếu có khối lượng giao dịch
lớn nhất để rút ra luật. Có 12 luật được khám ra được từ dữ liệu như sau:

Bảng 6 Bảng luật khám phá từ dữ liệu chứng khoán
3.3 C
ài
đặt
chương trình
Thuật toán được cài đặt bằng C#, trên nền .NET Framework 3.5.
Trong đó có các hàm đọc dữ liệu từ file, các hàm đọc dữ liệu input từ
người dùng, sau đó tính toán và xuất kết quả ra màn hình.
Rule: lớp chứa các luật, một luật bao gồm số thứ tự, giá trị tỉ số của 5 chỉ
tiêu qua 2 giai đoạn và phân lớp.
22
Rule
Number Profitability Activity Liquidity Debt Market Class

R1 <=1 >1 >1 <=1 <=1 Price Increasing
R2 >1 >1 <=1 <=1 <=1
Price Increasing
R3 >1 >1 >1 <=1 <=1
Price Increasing
R4 >1 >1 >1 <=1 >1
Price Increasing
R5 >1 >1 >1 >1 >1 Price Decreasing
R6 >1 >1 >1 >1 <=1
Price Decreasing
R7 >1 >1 <=1 >1 >1
Price Decreasing
R8 >1 >1 <=1 >1 <=1
Price Decreasing
R9 >1 >1 <=1 <=1 >1 Price Increasing
R10 >1 <=1 >1 >1 >1
Price Decreasing
R11 >1 <=1 >1 >1 <=1
Price Decreasing
R12 >1 <=1 >1 <=1 >1
Price Decreasing
public rule(string _Rule_Number, string
_Profitability, string _Activity, string _Liquidity,
string _Debt, string _Market, string _Class)
{
Rule_Number = _Rule_Number;
Profitability = _Profitability;
Activity = _Activity;
Liquidity = _Liquidity;
Debt = _Debt;

Market = _Market;
Class = _Class;
}
GetData: chứa các hàm đọc luật, đọc dữ liệu chứng khoán từ file
Company:chứa các thông tin cơ bản của một công ty, ví dụ như tên công
ty, mã chứng khoán, khối lượng chứng khoán lưu hành, giá niêm yết, vốn
điều lệ…
Finance: chứa các số liệu tài chính của công ty, từ các số liệu này ta có
thể tính toán được 5 chỉ tiêu cần thiết
public int year { get; set; }
public int quarter { get; set; }
public double net_profit { get; set; }
//tổng lợi nhuận sau thuế
public double total_assets { get; set; }
// tổng tài sản
public double current_assets { get; set; }
// tài sản hiện tại
public double total_sale { get; set; }
// tổng doanh thu hoạt động kinh doanh
public double total_liabilites { get; set; }
23
// tổng nợ
public double marketPriceShare { get; set; }
// giá cổ phiếu hiện tại
public double eps { get; set; }
// lợi nhuận trên một cổ phiếu
public double numberOfShare{ get; set; }
// khối lượng cổ phiếu bình quân
public double non_current_assets { get; set; }
// tài sản dài hạn

public double owners_equity { get; set; }
// vốn chủ sở hữu
public double net_sale { get; set; }
// doanh thu thuần
public double gross_profit { get; set; }
// lợi nhuận gộp
public double total_equity{ get; set; }
// tổng nguồn vốn
3.4 Demo / Hướng dẫn sử dụng
Người dùng sẽ nhập vào mã cổ phiếu mà mình quan tâm (hoặc chọn trong
danh sách hiện trên giao diện), sau đó lựa chọn thời gian để lấy dữ liệu
tính toán.
Sau khi người dùng click vào nút Search, chương trình sẽ hiện lên những
thông tin tài chính cơ bản của mã cổ phiếu này, và tính toán năm chỉ số tài
chính mà ta dùng để phân tích tính hấp dẫn của cổ phiếu (Profitability,
Activity, Liquidity, Debt, Position on Market), đồng thời dựa vào bộ luật
được cung cấp phân lớp tính hấp dẫn của cổ phiếu trong khoảng thời gian
mà người dùng đang chọn.
Bên dưới là hình chụp màn hình giao diện trong hai trường hợp, cổ phiếu
được phân vào lớp “Price Increasing” và cố phiếu được phân vào lớp
“Price Decreasing”.
24
Hình 3.1 Chụp màn hình chương trình 1
25

×