Phân công công việcST 1 Tham khảo các tài liệu, bài báo nghiên cứu để lấy thông tin Huỳnh Văn TrậnDương Thị Phương Mai 2 Tìm hiểu về các chỉ số chứng khoán, ý nghĩa và cách tính toán các
Trang 1ĐẠ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
HỆ CHUYÊN GIA HỖ TRỢ CHỌN CỔ PHIẾU ĐẦU TƯ
Đồ Án Môn Học
Hệ Hỗ Trợ Quyết Định
TP HỒ CHÍ MINH – Năm 2014
Trang 2ĐẠ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
HỆ CHUYÊN GIA HỖ TRỢ CHỌN CỐ PHIẾU ĐẦU TƯ
Trang 3Mục Lục
Mục Lục 1
Phân công công việc 2
Danh sách hình vẽ 3
Mở đầu 4
Chương 1 GIỚI THIỆU HỆ CHUYÊN GIA 5
1.1 Khái niệm 5
1.2 Thành phần 5
1.3 Biểu diễn tri thức trong các hệ chuyên gia 6
1.3.1 Biểu diễn tri thức bằng luật dẫn 6
1.3.2 Biểu diễn tri thức bằng mệnh đề logic 7
1.3.3 Biểu diễn tri thức bằng mạng ngữ nghĩa 7
1.3.4 Biểu diễn tri thức bằng ngôn ngữ nhân tạo 8
Chương 2 HỆ CHUYÊN GIA HỖ TRỢ CHỌN CỔ PHIẾU ĐẦU TƯ 8
2.1 Đặt vấn đề 8
2.2 Đánh giá một cổ phiếu qua 5 tiêu chí 9
2.3 Các luật suy diễn 10
2.4 Cách cài đặt thuật toán 12
2.4.1 Cài đặt thuật toán 12
2.4.2 Lưu trữ dữ liệu 12
2.5 Demo / Hướng dẫn sử dụng 12
TÀI LIỆU THAM KHẢO 15
Trang 4Phân công công việc
ST
1 Tham khảo các tài liệu, bài báo nghiên cứu để
lấy thông tin
Huỳnh Văn TrậnDương Thị Phương Mai
2 Tìm hiểu về các chỉ số chứng khoán, ý nghĩa và
cách tính toán các chỉ số này Huỳnh Văn TrậnDương Thị Phương Mai
3 Tìm các luật suy diễn từ các chỉ số chứng khoán
này
Dương Thị Phương Mai
4 Thu thập số liệu tài chính của tổng cộng 696 mã
chứng khoán Việt Nam hiện đang niêm yết trên
thị trường
Huỳnh Văn Trận
5 Thiết kế giao diện của ứng dụng Dương Thị Phương Mai
6 Thiết kế cách lưu trữ dữ liệu Huỳnh Văn Trận
7 Cài đặt các bước xử lý cho chương trình: đọc dữ
liệu từ file và từ input của người dùng, xử lý tính
toán và xuất ra kết quả trên giao diện
Huỳnh Văn Trận
8 Test chương trình với bộ dữ liệu thu thập được
từ thực tế, và so sánh kết quả trả về với kết quả
thực tế có hợp lý không, từ đó có thể có các
bước điều chỉnh cho chương trình
Huỳnh Văn TrậnDương Thị Phương Mai
9 Viết bài báo cáo Dương Thị Phương Mai
Trang 5Danh sách hình vẽ
Hình 1-1 Mô hình hệ chuyên gia 6Hình 2-1 Hình chụp chương trình - Attractive 13Hình 2-2 Hình chụp chương trình - Non attractive 14
Trang 6Mở đầu
Với việc phát triển mạnh mẽ của thị trường cổ phiếu trên thế giới và ở Việt Nam hiệnnay, việc lựa chọn cổ phiếu hấp dẫn là một nhu cầu phổ biến của nhà đầu tư Tuynhiên việc này khá là phức tạp và đòi hỏi phải có kiến thức của chuyên gia Nhà đầu
tư có thể tham khảo ý kiến của các chuyên gia trong các công ty môi giới chứngkhoán, hay có thể tham khảo số liệu phân tích từ các nguồn thông tin khác rồi đưa raquyết định cho riêng mình Tuy nhiên việc tham khảo số liệu phân tích cũng như thamkhảo ý kiến chuyên gia có thể bị hạn chế khi nhà đầu tư không có đủ thời gian phântích số liệu, hay không có điều kiện gặp được chuyên gia
Để giúp nhà đầu tư có thể dễ dàng và nhanh chóng tìm ra được loại cổ phiếu hấp dẫn
để đầu tư, nhất là ở những nơi mà nhà đầu tư khó có thể tham khảo ý kiến của chuyêngia, một số hệ chuyên gia dự báo giá chứng khoán ra đời Đây là một bài toán khôngmới, chúng ta có thể tìm thấy rất nhiều bài báo, nghiên cứu xây dựng thuật giải chobài toán này Tuy nhiên, ta sẽ thấy có rất nhiều hướng tiếp cận khác nhau, mỗi hướngtiếp cận sẽ có những ưu điểm riêng Hơn nữa, thị trường chứng khoán thay đổi pháttriển hàng ngày, và ngày càng có thêm những yếu tố tác động tới thị trường nên việcxây dựng những hệ chuyên gia dự báo trong lĩnh vực này vẫn còn hấp dẫn các nhànghiên cứu
Trong phạm vi của một đồ án môn học, ở đây cũng trình bày về cách xây dựng một hệchuyên gia để giúp đánh giá / chọn lựa cổ phiếu hấp dẫn dựa trên 5 tiêu chí chính củamột cổ phiếu, cùng với phần cài đặt cho hệ chuyên gia này
Trang 7Chương 1 GIỚI THIỆU HỆ CHUYÊN GIA
1.1 Khái niệm
Hệ chuyên gia, còn gọi là hệ thống dựa tri thức, là một chương trình máy tínhchứa một số tri thức đặc thù của một hoặc nhiều chuyên gia con người về mộtchủ đề cụ thể nào đó Các chương trình thuộc loại này đã được phát triển từcác thập niên 1960 và 1970, và trở thành ứng dụng thương mại từ thập niên
1980 Dạng phổ biến nhất của hệ chuyên gia là một chương trình gồm mộttập luật phân tích thông tin (thường được cung cấp bởi người sử dụng hệthống) về một lớp vấn đề cụ thể, cũng như đưa ra các phân tích về các vấn đề
đó, và tùy theo thiết kế chương trình mà đưa lời khuyên về trình tự các hànhđộng cần thực hiện để giải quyết vấn đề Đây là một hệ thống sử dụng cáckhả năng lập luận để đạt tới các kết luận [3]
Ví dụ: Hệ chuyên gia về chẩn đoán bệnh trong y khoa, hệ chuyên gia chẩnđoán hỏng hóc máy tính và cung cấp các ý kiến dựa trên kinh nghiệm củachuyên gia con người đã được đưa vào hệ chuyên gia
Nhiều hệ chuyên gia đã được thiết kế và xây dựng để phục vụ các lĩnh vực kếtoán, y học, điều khiển tiến trình (process control), dịch vụ tư vấn tài chính(financial service), tài nguyên con người (human resources), v.v
1.2 Thành phần
Một hệ chuyên gia gồm ba thành phần chính là cơ sở tri thức (knowledgebase), bộ suy diễn (inference engine), và hệ thống giao tiếp với người sử dụng(user interface) Cơ sở tri thức chứa các tri thức để từ đó, bộ suy diễn tạo racâu trả lời cho người sử dụng qua hệ thống giao tiếp Người sử dụng (user)cung cấp sự kiện (facts) là những gì đã biết, đã có thật hay những thông tin cóích cho hệ chuyên gia, và nhận được những câu trả lời là những lời khuyênhay những gợi ý đúng đắn (expertise) [1]
Ngoài ra còn có các thành phần khác như bộ nhớ, thành phần quản lý tri thức,
bộ giải thích…
Mô hình một hệ chuyên gia có thể biểu diễn như hình dưới đây:
Trang 8Hình 1-1 Mô hình hệ chuyên gia
1.3 Biểu diễn tri thức trong các hệ chuyên gia
Tri thức của một hệ chuyên gia có thể được biểu diễn theo nhiều cách khácnhau Thông thường người ta sử dụng các cách sau đây: [1]
Biểu diễn tri thức bằng luật dẫn
Biểu diễn tri thức bằng mệnh đề logic
Biểu diễn tri thức bằng mạng ngữ nghĩa
Biểu diễn tri thức bằng ngôn ngữ nhân tạo
1.3.1 Biểu diễn tri thức bằng luật dẫn
Hiện nay, hầu hết các hệ chuyên gia đều là các hệ thống dựa trên luật,bới lý do như sau :
Bản chất đơn thể, có thể đóng gói tri thức và mở rộng hệchuyên gia một cách dễ dàng
Khả năng diễn giải dễ dàng, dễ dàng dùng luật để diễn giải vấn
đề nhờ các tiền đề đặc tả chính xác các yếu tố vận dụng luật, từ
Trang 9IF <điều kiện> THEN <kết luận> DO <hành động>
1.3.2 Biểu diễn tri thức bằng mệnh đề logic
Người ta sử dụng các ký hiệu để thể hiện tri thức và các phép toánlôgic tác động lên các ký hiệu để thể hiện suy luận lôgic Kỹ thuật chủyếu thường được sử dụng là lôgic vị từ
Các vị từ thường có chứa hằng, biến hay hàm Người ta gọi các vị từkhông chứa biến (có thể chứa hằng) là các mệnh đề Mỗi vị từ có thể làmột sự kiện (fact) hay một luật Luật là vị từ gồm hai vế trái và phảiđược nối nhau bởi một dấu mũi tên Các vị từ còn lại (không chứa mũitên) được gọi là các sự kiện
Ví dụ: Từ các tri thức sau:
Marc có tóc vàng hoe, còn Jean có tóc màu nâu Pierre là cha của Jean.Marc là cha của Pierre Jean là cha của René Marc là con củaGeorges
Giả sử X, Y và là Z những người nào đó, nếu Y là con của X thì X làcha của Y Nếu X là cha của Z và Z là cha của Y thì X là ông của Y
Ta có thể biểu diễn thành các sự kiện và các luật như sau:
1 BLOND (marc)
2 BROWN (jean)
3 FATHER (pierre, jean)
4 FATHER (marc, pierre)
5 FATHER (jean, rené)
6 SON (marc, georges)
7 FATHER (X, Y) ←SON (Y, X)
8 GRANDFATHER (X, Y) ←FATHER (X, Z), FATHER (Z, Y) Người ta gọi tập hợp các sự kiện và các luật là một cơ sở tri thức [1]
1.3.3 Biểu diễn tri thức bằng mạng ngữ nghĩa
Trong phương pháp này, người ta sử dụng một đồ thị gồm các nút(node) và các cung (arc) nối các nút để biểu diễn tri thức Nút dùng để
Trang 10thể hiện các đối tượng, thuộc tính của đối tượng và giá trị của thuộctính Còn cung dùng để thể hiện các quan hệ giữa các đối tượng Cácnút và các cung đều được gắn nhãn.
Bằng cách thêm vào đồ thị các nút mới và các cung mới, người ta cóthể mở rộng một mạng ngữ nghĩa Các nút mới được thêm thể hiện cácđối tượng tương tự (với các nút đã có trong đồ thị), hoặc tổng quáthơn [1]
1.3.4 Biểu diễn tri thức bằng ngôn ngữ nhân tạo
Theo quan điểm của người sử dụng, ngôn ngữ tựnhiên sẽ là phươngcách thuận tiện nhất để giao tiếp với một hệ chuyên gia, không nhữngđối với người quản trị hệ thống (tư cách chuyên gia), mà còn đối vớingười sử dụng cuối Hiện nay đã có những hệ chuyên gia có khả năngđối thoại trên ngôn ngữ tựnhiên (thông thường là tiếng Anh) nhưng chỉhạn chế trong lĩnh vực ứng dụng chuyên môn của hệ chuyên gia [1]
1.4 Kỹ thuật suy luận trong các hệ chuyên gia
Có nhiều phương pháp tổng quát để suy luận trong các chiến lược giải quyếtvấn đề của hệ chuyên gia Những phương pháp hay gặp là suy diễn tiến(foward chaining), suy diễn lùi (backward chaining) và phối hợp hai phươngpháp này (mixed chaining) Những phương pháp khác là phân tích phươngtiện (means-end analysis), rút gọn vấn đề (problem reduction), quay lui(backtracking), kiểm tra lập kế hoạch (plan-generate-test), lập kế hoạch phâncấp (hierachical planning)
Ở đây chỉ trình bày 2 phương pháp cơ bản là suy diễn tiến và suy diễn lùi
1.4.1 Phương pháp suy diễn tiến
Suy diễn tiến ( forward charning) là lập luận từ các sự kiện, sự việc đểrút ra các kết luận
Trong phương pháp này, người sử dụng cung cấp các sự kiện cho hệchuyên gia để hệ thống (bộ suy diễn) tìm cách rút ra các kết luận cóthể Kết luận được xem là những thuộc tính có thể được gán giá trị.Trong số những kết luận này, có thể có những kết luận làm người sử
Trang 11dụng quan tâm, một số khác không nói lên điều gì, một số khác cóthểvắng mặt
Các sự kiện thường có dạng :
Atthibute = value
Lần lượt các sự kiện trong cơ sở tri thức được chọn và hệ thống xemxét tất cả các luật mà các sự kiện này xuất hiện như là tiền đề Theonguyên tắc lập luận trên, hệ thống sẽ lấy ra những luật thỏa mãn Saukhi gán giá trị cho các thuộc tính thuộc kết luận tương ứng, người tanói rằng các sự kiện đã được thỏa mãn Các thuộc tính được gán giá trị
sẽ là một phần của kết quả chuyên gia Sau khi mọi sự kiện đã đượcxem xét, kết quả được xuất ra cho người sử dụng
1.4.2 Phương pháp suy diễn lùi
Phương pháp suy diễn lùi tiến hành các lập luận theo chiều ngược lại(đối với phương pháp suy diễn tiến) Từ một giả thuyết (như là một kếtluận), hệ thống đưa ra một tình huống trảlời gồm các sự kiện là cơ sởcủa giả thuyết đã cho này
Suy diễn lùi là cho phép nhận được giá trị của một thuộc tính Đó làcâu trả lời cho câu hỏi “Giá trị của thuộc tính A là bao nhiêu?” với A làmột mục tiêu
Để xác định giá trị của A, cần có các nguồn thông tin Những nguồnnày có thểlà những câu hỏi hoặc có thể là những luật Căn cứ vào cáccâu hỏi, hệ thống nhận được một cách trực tiếp từ người sử dụngnhững giá trịcủa thuộc tính liên quan Căn cứ vào các luật, hệ thốngsuy diễn có thể tìm ra giá trị sẽ là kết luận của một trong số các kết luận
có thể của thuộc tính liên quan, v.v
Ý tưởng của thuật toán suy diễn lùi như sau Với mỗi thuộc tính đãcho, người ta định nghĩa nguồn của nó :
Trang 12 Nếu thuộc tính xuất hiện như là tiền đề của một luật (phần đầucủa luật), thì nguồn sẽ thu gọn thành một câu hỏi
Nếu thuộc tính xuất hiện như là hậu quả của một luật (phần cuốicủa luật), thì nguồn sẽ là các luật mà trong đó, thuộc tính là kếtluận
Nếu thuộc tính là trung gian, xuất hiện đồng thời như là tiền đề vànhư là kết luận, khi đó nguồn có thể là các luật, hoặc có thể là cáccâu hỏi mà chưa được nêu ra
Nếu mỗi lần với câu hỏi đã cho, người sử dụng trả lời hợp lệ, giá trị trảlời này sẽ được gán cho thuộc tính và xem như thành công Nếu nguồn
là các luật, hệ thống sẽ lấy lần lượt các luật mà thuộc tính đích xuấthiện như kết luận, để có thể tìm giá trị các thuộc tính thuộc tiền đề Nếucác luật thỏa mãn, thuộc tính kết luận sẽ được ghi nhận
1.5 Thiết kế hệ chuyên gia
Thuật toán tổng quát
Begin
Chọn bài toán thích hợp
Phát biểu và đặc tả bài toán
If Hệ chuyên gia giải quyết thỏa mãn bài toán và có thể sử dụng Then
While Bản mẫu chưa được phát triển hoàn thiện
Do Begin
Thiết kế bản mẫu Biểu diễn tri thức Tiếp nhận tri thức Phát triển hoàn thiện bản mẫu
Trang 13End
Hợp thức hoá bản mẫu Triển khai cài đặt Hướng dẫn sử dụng Vận hành
1.6 Đặc trưng và ưu điểm của hệ chuyên gia
Có bốn đặc trưng cơ bản của một hệ chuyên gia:
Hiệu quả cao (high performance) Khả năng trả lời với mức độ tinhthông bằng hoặc cao hơn so với chuyên gia (người) trong cùng lĩnhvực
Thời gian trả lời thoả đáng (adequate response time) Thời gian trả lờihợp lý, bằng hoặc nhanh hơn so với chuyên gia (người) để đi đến cùngmột quyết định
Độ tin cậy cao (good reliability) Không thể xảy ra sự cố hoặc giảm sút
độ tin cậy khi sử dụng
Dễ hiểu (understandable) Hệ chuyên gia giải thích các bước suy luậnmột cách dễ hiểu và nhất quán
Những ưu điểm của hệ chuyên gia:
Phổ cập (increased availability) Là sản phẩm chuyên gia, được pháttriển không ngừng với hiệu quả sử dụng không thể phủ nhận
Giảm giá thành (reduced cost)
Trang 14 Giảm rủi ro (reduced dangers) Giúp con người tránh được trong cácmôi trường rủi ro, nguy hiểm
Tính thường trực (Permanance) Bất kể lúc nào cũng có thể khai thác
sử dụng, trong khi con người có thể mệt mỏi, nghỉ ngơi hay vắng mặt
Đa lĩnh vực (multiple expertise) Chuyên gia vềnhiều lĩnh vực khácnhau và được khai thác đồng thời bất kể thời gian sử dụng
Độ tin cậy (increased relialility) Luôn đảm bảo độ tin cậy khi khaithác
Khảnăng giảng giải (explanation) Câu trả lời với mức độ tinh thôngđược giảng giải rõ ràng chi tiết, dễ hiểu
Khả năng trả lời (fast reponse) Trả lời theo thời gian thực, khách quan
Tính ổn định, suy luận có lý và đầy đủ mọi lúc mọi nơi (steady, unemotional, and complete response at all times)
Trợ giúp thông minh như một người hướng dẫn (intelligent -tutor)
Có thể truy cập như là một cơ sở dữ liệu thông minh (intelligentdatabase)
1.7 Các lĩnh vực ứng dụng của hệ chuyên gia
Hệ chuyên gia được ứng dụng trên nhiều lĩnh vực như sau:
Chẩn đoán: Lập luận dựa trên những chứng cứ quan sát được
Truyền đạt: Dạy học kiểu thông minh sao cho sinh viên có thể hỏi
Kiểm tra: So sánh dữ liệu thu lượm được với dữ liệu chuyên môn để đánh giá hiệu quả
Lập kế hoạch: Lập kế hoạch sản xuất theo yêu cầu
Dự đoán: Dự đoán hậu quả từ một tình huống xảy ra
Chữa trị: Chỉ định cách thụ lý một vấn đề
Điều khiển: Điều khiển một quá trình, đòi hỏi diễn giải, chẩn đoán, kiểm tra, lập kế hoạch, dự đoán và chữa trị
Trang 15Chương 2 HỆ CHUYÊN GIA HỖ TRỢ CHỌN CỔ PHIẾU ĐẦU TƯ 2.1 Đặt vấn đề
Lựa chọn cổ phiếu để đầu tư là một công việc phức tạp cả về lý thuyết lẫnthực tế Nếu các doanh nghiệp có thể phát triển được những mô hình đầy đủ
và đúng đắn về việc lựa chọn cổ phiếu để xây dựng các danh mục đầu tư thì
nó có thể mang lại hiệu quả kinh tế tích cực và có tầm ảnh hưởng lớn đối vớiviệc duy trì và phát triển doanh nghiệp
Vấn đề chính của chúng ta ở đây là là làm thế nào để biết được các công tytrên thị trường chứng khoán hoạt động có hiệu quả hay không và làm sao đểbiết được công ty nào chúng ta không nên bỏ tiền vào để đầu tư? Làm thế nào
để nhận biết được những công ty hoạt động tích cực, công ty nào đang giatăng thị phần, lợi nhuận, tính thanh khoản… trong rất nhiều rất nhiều công tyđang niêm yết trên thị trường? Về mặt lý thuyết ta có thể trả lời được nhữngcâu hỏi trên bằng cách xây dựng một tập lớn những chỉ tiêu kinh tế, và từ đó
có thế phản ánh được vị thế của công ty từ những quan điểm khác nhau Tùyvào quan điểm của từng chuyên gia mà chúng ta sẽ quan tâm tới những chỉtiêu nào, và do đó cách đánh giá cũng như kết quả đánh giá cũng sẽ khácnhau
Tuy nhiên, theo một nghiên cứu của một nhóm các nhà nghiên cứu từ Khoakinh tế đại học Mostar thì có năm chỉ tiêu kinh tế cơ bản mà ta có thể dựa vào
đó để nhận biết được những công ty nào là tốt và xứng đáng để chúng ta cóthể bỏ tiền vào để đầu tư
2.2 Đánh giá một cổ phiếu qua 5 tiêu chí
Mục đích chính của chúng ta là sẽ phân loại các cổ phiếu trên thị trường rathành 2 nhóm: Hấp dẫn (Attractive) và Không hấp dẫn (Non Attractive).Bước đầu tiên và cũng là bước quan trọng nhất là ta cần phải có một bản phântích tài chính để đánh giá hiệu suất của một công ty Lý thuyết tài chính ngàynay cung cấp một tập lớn các chỉ tiêu đánh giá vị trí kinh doanh và sức mạnhcủa các 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à