Tải bản đầy đủ (.pdf) (44 trang)

Nghiên cứu ứng dụng kỹ thuật học máy để dự đoán chứng khoán bằng ngôn ngữ R

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 (681.57 KB, 44 trang )



ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ



PHẠM QUỐC HÙNG




NGHIÊN CỨU ỨNG DỤNG KỸ THUẬT HỌC MÁY
ĐỂ DỰ ĐOÁN CHỨNG KHOÁN BẰNG NGÔN NGỮ R





LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN








Hà Nội, 2013



ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ



PHẠM QUỐC HÙNG




NGHIÊN CỨU ỨNG DỤNG KỸ THUẬT HỌC MÁY
ĐỂ DỰ ĐOÁN CHỨNG KHOÁN BẰNG NGÔN NGỮ R

Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.05

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN



NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN VINH




Hà Nội, 2013
4
MỤC LỤC


LỜI CAM ĐOAN 3
M Ụ C LỤC 4
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 5
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 7
M Ở ĐẦU 8
Chương 1. BÀI TOÁN PHÂN TÍCH CHỨNG KHOÁN 10
1.1. Tổng quan về dự báo 10
1.2. Bài toán phân tích chứng khoán 11
Chương 2. KHAI PHÁ DỮ LIỆU VÀ PHÁT HIỆN TRI THỨC 16
2.1. Khai phá dữ liệu 16
2.2. Mô hình mạng nơron nhân tạo 22
2.3. Mô hình máy véctơ hỗ trợ 25
Chương 3. NGÔN NGỮ R VÀ ỨNG DỤNG 27
3.1. Tổng quan về ngôn ngữ R 27
3.2. Ứng dụng ngôn ngữ R 28
Chương 4. XÂY DỰNG CHƯƠNG TRÌNH VÀ ĐÁNH GIÁ 33
4.1. Chuẩn bị dữ liệu 33
4.2. Xây dựng hàm và thực hiện tính toán 34
4.3. Vẽ biểu đồ 35
4.4. Xây dựng mô hình và kết quả thử nghiệm 38
KẾT LUẬN 42
DANH MỤC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN
LUẬN VĂN 43
TÀI LIỆU THAM KHẢO 44


5
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT


- ADX
Average directional index – Chỉ số hướng trung bình
- ANN
Artificial Neural Network – Mạng nơron nhân tạo
- b
Buy - Tín hiệu mua vào
- BB
Bollinger Bands – Chỉ số biên độ biến động giá
- Close
Giá đóng cửa
- Date
Ngày giao dịch
- DM
Data Mining – Khai phá dữ liệu
- EMA
Exponential Moving Average – Đường trung bình theo số mũ
- FI
Force Index
- GA
Genetic Algorithms – Giải thuật di truyền
- h
Hold - Tín hiệu giữ lại
- High
Giá cao nhất trong ngày
- KDD
Knowledge Discovery in Databases – Phát hiện tri chức
- Low
Giá thấp nhất trong ngày
- MA
Moving Average - Giá trung bình

- MFI
Money Flow Index – Chỉ số lưu lượng tiền
- NVI
Negative Volume Index
- Open
Giá mở cửa
- PCR
Put/Call Ratio
- PSAR
Parabolic SAR – Chỉ số báo hiệu giá đảo chiều
- ROC
Rate of Change – Chỉ số tỷ lệ thay đổi giá
- RSI
Relative Strengh Index – Chỉ số sức mạnh tương đối
- s
Sell - Tín hiệu bán ra
- SMA
Simple Moving Average – Đường trung bình đơn giản
- SVM
Support Vector Machine – Máy vectơ hỗ trợ
- TSI
True Strength Index
- Volume
Khối lượng giao dịch
- VPT
Volume–Price Trend



6

DANH MỤC CÁC BẢNG

Bảng 1.1: Kiểu dữ liệu chuỗi thời gian 12
Bảng 2.1: Một số hàm nhân thường dùng 26
Bảng 3.1: Một số thư viện và ứng dụng của chúng trong R 29
Bảng 4.1: Ma trận thống kê dự đoán các tín hiệu mua vào, bán ra và giữ lại 39
Bảng 4.2: Kết quả dự đoán bằng mô hình ANN 40
Bảng 4.3: Kết quả dự đoán bằng mô hình SVM 40


7
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1-1: Biểu đồ đường (Line Chart) 12
Hình 1-2: Biểu đồ vạch (Bar Chart) 13
Hình 1-3: Biểu đồ nến (Candlestick Chart) 13
Hình 2-1: Quá trình khai phá tri thức 18
Hình 2-2: Mô hình KDD lặp 19
Hình 2-3: Kiến trúc điển hình hệ thống khai phá dữ liệu 20
Hình 2-4: Mạng nơron nhân tạo 23
Hình 2-5: Sơ đồ quá trình khai phá dữ liệu bằng mạng nơron 23
Hình 2-6: Mẫu kết quả với kỹ thuật mạng nơron 24
Hình 2-7: Ví dụ về phân lớp trong không gian 2 chiều với SVM 25
Hình 2-8: Ví dụ về SVM 26
Hình 3-1: Số liệu thống kê ngôn ngữ dùng phổ biến trong phân tích số liệu 28
Hình 3-2: Xác xuất phân phối mật độ theo độ tuổi bằng hàm plot 31
Hình 3-3: Biểu đồ hình tròn 31
Hình 3-4: Biểu đồ hộp 32
Hình 3-5: Biểu đồ cột 32
Hình 4-1:Biểu đồ dạng nến Nhật Bản (Candlesticks Chart) 36

Hình 4-2: Đường chỉ số giá trung bình (SMA) 37
Hình 4-3: Đồ thị của hàm Technicals() 38



8

MỞ ĐẦU

Dự báo là một công tác rất quan trọng trong nhiều ngành, trong đó nó đặc biệt
quan trọng với việc quản lý vĩ mô và kinh doanh. Bài toán dự báo chứng khoán ngày
càng được nhiều người quan tâm trong bối cảnh phát triển kinh tế xã hội. Đầu tư vào
thị trường chứng khoán đòi hỏi các nhà đầu tư cần có nhiều kinh nghiệm và hiểu biết
về thị trường chứng khoán. Những người am hiểu về thị trường và xu thế của thị
trường sẽ thu được những lợi nhuận khổng lồ từ sàn giao dịch chứng khoán. Tuy
nhiên, những người không nắm bắt được xu thế này có thể sẽ phải đối mặt với sự
khủng hoảng thậm chí phá sản. Bên cạnh đó, có những nhà đầu tư có lợi nhuận
nhưng họ không nhận ra rằng họ có thể thu lợi nhiều hơn nữa nếu họ dự đoán được
giá của thị trường sẽ thay đổi thế nào. Ngày nay, ngoài kinh nghiệm của nhà đầu tư,
các kĩ thuật khai phá dữ liệu được áp dụng khá nhiều nhằm dự báo sự lên xuống của
thị trường. Đó là một gợi ý quan trọng, giúp các nhà đầu tư có thể ra quyết định giao
dịch.
Theo lý thuyết phân tích chứng khoán (Chartist theory) thì ta có thể dự đoán
được xu thế của thị trường chứng khoán dựa vào quá khứ. Hay nói cách khác, từ tập
dữ liệu lịch sử giao dịch của chứng khoán, bằng các phương pháp khai tri thức liệu
chúng ta có thể dự báo được xu thế giá sắp tới trong tương lai sẽ tăng/giảm hay ổn
định. Khai phá tri thức là vấn đề nghiên cứu thời sự trong thời gian gần đây, đã
thu hút nhiều nhà khoa học trên thế giới tiến hành nghiên cứu, đề xuất các mô hình,
phương pháp mới nhằm tạo ra các công cụ hiệu quả hỗ trợ người dùng trong việc
tổng hợp, phân tích thông tin và tìm kiếm các tri thức tiền ẩn từ tập dữ liệu thông tin

trong lịch sử. Để nhận định xu hướng giá chứng khoán trong tương lai, các nhà phân
tích kỹ thuật thường dựa vào các đường chỉ số dự báo. Trên thế giới, có nhiều công
trình của các nhà nghiên cứu hàng đầu đã đưa ra các đường chỉ số dự báo khác nhau,
mỗi đường chỉ số có ý nghĩa nhất định. Việc kết hợp tốt các đường chỉ số này sẽ cho
ra một kết quả rất chính xác hơn về dự báo xu thế giá chứng khoán trong tương lai.
Ngày nay, các kỹ thuật học máy liên tục được cải tiến và ứng dụng vào bài
toán khai phá dữ liệu cụ thể. Trong nghiên cứu này, chúng tôi đã ứng dụng các kỹ
thuật học máy tiên tiến như mạng nơron nhân tạo (ANN) , máy véctơ hỗ trợ (SVM)
vào bài toán dự báo chứng khoán dựa trên tập dữ liệu lịch sử giá. Tập dữ liệu này
9
được lấy trực tiếp trên Yahoo Finance từ năm 1970 tới nay để thử nghiệm với chỉ số
chứng khoán S&P500.
Với sự phát triển không ngừng của ngôn ngữ lập trình, chúng ta có thể triển
khai ứng dụng thử nghiệm bằng nhiều loại ngôn ngữ lập trình khác nhau. Mỗi ngôn
ngữ lập trình có những thế mạnh nhất định cho lớp bài toán cụ thể. Trong khai phá
dữ liệu thì ngôn ngữ R được ứng dụng rộng rãi trong những năm gần đây do những
ưu điểm vượt trội của nó trong phân tích số liệu. Hơn nữa, đây là ngôn ngữ mã nguồn
mở có nhiều thư viện hỗ trợ cho việc phân tích số liệu. Trong nghiên cứu này, chúng
ta sẽ ứng dụng ngôn ngữ R để xây dựng chương trình dự đoán và tiến hành thử
nghiệm trên chứng khoán S&P500.
Ngoài phần Mở đầu, Kết luận và các Phụ lục, nội dung luận văn được chia
làm 4 chương chính:
Chương 1. Bài toán phân tích chứng khoán: chương này giới thiệu những
nội dung cơ bản nhất về bài toán phân tích chứng khoán. Các kỹ thuật thường được
áp dụng trong phân tích kỹ thuật và các chỉ số liên quan.
Chương 2. Khai phá dữ liệu và phát hiện tri thức: chương này cung cấp
cái nhìn tổng quát về khai phá dữ liệu, các kỹ thuật tiên tiến trong học máy.
Chương 3. Ngôn ngữ R và ứng dụng: chương này trình bày tổng quan về
ngôn ngữ R, một số ứng dụng của ngôn ngữ R trong phân tích số liệu, vẽ biểu đồ.
Chương 4. Xây dựng chương trình và đánh giá: chương này trình bày quá

trình xây dựng chương trình bằng ngôn ngữ R cho bài toán phân tích chứng khoán
và kết quả thử nghiệm trên chứng khoán S&P500.
Phần Kết luận trình bày tổng hợp các kết quả nghiên cứu của luận văn và
định hướng nghiên cứu tiếp theo.
Luận văn đã đạt được một số kết quả khả quan trong việc nghiên cứu kỹ thuật
học máy và ứng dụng ngôn ngữ R để xây dựng chương trình thử nghiệm cho bài
toán dự đoán chứng khoán. Tuy nhiên, luận văn không tránh khỏi những thiếu sót,
rất mong nhận được sự đóng góp ý kiến, nhận xét để chúng tôi tiếp tục hoàn thiện
và nâng cao kết quả nghiên cứu.

10
Chương 1. BÀI TOÁN PHÂN TÍCH CHỨNG KHOÁN
1.1. Tổng quan về dự báo
Thuật ngữ dự báo có nguồn gốc từ tiếng Hy Lạp “Pro” (có nghĩa là trước) và
“grosis” (có nghĩa là biết), “progrosis” nghĩa là biết trước. Từ nhiều thế kỷ trước
người ta đã tiến hành tiên đoán về tương lai. Có thể phân biệt 3 loại tiên đoán:
Tiên đoán không khoa học: đó là các tiên đoán không có cơ sở khoa học,
thường dựa trên tính tưởng tượng, phi hiện thực.
Tiên đoán kinh nghiêm: các tiên đoán dựa trên kinh nghiệm thực tế. Loại tiên
đoán này ít nhiều có cơ sở nhưng lại không giải thích được sự vận động của đối
tượng và đa số mới chỉ dừng lại ở mức độ định tính, không định lượng được.
Tiên đoán khoa học: đây là tiên đoán dựa trên cơ sở khoa học được chứng
minh tính đúng đắn. Nó dựa trên việc phân tích tính quy luật phát triển của đối tượng
dự báo và các điều kiện ban đầu với tư cách như là các giả thiết. Tiên đoán khoa học
là kết quả của sự kết hợp giữa những phân tích định tính và những phân tích định
lượng các quá trình cần dự báo. Chỉ có dự báo khoa học mới đảm bảo độ tin cậy cao
và là cơ sở vững chắc cho việc thông qua các quyết định quản lý khoa học.
Như vậy có thể hiểu dự báo là sự tiên đoán có khoa học có xác suất nhất định.
Nghĩa rằng không phải bao giờ dự báo cũng đúng đắn hoàn toàn mà nó mang tính
xác suất. Mỗi đối tượng dự báo đều vận động theo một quy luật, quỹ đạo nào đó,

đồng thời trong quá trình vận động nó luôn chịu sự tác động của các yếu tố bên ngoài
(môi trường xung quanh). Bản thân các yếu tố tác động cũng luôn vận động không
ngừng. Vì vậy dù trình độ dự báo có hoàn thiện đến đâu cũng không thể chắc chắn
rằng kết quả của dự báo là hoàn toàn chính xác. Hay nói một cách khác dự báo bao
giờ cũng mang tính xác suất. Mặc dù mang tính xác suất nhưng dự báo là đáng tin
cậy vì nó dựa trên những cơ sở khoa học. Cùng với sự phát triển không ngừng của
khoa học kỹ thuật, độ tin cậy của dự báo cũng không ngừng được nâng cao. Mỗi dự
báo được thực hiện trên những giả thiết nhất định. Với mỗi giả thiết khác nhau, kết
quả của dự báo cũng sẽ khác nhau. Như vậy, dự báo mang tính đa phương án. Tính
đa phương án giúp cho việc ra quyết định trở nên linh hoạt hơn, dễ thích nghi với sự
biến đổi vô cùng phức tạp của tình hình thực tế.

11
1.2. Bài toán phân tích chứng khoán
Phân tích chứng khoán đã trở thành công việc hết sức quan trọng mà các nhà
đầu tư chứng khoán cần thực hiện để có được quyết định đầu tư thích hợp. Từ kết
quả phân tích, người đầu tư chứng khoán sẽ quyết định khi nào thì mua vào, khi nào
thì bán ra, khi nào thì giữ lại và nên đầu tư vào doanh nghiệp nào. Có hai phương
pháp phân tích được sử dụng phổ biến hiện nay ở hầu hết các thị trường chứng khoán
trên thế giới, đó là phân tích cơ bản và phân tích kỹ thuật.
Phân tích cơ bản (Fundamental Analysis): là phương pháp phân tích chứng
khoán dựa trên các nhân tố mang tính chất nền tảng có tác động hoặc là nguyên nhân
dẫn tới sự thay đổi giá của chứng khoán nhằm chỉ ra giá trị nội tại (intrinsic value)
của chứng khoán trên thị trường. Các nhân tố cần chú trọng trong phân tích cơ bản
là: hoạt động kinh doanh của công ty, mục tiêu và nhiệm vụ của công ty, khả năng
lợi nhuận (hiện tại và ước đoán), kết quả sản xuất kinh doanh, chất lượng quản lý,
sức ép cạnh tranh, chính sách giá cả, vị thế,…
Phân tích kỹ thuật (Technical Analysis) [1]: sử dụng các mô hình toán học (đồ
thị, biến đổi miền, xác suất thống kê, dãy đại số,…) dựa trên dữ liệu thu thập về thị
trường trong quá khứ và hiện tại để chỉ ra trạng thái của thị trường trong một thời

điểm xác định, thông thường là nhận định xu hướng thị trường. Phân tích kỹ thuật
không để ý đến các chỉ số tài chính, tình hình phát triển của doanh nghiệp hay các
thông tin về thị trường mà chỉ chú trọng vào việc tập hợp các dữ liệu về giá cả, khối
lượng giao dịch và các tiêu chí khác của chứng khoán thu thập được từ các phiên
giao dịch trong quá khứ.
Các kỹ thuật phân tích cho thấy rằng giá trong lịch sử và các chỉ số khác có
thể tiết lộ mối tương quan và các mô hình biến động giá chứng khoán, do đó có thể
dự đoán giá chứng khoán trong tương lai. Trong những năm gần đây, nhiều kỹ thuật
tiên tiến như giải thuật di truyền (GA), máy véctơ hỗ trợ (SVM), mạng nơron nhân
tạo (ANN) đã hỗ trợ tốt việc phân tích và học mẫu hơn. Theo Mackinlay, giá chứng
khoán có mối tương quan nhạy cảm với tin tức và các sự kiện mang lại thông tin
cho thị trường chứng khoán (kể cả các tin tức thời sự, kinh tế, chính trị, thời tiết…đều
ảnh hưởng tới thị trường chứng khoán). Với hướng tiếp cận này, sử dụng các kỹ
thuật học máy và khai phá dữ liệu để tìm ra mối tương quan giữa giá trong quá khứ
và xu hướng giá trong tương lai.
12
Thông tin của các giao dịch chứng khoán được lưu trữ lại dưới dạng dữ liệu
chuỗi thời gian (time series). Dữ liệu thời gian hay chuỗi thời gian là một chuỗi các
giá trị của một đại lượng nào đó được ghi nhận theo thời gian [2], [3]. Đây là kho dữ
liệu khổng lồ để chúng ta có thể khai phá và dự báo xu thế của thị trường chứng
khoán. Các dữ liệu lịch sử giao dịch này thường được lưu trữ bao gồm các thông tin
về thời gian (Date), giá mở cửa (Open), giá đóng cửa (Close), giá cao nhất trong
ngày (High), giá thấp nhất trong ngày (Low) và khối lượng giao dịch (Volume).
Bảng 1.1 dưới đây là một ví dụ về kiểu dữ liệu dạng này:
Bảng 1.1: Kiểu dữ liệu chuỗi thời gian
Date Open High Low Close Volume
2013-03-26

1,551.69


1,563.95

1,551.69

1,563.77

2,869,260,000

2013-03-27

1,563.75

1,564.07

1,551.90

1,562.85

2,914,210,000

2013-03-28

1,562.86

1,570.28

1,561.08

1,569.19


3,304,440,000

2013-04-01

1,569.18

1,570.57

1,558.47

1,562.17

2,753,110,000

2013-04-02

1,562.17

1,573.66

1,562.17

1,570.25

3,312,160,000


Để thực hiện phân tích kỹ thuật, nhà đầu tư thường dựa vào thông tin các chỉ
số được thể hiện dưới dạng đồ thị khác nhau như dạng đường thẳng (Line Chart),
dạng vạch (Bar Chart), hoặc hình nến (Candlestick Chart). Với dữ liệu cho ở Bảng

1.1 ta sẽ có các biểu đồ trên như ở Hình 1-1, Hình 1-2, Hình 1-3.

Hình 1-1: Biểu đồ đường (Line Chart)

13

Hình 1-2: Biểu đồ vạch (Bar Chart)


Hình 1-3: Biểu đồ nến (Candlestick Chart)
Mỗi chỉ số phân tích kỹ thuật đều có giá trị sử dụng riêng và chúng được phân
ra làm các nhóm cơ bản như:
Ø Chỉ số về xu thế (Trend Indication): Average Directional Index - ADX,
Ichimoku Kinkō Hyō, Moving Average Convergence/Divergence - MACD,
Mass Index, Moving Average - MA, Simple Moving Average – SMA,
Parabolic SAR - PSAR, Smart Money Index - SMI…;
14
Ø Chỉ số về xung lượng (Momentum Indication): Relative Strength Index - RSI,
Stochastic Oscillator, True Strength Index - TSI, Williams %R…;
Ø Chỉ số về dao động (Volatility Indication): Average True Range - ATR,
Bollinger Bands – BB, ;
Ø Chỉ số về khối lượng (Volume Indication): Accumulation/Distribution Index,
Money Flow Index - MFI, On-Balance Volume - OBV, Volume–Price Trend -
VPT, Force Index - FI, Negative Volume Index - NVI, Ease Of Movement,
Put/Call Ratio - PCR…
Có nhiều chỉ số hữu ích được sử dụng trong phân tích chứng khoán trong đó
phải kể đến một số chỉ số quan trọng trong phân tích kỹ thuật như:
1) Chỉ số hướng trung bình – Average directional index (ADX):
Chỉ số ADX (do J. Welles Wilder phát triển năm 1978 [4]) phản ánh sức mạnh
xu hướng trung bình, được tính bằng cách lấy hiệu của hai chỉ số +DI và –DI chia

cho tổng của hai chỉ số này. Chỉ số +DI phản ánh lực đẩy thị trường đi lên, còn –DI
phản ánh lực kéo thị trường đi xuống. Đường ADX không chỉ ra xu hướng thị trường
đang lên hay xuống mà cho biết thị trường đang mạnh hay yếu. Vì đường ADX
không có tác dụng định hướng, nó sẽ không cho bạn biết liệu thị trường đang trong
xu hướng xuống hay lên (bạn cần xem đường +DI và -DI để biết xu hướng), nhưng
đường DX sẽ cho bạn biết xu hướng đang mạnh hay yếu thế nào. Khi đường ADX
từ 40 trở lên, xu hướng đang diễn ra mạnh, khi đường ADX từ 20 trở xuống, thị
trường đang không có xu hướng rõ ràng.
2) Đường trung bình đơn giản – Simple Moving Average (SMA)
SMA được sử dụng phần lớn vào việc nhận biết hướng đi của xu hướng đường
giá. Nhưng đôi khi cũng được sử dụng để phát hiện những tín hiệu mua và bán. SMA
là giá trị trung bình mang tính chất thống kê. Nó thường được tính theo giá đóng cửa
[5].
3) Đường trung bình theo số mũ – Exponential Moving Average (EMA)
EMA có tác dụng để đo sức “nặng” giá hiện hành xem có “nặng” hơn giá
trong quá khứ hay không? EMA có thể đánh giá nhanh sự dao động giá hơn là đường
SMA.

15
4) Chỉ số biên độ biến động giá - Bollinger Bands
Đường bao Bollinger Bands [6] được xem là một chỉ số cho phép người dùng
so sánh độ biến động (volatility) và mức giá tương đối theo thời gian. Bollinger
Bands là sự kết hợp giữa đường trung bình động Moving Average và độ lệch chuẩn.
Đây là công cụ phân tích kỹ thuật có nhiều tác dụng và rất có giá trị cho nhà đầu tư.
5) Chỉ số báo hiệu giá đảo chiều – Parabolic SAR (PSAR)
Parabolic SAR được phát triển bởi J. Welles Wilder [4], là chỉ báo kết hợp
giữa giá và thời gian để hình thành những tín hiệu mua – bán trên thị trường.
Parabolic SAR cũng là công cụ hiệu quả để xác định vùng đặt điểm “dừng lỗ” (stop
loss). Tín hiệu mua khi giá đóng cửa nằm trên đường Parabolic SAR và đồng thời
đường Parabolic SAR phải cao hơn đường giá. Tín hiệu bán khi giá đóng cửa nằm

dưới Parabolic SAR và đồng thời đường Parabolic SAR thấp hơn đường giá.
6) Chỉ số sức mạnh tương đối – Relative Strengh Index (RSI)
Là chỉ số sức mạnh tương quan (hay còn gọi RSI là chỉ số đo lường cường độ
của sự vận động của giá). Chỉ số này được J. Welles Wilder giới thiệu năm 1978 [4].
Đây là chỉ số tỷ lệ giữa trung bình số ngày tăng giá so với mức giá trung bình của
những ngày giảm giá trong một giai đoạn nhất định.
7) Chỉ số lưu lượng tiền – Money Flow Index (MFI)
MFI là chỉ số xung lượng (momentum indicator), nó đo sức mạnh của dòng
tiền vào hoặc ra của chứng khoán. Nó liên quan mật thiết với RSI, nhưng ở đó RSI
được kết hợp chặt chẽ với đường giá, còn MFI được xem là khối lượng.
8) Chỉ số tỷ lệ thay đổi giá – Rate of Change (ROC)
Chỉ số tỷ lệ thay đổi giá (ROC) cho biết sự khác biệt giữa giá hiện tại và giá
của x phiên trước đó [5]. ROC diễn tả sự biến động số lần giá thay đổi trong khoảng
thời gian đưa ra. Khi giá tăng, ROC tăng; khi giá giảm, ROC giảm.
Việc phân tích, đánh giá các chỉ số, biểu diễn kết quả dưới dạng đồ thị đòi hỏi
nhiều xử lý, tính toán phức tạp. Thông tin về các chỉ số có thể xem tại [7], [8].

16
Chương 2. KHAI PHÁ DỮ LIỆU VÀ PHÁT HIỆN TRI THỨC
2.1. Khai phá dữ liệu
Ngày nay, công nghệ thông tin được ứng dụng vào nhiều lĩnh vực của đời
sống, kinh tế, xã hội. Sự phát triển mạnh mẽ của công nghệ thông tin trong những
năm qua đồng nghĩa với lượng thông tin được lưu trữ ngày càng tăng của các cơ
quan, tổ chức có ứng dụng công nghệ thông tin trong công việc. Kho thông tin này
ngày càng tăng lên theo thời gian. Công nghệ điện tử với những bước đột phá đã tạo
ra các bộ nhớ dung lượng lớn, bộ xử lý tốc độ cao người ta đã tạo ra các hệ thống
thông tin nhằm tự động hóa các hoạt động kinh doanh của con người. Điều đó đã tạo
ra một kho dữ liệu khổng lồ và không ngừng gia tăng vì ngay từ các hoạt động đơn
giản nhất như cuộc gọi điện thoại, sử dụng thẻ tín dụng, lịch sử các giao dịch, giá
đóng/mở hàng ngày của chứng khoán …đều được lưu trữ vào trong máy tính. Theo

thống kê cho thấy, hiện nay mới chỉ khoảng hơn 5% lượng thông tin này được khai
thác hiệu quả, còn hầu hết các thông tin khác chưa được khai thác. Tuy nhiên, họ
vẫn lưu trữ các thông tin đó vì họ cho rằng nó có ẩn chứa nhiều thông tin quan trọng
mà hiện tại có thể họ chưa biết, chưa khai thác được cho dù việc thu thập và lưu trữ
này rất tốn kém.
Như John Naisbett đã nói “Chúng ta đang chìm ngập trong dữ liệu mà vẫn đói
tri thức”. Yếu tố để thành công trong hoạt động kinh doanh là phải biết sử dụng
thông tin một cách có hiệu quả. Nó có nghĩa là từ các dữ liệu sẵn có, phải tìm ra các
thông tin tiềm ẩn có giá trị mà trước đó chưa được phát hiện, tìm ra xu hướng phát
triển và các yếu tố tác động lên chúng. Việc khai thác được các thông tin ẩn chưa
biết này là điều vô cùng quan trọng và ngày càng được quan tâm hơn. Điều đó đòi
hỏi chúng ta cần phải tìm ra các kỹ thuật mới, công cụ tự động mới trợ giúp con
người khai thác nguồn dữ liệu khổng lồ này một cách có hiệu quả. Vì vậy mà kỹ
thuật phát hiện tri chức (KDD - Knowledge Discovery in Databases) và khai phá dữ
liệu (DM - Data Mining) được ra đời và ngày một phát triển mạnh mẽ để khai thác
kho dữ liệu này. Kỹ thuật này đã và đang được nghiên cứu, ứng dụng vào nhiều
ngành nghề, lĩnh vực khác nhau trên thế giới. Ở Việt Nam, kỹ thuật này còn khá mới
mẻ và vẫn đang được tiếp tục nghiên cứu và đưa vào ứng dụng.
Theo giáo sư Tom Mitchell [9] thì “Khai phá dữ liệu là việc sử dụng dữ liệu
lịch sử để khám phá những qui tắc và cải thiện những quyết định trong tương lai”.
Còn theo Fayyad [10] thì “Khai phá dữ liệu, thường được xem là việc khám phá tri
17
thức trong các cơ sở dữ liệu, là một quá trình trích xuất những thông tin ẩn, trước
đây chưa biết và có khả năng hữu ích, dưới dạng các qui luật, ràng buộc, qui tắc
trong cơ sở dữ liệu”. Như vậy, khai phá tri thức là trích chọn các mẫu hoặc tri thức
hấp dẫn (không tầm thường, ẩn, chưa biết và hữu dụng tiềm năng) từ một tập hợp
lớn dữ liệu. Nhiều người đồng nhất khái niệm khai phá dữ liệu với khai phá tri thức.
Thực tế, khai phá dữ liệu (DM) chỉ là một bước trong khai phá tri thức (KDD).
Như chỉ ra trong Hình 2-1 [10] thì quá trình khai phá tri thức gồm các bước
chính như sau:

1) Làm sạch dữ liệu (Data cleaning): là bước loại bỏ nhiễu và dữ liệu không phù
hợp.
2) Tích hợp dữ liệu (Data integration): kết hợp nhiều nguồn dữ liệu khác nhau.
3) Lựa chọn dữ liệu (Data selection): các dữ liệu liên quan đến quá trình phân
tích được lấy từ cơ sở dữ liệu.
4) Chuyển đổi dữ liệu (Data transformation): dữ liệu được chuyển đổi thành các
dạng phù hợp cho quá trình khai phá dữ liệu.
5) Khai phá dữ liệu (Data mining): áp dụng các phương pháp thông tin để bóc
tách dữ liệu mẫu. Đây là bước rất quan trọng trong quá trình khai phá trí thức.
Các thuật toán sử dụng các dữ liệu đã được tiền xử lý trong giai đoạn trước để
tìm kiếm các qui tắc ẩn chưa biết. Vấn đề quan trọng hàng đầu trong giai đoạn
này là lựa chọn kỹ thuật phù hợp để giải quyết bài toán. Các bài toán được
phân loại vào một trong những nhóm bài toán chính trong khai phá dữ liệu
dựa trên đặc tả của chúng.
6) Đánh giá mẫu (Pattern evaluation): không phải mẫu dữ liệu nào cũng là có
ích, thậm chí còn có sự sai lệch. Bước này cần đưa ra tiêu chuẩn đánh giá cho
các mẫu dữ liệu để đưa ra tri thức đúng đắn. Dựa trên các đánh giá này để tinh
chỉnh, kết hợp lại các mô hình nếu cần. Chỉ các mô hình thỏa mãn các yêu cầu
cơ bản của người dùng mới được áp dụng và triển khai trong thực tế.
7) Trình diễn tri thức (Knowledge presentation): các kỹ thuật thể hiện tri thức
trực quan để đưa ra kết quả khai phá dữ liệu cho người dùng. Các mô hình
được triển khai vào trong hệ thống thông tin thực tế dưới dạng các mô-đun hỗ
trợ việc ra quyết định.

18

Hình 2-1: Quá trình khai phá tri thức
Trong đó, từ bước 1 đến bước 4 thể hiện quá trình tiền xử lý dữ liệu cho khai
phá dữ liệu. Đôi khi chúng ta có thể gộp 4 bước này thành bước chuẩn bị dữ liệu.
Phần lớn các kỹ thuật khai phá dữ liệu hiện nay áp dụng trên tập dữ liệu đơn và

phẳng, vì vậy dữ liệu phải được dưới dạng cơ sở dữ liệu quan hệ đơn giản với một
bảng dữ liệu. Các công việc của giai đoạn này bao gồm:
1) Xử lý dữ liệu bị mất/thiếu: dữ liệu bị mất/thiếu sẽ được thay thế bởi các giá trị
phù hợp.
2) Loại bỏ trùng lặp: loại bỏ các đối tượng dữ liệu trùng lặp.
Data mining

Patterns

Evaluation and
Presentation

Knowledge

Selection and
Transformation

Cleaning and
Integration
D
ata
warehouse

Database
Flat files

19
3) Giảm nhiễu: loại bỏ nhiễu và các giá trị tách rời của phân bố chung.
4) Chuẩn hóa dữ liệu: chuẩn hóa miền giá trị của dữ liệu.
5) Rời rạc hóa: dữ liệu dạng số được biến đổi thành dạng rời rạc.

6) Trích rút và xây dựng đặc trưng mới từ các thuộc tính đã có.
7) Giảm chiều dữ liệu: loại bỏ bớt các thuộc tính có ít thông tin để số lượng thuộc
tính giảm xuống.
Các bước trong quá trình khai phá tri thức có quan hệ mật thiết tác động lẫn
nhau. Các kỹ thuật được sử dụng ở bước trước sẽ ảnh hưởng đến hiệu quả của kỹ
thuật được sử dụng ở bước tiếp theo. Các bước của quá trình này có thể được lặp đi
lặp lại một số lần nhằm có kết quả trung bình tốt nhất trên tất cả những lần thực hiện
[11]. Dưới đây là mô hình quá trình khai phá tri thức lặp (xem Hình 2-2):

Hình 2-2: Mô hình KDD lặp
Theo quan điểm “khai phá dữ liệu là quá trình phát hiện tri thức thú vị từ một
lượng lớn dữ liệu được lưu trữ trong cơ sở dữ liệu, kho dữ liệu, hoặc kho lưu trữ các
thông tin khác” thì kiến trúc của hệ thống khai phá dữ liệu thông thường gồm (xem
Hình 2-3):
START:
Define the
object
Select relevant
business data
Data quality
analysis
Clean and
transform
data
Data
mining
Acquire
knowledge
Evaluate
results

Deploye
results or
re-iterate
20
Ø Cơ sở dữ liệu, kho dữ liệu, World Wide Web, các kiểu kho chứa thông tin
khác: là một hoặc một tập các cơ sở dữ liệu, kho dữ liệu, bảng tính, hoặc các
loại kho lưu trữ thông tin.
Ø Phục vụ cơ sở dữ liệu/Kho dữ liệu: chịu trách nhiệm lấy các dữ liệu liên quan
theo yêu cầu khai phá dữ liệu của người dùng.
Ø Cơ sở tri thức: là miền tri thức được sử dụng để giúp tìm kiếm hoặc đánh giá
mẫu kết quả.


Hình 2-3: Kiến trúc điển hình hệ thống khai phá dữ liệu
Ø Thành phần khai phá dữ liệu: đây là thành phần rất quan trọng trong hệ thống
khai phá dữ liệu, bao gồm các mô-đun chức năng như phân tích các đặc trưng,
sự kết hợp, mối tương quan, phân lớp, dự báo, phân cụm, phân tích tiến hóa.
Ø Đánh giá mẫu khai phá được: không phải bất cứ mẫu khai phá nào cũng hữu
ích. Do đó cần phải đánh giá các mẫu khai phá được để đa ra tri thức cần thiết.
Giao di

n ngư

i dùng

Đánh giá m

u khai phá đư

c


Thành ph

n Khai phá d


li

u

Ph

c v


Cơ s


d


li

u/kho d


li

u


Cơ s



tri thức
Cơ s



dữ liệu
Kho

dữ liệu
World Wide
Web
Các ki

u kho ch

a
thông tin khác
Làm s

ch
, tích h

p và ch

n l


a d


li

u

21
Mẫu được phát hiện phải có giá trị đối với các dữ liệu mới theo độ chân thực
nào đấy. Mẫu phải là mới trong một miền xem xét nào đó, ít nhất là với hệ
thống đang được xem xét. Thường thì độ mới của mẫu được đánh giá bằng
hàm logic hoặc hàm đo độ mới, độ hấp dẫn của mẫu. Ngoài ra, mẫu mới còn
phải có khả năng sử dụng tiềm tàng. Các mẫu này sau khi được xử lý và diễn
giải phải dẫn đến những hành động, quyết định có ích nào đó được đánh giá
bằng hàm lợi ích.
Ø Giao diện người dùng: Mô-đun giao tiếp giữa người dùng với hệ thống khai
phá dữ liệu cho phép người dùng tương tác với hệ thống qua truy vấn khai phá
dữ liệu. Cung cấp thông tin giúp họ tập trung tìm kiếm và thực hiện khai phá
dữ liệu dựa trên các kết quả khai phá dữ liệu trung gian.
Các phương pháp khai phá dữ liệu được dùng:
- Phân loại (Classification)
- Hồi qui (Regression)
- Phân nhóm (Clustering)
- Tổng hợp (Summarization)
- Mô hình ràng buộc (Dependency modeling)
- Dò tìm biến đổi và độ lệch (Change and Deviation Dectection)
Ngày nay, khai phá dữ liệu được áp dụng vào rất nhiều lĩnh vực của cuộc sống
như: quảng cáo, Marketing, quản lý quan hệ khách hàng, thiên văn học, tin sinh học,
thương mại điện tử, phát hiện lừa đảo, chăm sóc sức khỏe, viễn thông, thể thao, giải
trí, máy tìm kiếm (web)…Trong nghiên cứu này chúng ta sẽ ứng dụng khai phá dữ

liệu vào lĩnh vực đầu tư tài chính với bài toán cụ thể là dự báo chứng khoán từ tập
dữ liệu giao dịch trong lịch sử.
Để khai phá dữ liệu từ tập dữ liệu chuỗi thời gian chúng ta cần có các kỹ thuật
học máy tiên tiến. Học máy (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo
liên quan đến việc phát triển các kĩ thuật cho phép các máy tính có thể "học". Hay
nói cách khác, học máy là một phương pháp phân tích các tập dữ liệu. Học máy có
tính ứng dụng rất cao bao gồm máy truy tìm dữ liệu, chẩn đoán y khoa, phát hiện thẻ
tín dụng giả, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự
động, chơi trò chơi và cử động rô-bốt (robot locomotion)… Phân tích thị trường
chứng khoán cũng là một lĩnh vực nghiên cứu khá hấp dẫn được nhiều nhà khoa học
tập trung nghiên cứu. Hiện nay, có nhiều giải thuật được áp dụng trong học máy như:
22
cây quyết định, giải thuật di truyền, mạng nơron nhân tạo, máy véctơ hỗ trợ, mạng
Bayesian, mạng Markov….Trong luận văn này chúng ta sẽ ứng dụng hai phương
pháp học máy tiên tiến là mạng nơron nhân tạo và máy véctơ hỗ trợ.
2.2. Mô hình mạng nơron nhân tạo
Nghiên cứu và mô phỏng trí não, cụ thể là tế bào thần kinh (nơron) là ước
muốn từ lâu của nhân loại. Từ mơ ước đó, các nhà khoa học đã không ngừng nghiên
cứu và tìm hiểu về mạng nơron. Với khoảng 15 tỷ nơron của não người, mỗi nơron
có thể nhận hàng vạn tín hiệu từ các khớp thần kinh và được coi là một cơ chế sinh
vật phức tạp nhất. Não người có khả năng giải quyết những vấn đề như: nghe, nhìn,
nói, hồi ức thông tin, phân biệt các mẫu mặc dù sự kiện có bị méo mó, thiếu hụt…
Não thực hiện những nhiệm vụ như vậy nhờ các phần tử tính toán là nơron. Não
phân bố việc xử lý cho hàng tỷ nơron có liên quan, điều khiển các mối liên hệ giữa
các nơron đó. Nơron không ngừng nhận và truyền thông tin lẫn nhau. Các nơron tự
liên kết với nhau thành mạng trong xử lý. Mỗi mạng gồm hàng vạn các phần tử
nơron khác nhau. Mỗi phần tử nơron có khả năng liên kết với hàng nghìn các nơron
khác. Lý thuyết về mạng nơron đã hình thành từ những năm 40 của thế kỷ trước và
đang phát triển, đặc biệt là nghiên cứu ứng dụng chúng.
Mô hình mạng nơron nhân tạo (ANN - Artificial Neural Network) bắt chước

theo cách học của hệ thần kinh sinh vật. Có nhiều ứng dụng của mạng nơron đã được
áp dụng trong thực tế và mang lại những hiệu quả tốt như ứng dụng mạng nơron
trong chế tạo các mạch điện tử thông minh, xây dựng hệ chuyên gia y học, ứng dụng
nhận dạng và phân loại các sản phẩm cùng với trí tuệ nhân tạo, mạng nơron thực
sự trở thành lĩnh vực nghiên cứu quan trọng trong việc phát triển các ứng dụng có
giá trị thực tiễn.
23

Hình 2-4: Mạng nơron nhân tạo
Khi đề cập đến khai phá dữ liệu, người ta thường đề cập nhiều đến mạng
nơron. Tuy mạng nơron có một số hạn chế gây khó khăn trong việc áp dụng và triển
khai nhưng nó cũng có những ưu điểm đáng kể. Một trong số những ưu điểm phải
kể đến của mạng nơron là khả năng tạo ra các mô hình dự đoán có độ chính xác cao,
lại có tính mềm dẻo, có thể áp dụng được cho rất nhiều loại bài toán khác nhau, đáp
ứng được nhiệm vụ đặt ra của khai phá dữ liệu như phân lớp, phân nhóm, mô hình
hóa, dự báo các sự kiện phụ thuộc vào thời gian, v.v…

Hình 2-5: Sơ đồ quá trình khai phá dữ liệu bằng mạng nơron
Mẫu chiết xuất bằng mạng nơron được thể hiện ở các nút đầu ra của mạng.
Mạng nơron sử dụng các hàm số chứ không sử dụng các hàm biểu tượng để tính
mức tích cực của các nút đầu ra và cập nhật các trọng số của nó. Trong mạng lan
truyền ngược, mỗi nút khái niệm được kết hợp với một ngưỡng, vì vậy trong mạng
lan truyền ngược, các mẫu (hay các luật) của một khái niệm là sự kết hợp của các
trọng số lớn hơn ngưỡng. Với tập dữ liệu khách hàng vay vốn ngân hàng, ta có bài
toán phân lớp áp dụng mạng nơron sẽ cho kết quả là mẫu chiết xuất được như trên
Hình 2-6.
Input

Output


Hidden


Dữ liệu Mô hình mạng nơron Mẫu chiết xuất được
24

Hình 2-6: Mẫu kết quả với kỹ thuật mạng nơron
Đặc điểm của mạng nơron là không cần gia công dữ liệu nhiều trước khi bắt
đầu quá trình học như các phương pháp khác. Tuy nhiên, để có thể sử dụng mạng
nơron có hiệu quả cũng cần phải xác định các yếu tố khi thiết kế mạng như:
- Mô hình mạng là gì?
- Mạng cần có bao nhiêu nút?
- Khi nào việc học dừng để tránh “học quá”?
-
Ngoài ra, còn nhiều bước quan trọng cần phải làm để tiền xử lý dữ liệu trước
khi đưa vào mạng nơron để mạng có thể hiểu được (ví dụ như việc chuẩn hóa dữ
liệu, đưa tất cả tiêu chuẩn dự đoán về dạng số…).
Mạng nơron được đóng gói với những thông tin trợ giúp của các chuyên gia
đáng tin cậy và được các chuyên gia đảm bảo các mô hình này làm việc tốt. Sau khi
học, mạng có thể được coi là một chuyên gia trong lĩnh vực thông tin mà nó vừa
được học.
Các bài toán thường được áp dụng với mạng nơron là:
- Bài toán phân loại (classification): quyết định một giá trị đưa vào thuộc
loại hay nhóm nào.
- Bài toán nhận dạng mẫu (pattern recognition): nhận dạng cấu trúc trong
các dữ liệu có thể là bị nhiễu.
- Bài toán dự đoán (prediction): dự đoán giá trị dựa vào các giá trị cho trước.
- Bài toán tối ưu (optimization): tìm một tổ chức ràng buộc tốt nhất.
- Bài toán lọc nhiễu (Noise filtering): phân biệt các tín hiệu với nền, tìm ra
các thành phần không quan trọng trong một tín hiệu.

Thu nh

p


t

N


Cho vay

25
2.3. Mô hình máy véctơ hỗ trợ
Mô hình máy véctơ hỗ trợ (SVM – Support Vector Machine) được Vladimir
N. Vapnik giới thiệu năm 1995 [12] và ngày càng trở nên phổ biến hơn. SVM được
xây dựng dựa trên nguyên tắc cực tiểu hóa rủi ro cấu trúc (Structural Risk
Minimization). Trong học máy, SVM là mô hình học có giám sát để phân loại, phân
tích hồi quy.
Với một tập dữ liệu huấn luyện thuộc hai thể loại cho trước, thuật toán huấn
luyện SVM xây dựng một mô hình để phân loại các dữ liệu khác vào một trong hai
thể loại đó: Cho trước n điểm trong không gian d chiều (mỗi điểm thuộc vào một lớp
kí hiệu là +1 hoặc –1, mục đích của giải thuật SVM là tìm một siêu phẳng
(hyperplane) phân hoạch tối ưu cho phép chia các điểm này thành hai phần sao cho
các điểm cùng một lớp nằm về một phía với siêu phẳng này. Hay nói cách khác là
lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các ví dụ huấn luyện tới
ranh giới là xa nhất có thể. Các điểm khác cũng được biểu diễn trong cùng một
không gian và được thuật toán dự đoán thuộc một trong hai thể loại tùy thuộc vào
điểm đó nằm ở phía nào của ranh giới. Xem ví dụ ở Hình 2-7, Hình 2-8.


Hình 2-7: Ví dụ về phân lớp trong không gian 2 chiều với SVM
Trong ví dụ ở Hình 2-8 dưới đây: đường H1 không chia tách được 2 lớp dữ
liệu, đường H2 chia tách được 2 lớp dữ liệu với lề nhỏ, đường H3 phân tách được 2
lớp dữ liệu với lề cực đại.

x

Optimal margin

x

x

Optimal hyperplane

x

x

x

x

x

x

x

x


x

x

26

Hình 2-8: Ví dụ về SVM
Lời giải tìm siêu phẳng tối ưu trên có thể mở rộng trong trường hợp dữ liệu
không thể tách rời tuyến tính bằng cách ánh xạ dữ liệu vào một không gian có số
chiều lớn hơn thông qua một hàm nhân K (kernel). Một số hàm nhân hay dùng được
thể hiện ở Bảng 2.1:
Bảng 2.1: Một số hàm nhân thường dùng
Kiểu hàm nhân Công thức
Linear kernel

(
!
,
"
)
=
#
.
$

Polynomial kernel
%
(
&

,
'
)
=
(
(
.
)
+
1
)
*

Radial basis function (Gaussian)
kernel
+
(
,
,
-
)
=
.
/
|
0
1
2
|
3

4
5
6

Hyperbolic tangent kernel
7
(
8
,
9
)
=
tanh
(
:
.
;
.
<
=
>
)


Trong những năm gần đây, mô hình SVM được quan tâm và sử dụng nhiều
trong lĩnh vực dự báo, nhận dạng và phân loại. Các thử nghiệm thực tế cho thấy, mô
hình SVM có thể học và dự báo khá tốt. So sánh với các phương pháp khác thì khả
năng của SVM là tương đương hoặc tốt hơn đáng kể.

H

1

H
2

H
3

X
2

X
1

×