Trên cơ sở phân tích nhu cầu dự báo định lượngcủa Tập đoànVNPT, luận
văn đã đề xuất bài toán và thực hiện dự báo đối với một số chỉ tiêu về điện thoại
cố định, điện thoại di động và mạng Internet bằng phương phápmạng noron dựa
trên bộ công cụ khai phá dữ liệu YALE và tập số liệu thực tế c ủa Tập đoàn
VNPT.
103 trang |
Chia sẻ: lylyngoc | Lượt xem: 3017 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Luận văn Áp dụng các kỹ thuật phân lớp dữ liệu, hồi quy để dự báo số liệu sản xuất kinh doanh cho VNPT, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
quả.
Mô hình
Mẫu dữ
liệu mới
Giá trị dự
báo
Dự báo giá trị
mới
- 62 -
3.3.3. Phương pháp mạng nơrontrong dự báo số liệu SXKD tại VNPT
Phương pháp Phân lớp dữ liệu có thể được thực hiện bằng nhiều giải thuật
khác nhau như: Cây quyết định, mạng Bayes, k-người láng giềng gần nhất (k-
NN), mạng nơron… Mỗi loại giải thuật thích hợp với một số loại dữ liệu nhất
định. Số liệu SXKD thực tế của VNPT rất lớn bao gồm dữ liệu tất cả các tỉnh
thành trong cả nước trên các lĩnh vực viễn thông như: mạng cố định, mạng di
động, mạng Internet và mạng hội tụ. Số lượng các chỉ tiêu dữ liệu cho các lĩnh
vực này là rất lớn. Không những thế dữ liệu các tỉnh khác nhau là rất khác nhau
cũng như bản thân nguồn dữ liệu có rất nhiều nhiễu, có sự nhảy bậc giữa các
tỉnh và giữa các năm.
Vì sự chênh lệch giữa các chỉ tiêu lớn cho nên các mô hình tuyến tính không
được áp dụng để khai phá dữ liệu bởi vì mô hình tuyến tính sẽ tạo ra một hàm
gần đúng nhất tới các điểm, mà sự chênh lệch giữa các chỉ tiêu lớn cho nên dự
báo sẽ không chính xác.
Mô hình dùng để khai phá cần phải đáp ứng được các yêu cầu dự báo chính
xác cũng như phù hợp với nguồn dữ liệu nhiều chiều, thay đổi liên tục, có sự
nhảy bậc cũng như có nhiễu của Tập đoàn cho nên sẽ phải sử dụng một số mô
hình phi tuyến như cây quyết định, k-NN, mạng nơron…
- Mô hình dùng mạng Nơron:
Thích hợp với nhiều kiểu dữ liệu khác nhau như liên tục, rời rạc,
kiểu số, kiểu chữ… thuộc các lĩnh vực khác nhau
Mạng Nơron đặc biệt thích hợp khi sử dụng để phân lớp dữ liệu và
dự báo bởi vì mạng Nơron có khả năng học và khả năng khái quát
hóa.Với mô hình mạng Nơron, khi có dữ liệu mới sẽ tự động điều
chỉnh lại các trọng số liên kết và ngưỡng để phù hợp với dữ liệu
mới và nhờ khả năng khái quát hóa mà mạng Nơron sẽ đưa ra dự
báo chính xác với sự thay đổi của cơ sở dữ liệu.
Mạng Nơron có độ chính xác tương đối cao.
Ảnh hưởng ít bởi nhiễu.
Với dữ liệu nhỏ thì xây dựng mô hình nhanh. Với dữ liệu lớn thì
thời gian chạy là chấp nhận được.
- Mô hình khai phá dữ liệu dùng cây quyết định:
Xây dựng mô hình và dự báo nhanh tuy nhiên chỉ thích hợp với dữ
liệu rời rạc, không dùng dự báo kết quả liên tục.
- 63 -
Mô hình cồng kềnh khi các nhánh dự báo lớn.
- Mô hình khai phá dữ liệu sử dụng thuật toán k-NN
Xây dựng mô hình đơn giản.
Độ chính xác khá tốt với dữ liệu nhỏ.
Chạy chậm khi lượng dữ liệu lớn.
Với yêu cầu đưa ra dự báo chính xác trên nguồn dữ liệu lớn, thay đổi, có
nhiễu, nhiều chiều, qua việc phân tích các ưu nhược điểm của các mô hình thì sử
dụng mô hình mạng Nơron để dự báo số liệu SXKD cho VNPT là thích hợp hơn
cả.
3.3.4. Phần mềm công cụ hỗ trợ dự báo
a. Giới thiệu phần mềm nguồn mở Yale
Yale là một bộ công cụ mã nguồn mở dành cho thao tác Khai phá dữ liệu và
học máy, được phát triển từ năm 2001 bởi Nhóm Trí tuệ nhân tạo của Trường
Đại học Dortmund [18]. Ngoài ra Yale còn tích hợp với bộ công cụ Khai phá
dữ liệu nổi tiếng khác là bộ công cụ Weka, giúp người sử dụng có thể sử
dụng các thao tác được hỗ trợ bởi Weka một cách dễ dàng. Yale sử dụng
ngôn ngữ XML, một ngôn ngữ mô tả cấu trúc đối tượng được sử dụng rất
rộng rãi hiện nay, để mô tả các cây toán tử mô hình hóa các tiến trình Khai
phá dữ liệu. Với định dạng dữ liệu chuẩn này, các cây toán tử có thể được
đọc dễ dàng bởi người dùng hoặc bởi chương trình. Hơn nữa, các file cấu
hình nhiệm vụ bằng XML tạo thành một chuẩn trao đổi dữ liệu giữa các
nhiệm vụ khai phá dữ liệu.
Với chương trình mã nguồn mở Yale chúng ta có thể thực hiện các thao tác
Khai phá, xử lý dữ liệu như:
- Các giải thuật học máy:
Phân lớp và hồi quy: SVM (support vector machine), mạng nơron,
cây quyết định, mạng Bayes...
Phân cụm: kMeans, EM, phân cụm dựa vào mật độ...
Khai phá luật kết hợp: Tertius, Apriori.
- Các thao tác xử lí dữ liệu: rời rạc hóa, lọc mẫu, xử lí các giá trị thiếu hoặc
không xác định, chuẩn hóa dữ liệu, giảm số chiều của dữ liệu...
- Các thao tác đánh giá: đánh giá chéo và một số phương pháp đánh giá
khác, các thao tác tối ưu hóa tham số...
- 64 -
- Các thao tác nhập, xuất dữ liệu: cho phép nhập, xuất dữ liệu từ file text
với các định dạng như arff, C4.5, CSV... hoặc từ CSDL.
Hình 16. Màn hình chương trình YALE
b. Các thao tác KPDL chủ yếu được sử dụng trong Yale
Experiment: Experiment chứa các tham số để liên kết các Modul khi khai
phá dữ liệu.
o logfile: Dùng để ghi ra các thông tin (filename)
o resultfile: Dùng để ghi kết quả sau khi thực hiện khai phá dữ liệu
CSVExampleSource: Dùng để khai phá dữ liệu kiểu csv (các dữ liệu cách
nhau bởi dấu “,” trong bảng dữ liệu). Các tham số:
o label_attribute: Tên nhãn của thuộc tính
o weight attribute: trọng số các thuộc tính
o data_file: tên file dữ liệu cần khai phá.
o id_attribute: id của thuộc tính
DataBaseExampleSource: Dùng để khai phá dữ liệu từ file SQL. Các
thuộc tính:
o label_attribute: Tên nhãn của thuộc tính
o weight attribute: trọng số các thuộc tính
o id_attribute: id của thuộc tính
o databasename: tên database cần khai phá
o usename: usename của database
o password: Password của database cần khai phá
ExampleSetWriter: ghi lại giá trị của dữ liệu khai phá. Các tham số:
- 65 -
o example_set_file: tên file để ghi lại dữ liệu đã khai phá
o attribute_description_file: ghi lại miêu tả của các thuộc tính của dữ
liệu và file này thường có đuôi là .xml
o special_format: định dạng lại đầu ra.
ExampleSource: ExampleSource dùng để đưa dữ liệu vào chương trình để
khai phá. Với Operator này ta có thể đưa được nhiều kiểu dữ liệu vào
nhưng mặc định là các đặc tả về dữ liệu ở dạng .xml. Các tham số:
o filename: tên file dữ liệu để khai phá.
o attribute_value_type: kiểu thuộc tính của dữ liệu
o Sample_ratio: bạn có thể đọc một phần của dữ liệu ( giá trị là1= all,
giá trị này được áp dụng nếu giá trị Sample_size = -1)
o Sample_size: dùng để đưa ra chính xác số mẫu cần đọc (giá trị -1 =
all. Nếu nó có giá trị khác -1 thì giá trị Sample_ratio sẽ bị bỏ qua)
ModelWriter: Dùng để ghi lại mô hình đã dùng để khai phá. Tham số:
o Model_file: File dùng để lưu lại mô hình đã khai phá dữ liệu. Nếu
muốn ghi lại mô hình vào một file nào đó ta chỉnh thông số này và
chuỗi string ở thông số này chính là đường dẫn đến file đó.
ModelLoader: Dùng để Load mô hình khai phá dữ liệu. Tham số:
o Model_file: tên file chứa mô hình cần Load để khai phá. Chuỗi
string trên thông số này chính là đường dẫn đến file cần mở.
ResultWriter: Dùng để ghi lại các kết quả đã thực hiện. Khi người sử
dụng muốn lưu lại các kết quả đã khai phá được thì dùng modul này ghi
lại kết quả.
ParameterSetter: Áp dụng một tập các tham số đã được lưu lại cho các mô
hình nào đó
o Name_map: một danh sách ánh xạ từ tập hợp đã lưu vào các thao
tác trong Experiment.
ExperimentLog: Lưu tất cả các giá trị vào một file log và tạo thống kê
phục vụ cho việc tạo biểu đồ tương quan giá trị/tham số.
o Filename: tên file
o Log: danh sách các key cần ghi log.
XValidation: thao tác thực hiện phương pháp đánh giá chéo. Tập dữ liệu S
sẽ được chia thành n tập con Si. Các thao tác bên trong sẽ được thực hiện
n lần sử dụng Si làm tập kiểm tra và S|Si làm tập huấn luyện. Tham số:
o Number_of_validations: số lượng tập con của đánh giá chéo
o Sampling_type: cách lấy mẫu
- 66 -
OperatorChain: gộp các thao tác thành một khối, tất cả các thao tác ở bên
trong được coi như một thao tác.
PerformanceEvaluator: thao tác này cho đầu ra là một danh sách các giá
trị đánh giá theo các tiêu chí đã chọn. Các loại tiêu chí đánh giá được hỗ
trợ gồm: sai số tuyệt đối, sai số tương đối, sai số tuyệt đối chuẩn hóa, sai
số trung bình bình phương, sai số tương đối bình phương, sai số bình
phương, AUC, độ chính xác, sai số phân lớp, kappa, recall, fallout, lift…
ClassificationByregression: Đây là cách phân lớp dữ liệu bằng phương
pháp hồi quy. Đầu vào của nó là ExampleSet và đầu ra là một Model. Với
phương pháp này dữ liệu đầu vào có thể là bảng số, bảng đa thức. Phương
pháp thường dùng cho kiểu dữ liệu là liên tục (ví dụ dự báo dân số thế
giới…). Tham số:
o keep_example_set: miêu tả rõ dữ liệu đầu vào khi thành đầu ra
(mặc định là false)
Id3: Dùng để phân lớp dữ liệu bằng cây quyết định. Đầu vào là
ExampleSet và đầu ra là Model. Thuật toán để đưa ra cây quyết định đã
được trình bày ở phần lý thuyết. Sau khi đưa dữ liệu vào thì đầu ra là một
cây quyết định và thuật toán này dùng khá nhiều cho dữ liệu kiểu
Nominal. Tham số:
o keep_example_set: miêu tả rõ dữ liệu đầu vào khi thành đầu ra
(mặc định là false)
J48: Dùng để phân lớp dữ liệu bằng cây quyết định. Nó sẽ tạo ra một cây
đã được tỉa hoặc chưa được tỉa. Cũng như thuật toán Id3 thuật toán này
được áp dụng với các kiểu dữ liệu Nominal cũng như kiểu thuộc tính
số…Các tham số:
o keep_example_set: miêu tả rõ dữ liệu đầu vào khi thành đầu ra
(mặc định là false)
o U: thông số này để điều chỉnh có tỉa cây hay không (mặc định là
False)
o C: Đặt lại ngưỡng để tỉa cây.
o M: Đặt lại số trường hợp bé nhất trên lá (mặc định là 2)
o R: Dùng để làm giảm lỗi khi tỉa cây (mặc định là False)
LeastMedSq: Đây là phương pháp bình phương tối thiểu, thực chất là
phương pháp hồi quy đường thẳng tuyến tính. Như phần lý thuyết ta đã
biết để tìm các giá trị hồi quy trong đa thức Y = aX1 + bX2 + c thì ta dùng
phương pháp bình phương tối thiểu và các hồi quy không tuyến tính sẽ
được đưa về dạng tuyến tính. Đầu vào của phương pháp thường là các dữ
- 67 -
liệu kiểu số, đa thức… Đầu ra là một đa thức bậc nhất với các biến đầu
vào. Các thuộc tính:
o keep_example_set: miêu tả rõ dữ liệu đầu vào khi thành đầu ra
(mặc định là false)
o S: Đặt lại chiều dài mẫu
o D: tạo gỡ lỗi đầu ra (mặc định là false)
LinearRegression: Phương thức phân lớp dữ liệu bằng hồi quy đường
thẳng. Với phương thức này đầu ra cũng là một đa thức bậc nhất tuyến
tính với các đầu vào. Các dữ liệu đầu vào thường là dạng đa thức, số …
Các thuộc tính:
o keep_example_set: miêu tả rõ dữ liệu đầu vào khi thành đầu ra
(mặc định là false)
o D: tạo gỡ lỗi ở đầu ra (mặc định là false)
o S: chọn phương thức sử dụng
MultilayerPerceptron: Phương thức dùng mạng Nơron đa lớp để phân lớp
dữ liệu. Phương pháp sử dụng thuật toán truyền ngược mà ta đã nêu ở
phần lý thuyết. Với phương pháp này ta có thể tạo ra mạng Nơron bằng
tay hay bằng thuật toán. Mạng Nơron được tạo ra có thể được giám sát và
biến đổi trong quá trình chạy. Các thông số:
o keep_example_set: miêu tả rõ dữ liệu đầu vào khi thành đầu ra
(mặc định là false)
o L: đây chính là tham số học . Việc chọn tham số học ban đầu sẽ
quyết định đến sự hội tụ của thuật toán. Mỗi bài toán khác nhau lại
cần có một tham số học khác nhau và việc chọn tham số học ban
đầu dựa vào kinh nghiệm. Việc lựa chọn L ảnh hưởng đến các
trọng số ở đầu vào sau khi đã điều chỉnh.
o M: Đây chính là hằng số xung lượng. Việc lựa chọn hằng số xung
lượng ban đầu sẽ ảnh hưởng đến mạng cũng như giúp mạng Nơron
tránh được cục bộ địa phương và có thể đạt được cực tiểu toàn cục.
o N: Số lượng các bước huấn luyện (số các vòng lặp huấn luyện),
mặc định là 500.
o V: phần trăm kích thước tập đánh giá dùng để kết thúc huấn luyện,
nếu giá trị khác không, điều kiện này sẽ được ưu tiên hơn số lượng
bước huấn luyện N (giá trị nằm trong khoảng 0 – 100, mặc định là
0).
o S: giá trị được dùng để đưa vào bộ sinh số ngẫu nhiên (giá trị nên là
0 và 1 giá trị số lớn, mặc định là 0)
- 68 -
o E: tỉ lệ lỗi cho phép ở bước đánh giá mô hình trước khi dừng huấn
luyện mạng nơron.
o A: đặt tham số này là True thì mạng nơron sẽ không tự tạo kết nối
(tham số này sẽ bị bỏ qua nếu tham số G được thiết đặt) (mặc định
là False)
o B: đặt tham số này là True sẽ không sử dụng bộ lọc
NominalToBinary (mặc định là False).
o C: đặt tham số này là True sẽ không chuẩn hóa đối với nhãn lớp
kiểu số (mặc định là false).
o D: Theo dõi lỗi của tham số học. Khi tham số này là True thì lỗi
của tham số học sẽ được hiện lên. Mặc định của tham số này là
False.
o I: đặt tham số này là True sẽ Không chuẩn hóa các thuộc tính kiểu
số (mặc định là false).
o G: GUI được sử dụng nếu thông số này là True. Khi thông số này là
True thì ta có thể quan sát được mạng Nơron ở dạng biểu đồ trực
quan.
o H: số nơron cho lớp ẩn tạo ra cho mạng. Thông thường số nơron
lớp ẩn bằng tổng số nơron của lớp vào và số nơron lớp ra chia 2.
Tuy nhiên sự lựa chọn bao nhiêu nơron còn phụ thuộc vào mạng.
Nếu mạng học vẹt thì ta bớt số nơron ở lớp ẩn đi và nếu mạng
không học được thì ta phải thêm số lớp ẩn hoặc tăng thêm số nơron
cho lớp ẩn. Để đặt lại số nơron này ta đặt lại giá trị tham số H bằng
số nơron cần thiết.
o R: không cho phép reset mạng, đặt giá trị này sẽ khiến tốc độ học
giảm sút (mặc định là false).
- 69 -
Hình 17. Mô hình xử lý một cây toán tử của Yale
c. Giới thiệu phần mềm nguồn mở WEKA
Weka là phần mềm mã nguồn mở dùng phục vụ cho việc khai phá dữ liệu. Weka
được phát triển từ năm 1993 bởi trường Đại học Waikato của New Zealand[17].
Các thuật toán của Weka có thể được áp dụng cho nhiều kiểu dữ liệu khác nhau,
cũng như có thể sử dụng trong chương trình Java khác. Phần mềm Weka bao
- 70 -
gồm nhiều công cụ phục vụ cho việc tiền xử lý dữ liệu, phân lớp dữ liệu, phân
cụm dữ liệu, hồi quy, luật kết hợp… Mục tiêu tổng thể của Weka là xây dựng
một cách thức dễ dàng và tiên tiến nhất để phát triển kỹ thuật học máy và áp
dụng những kỹ thuật này cho những vấn đề Khai phá dữ liệu trong thế giới thực.
Nhóm phát triển Weka đã tích hợp những kĩ năng học máy tiêu chuẩn thành một
phần mềm "workbench" gọi là WEKA, cho môi trường Waikato (Waikato
Environment) để phân tích kiến thức (Knowledge Analysis). Với phần mềm này,
một chuyên gia trong một lĩnh vực cụ thể có thể sử dụng các kỹ thuật học máy
để thu được kiến thức hữu dụng từ cơ sở dữ liệu rất khó phân tích bằng tay.
Người sử dụng WEKA là những người nghiên cứu kỹ thuật học máy và các nhà
khoa học. Weka cũng được sử dụng rộng rãi trong giảng dạy. Gói phần mềm
này có thể được coi như một bộ sưu tập các thuật toán để giải quyết những vấn
đề khai phá dữ liệu thế giới thực. Phần mềm này được viết toàn bộ bằng Java và
có một giao diện thống nhất cho một loạt các kĩ năng học máy tiêu chuẩn.
Hình 18. Màn hình chương trình WEKA
d. So sánh tính năng của YALE và WEKA
Hai phần mềm YALE và WEKA đều là hai phần mềm khai phá dữ liệu được
sử dụng rộng rãi trên thế giới hiện nay. Cả hai phần mềm này đều cung cấp
khá đầy đủ các thao tác về khai phá dữ liệu. Xét về khía cạnh vào ra dữ liệu,
- 71 -
YALE linh động hơn WEKA vì các file dữ liệu và mô hình có thể được mô
tả dưới dạng XML, khiến việc kết nối với các chương trình khác trở nên dễ
dàng hơn. YALE cũng cung cấp nhiều thao tác loại biểu đồ để trực quan hóa
dữ liệu hơn WEKA, trong đó có các loại biểu đồ như: Andrew Curves, SOM,
Density…
Tính năng YALE WEKA
Data and Model Input/Output
XML
CSV
ARFF
C45
Excel
Oracle DB
MySQL
SQL Server
Algorithms
Decision Trees
Linear/Statistical
Multilayer Perceptrol
Nearest Neighbor
Radial Basis Function
Bayes
Rule Induction
Polynomial Networks
Time Series
Sequential Discovery
SVM
Kmeans
Association Rules
Kohonen
Visualization
Histograms
Pie Charts
Scatter/Line Plots
Rotating Scatters
Bảng 1. So sánh YALE và WEKA
- 72 -
3.4. Ứng dụng mạng Nơron để dự báo số liệu SXKD cho VNPT
3.4.1. Xác định các biến dự báo
Đặc thù của VNPT là có rất nhiều đơn vị thành viên, số liệu sản xuất kinh
doanh của các đơn vị thành viên cũng có sự chênh lệch nhau rất lớn. Vì vậy để
có kết quả dự báo chính xác, mô hình dự báo cần được xây dựng cho từng chỉ
tiêu cần dự báo của từng đơn vị.
3.4.2. Thu thập dữ liệu
Toàn bộ dữ liệu sử dụng cho quá trình xây dựng và thử nghiệm các mô
hình dự báo được cung cấp bởi các chuyên viên của Tập đoàn Bưu chính Viễn
thông Việt Nam với cam kết chỉ sử dụng dữ liệu cho mục đích nghiên cứu,
không sử dụng vào bất kỳ mục đích gì khác và không cung cấp cho đối tượng
khác dưới bất kỳ hình thức nào. Dữ liệu được thu thập theo chu kỳ tháng và
được lưu trữ trong 9 file excel tương ứng với số liệu của 9 năm từ 1999 tới 2007.
Mỗi file excel có 12 sheet dữ liệu tương ứng với số liệu của 12 tháng trong năm
đó. Trong mỗi sheet dữ liệu, số liệu được lưu dưới dạng ma trận gồm 613 cột
tương ứng với 613 chỉ tiêu và 79 hàng tương ứng với 79 đơn vị.
3.4.3. Tiền xử lý dữ liệu
Việc khai phá dữ liệu từ tập hợp các file Excel là rất bất tiện, vì vậy bước
đầu tiên cần thực hiện là chuyển dữ liệu từ các file Excel vào một kho dữ liệu để
việc khai phá được dễ dàng và thuận tiện. Cấu trúc của kho dữ liệu như sau:
- 73 -
Hình 19. Cấu trúc kho dữ liệu SXKD của VNPT
Việc chuyển đổi dữ liệu được thực hiện bằng một module phần mềm tự viết trên
ngôn ngữ Java. Thuật toán chuyển đổi dữ liệu từ Excel vào Database
- Đầu vào: file excel gồm n hàng, m cột dữ liệu
- Đầu ra: bảng dữ liệu trong CSDL
- Thuật toán:
Khởi tạo ma trận dữ liệu mtxData gồm n hàng, m cột
Đọc file excel vào ma trận dữ liệu
For (i=1 ; i<=n ; i++)
For (j=1 ; j<=m ; j++)
Kiểm tra trong bảng dữ liệu solieusanluong xem đã có
bản ghi thỏa mãn điều kiện :
o Tháng của bản ghi = tháng đã chọn
o Năm của bản ghi = năm đã chọn
o Mã đơn vị của bản ghi = mã đơn vị của
mtxData[i,j]
o Mã chỉ tiêu của bản ghi = mã chỉ tiêu của
mtxData[i,j]
- 74 -
Nếu có tồn tại bản ghi, cập nhật bảng solieusanluong
tại vị trí hiện thời với giá trị dữ liệu mới có giá trị bằng
mtxData[i,j]
Nếu không tồn tại bản ghi, thêm mới vào bảng
solieusanluong một bản ghi với các giá trị :
o Tháng := tháng đã chọn
o Năm := năm đã chọn
o Mã đơn vị := mã đơn vị của mtxData[i,j]
o Mã chỉ tiêu := mã chỉ tiêu của mtxData[i,j]
o Giá trị dữ liệu := mtxData[i,j]
Sau khi tiền xử lý và đưa dữ liệu từ file excel vào Cơ sở lữ liệu, bảng dữ
liệu gốc gồm có 5230116 bản ghi số liệu của 619 chỉ tiêu của 79 đơn vị trong 9
năm. Cấu trúc của bảng này như sau:
Tên trường Kiểu dữ liệu Giá trị khởi tạo
ID Int(5)
madonvi Varchar(255)
tendonvi Varchar(255)
Thang Int(2)
Nam Int(4)
machitieu Varchar(15)
solieu Int(12)
3.4.4. Trích chọn dữ liệu – Xây dựng tập huấn luyện
Tập dữ liệu này rất lớn và bao gồm nhiều nhóm số liệu không trực tiếp
ảnh hưởng tới nhau, nếu sử dụng toàn bộ bảng dữ liệu này để huấn luyện các mô
hình dự báo số liệu sẽ có 2 điểm bất lợi với quá trình dự báo:
1. Số lượng bản ghi quá lớn sẽ khiến cho quá trình huấn luyện mô hình
trở nên rất lâu, vượt quá khả năng chờ đợi của người thực hiện.
2. Các bản ghi không liên quan trực tiếp tới nhau sẽ trở thành nhiễu, làm
giảm độ chính xác của quá trình dự báo.
Vì vậy, để thu được kết quả dự báo chính xác hơn, chúng ta cần trích chọn
từ tập dữ liệu lớn ra thành những tập huấn luyện nhỏ hơn trong đó các số liệu có
liên quan, ảnh hưởng trực tiếp tới nhau. Căn cứ trên nhu cầu thực tế về công tác
dự báo số liệu, các chỉ tiêu cần dự báo được chia thành 3 nhóm chính:
- 75 -
- Nhóm các chỉ tiêu về điện thoại cố định
- Nhóm các chỉ tiêu về điện thoại di động
- Nhóm các chỉ tiêu về thuê bao Internet
Việc lựa chọn các chỉ tiêu trong từng nhóm số liệu được thực hiện căn cứ
trên kết quả khảo sát về quy trình nghiệp vụ đã được thực hiện và tham khảo
trực tiếp các chuyên gia của VNPT. Kết quả phân nhóm các chỉ tiêu như sau:
- Tập huấn luyện thuê bao Internet bao gồm các chỉ tiêu:
Sản lượng truy nhập Internet 1260 (m5831)
Sản lượng truy nhập Internet 1268 (m5832)
Sản lượng truy nhập Internet 1269 (m5833)
Sản lượng truy nhập Internet 1267 (m5834)
Sản lượng số cuộc điện thoại truy nhập Internet (m5835)
Sản lượng số phút điện thoại truy nhập Internet (m5836)
- Tập huấn luyện điện thoại cố định bao gồm các chỉ tiêu:
Sản lượng số cuộc điện thoại đường dài liên tỉnh (m410)
Sản lượng số phút điện thoại đường dài liên tỉnh (m420)
Sản lượng số cuộc điện thoại VOIP 171 trong nước (m421)
Sản lượng số phút điện thoại VOIP 171 trong nước (m422)
Sản lượng số cuộc điện thoại đường dài nội tỉnh (m423)
Sản lượng số phút điện thoại đường dài nội tỉnh (m425)
Sản lượng số cuộc điện thoại nội hạt (m426)
Sản lượng số phút điện thoại nội hạt (m427)
Sản lượng số cuộc điện thoại ISDN nội hạt (m428)
Sản lượng số phút điện thoại ISDN nội hạt (m429)
Sản lượng số cuộc điện thoại VOIP quốc tế (m441)
Sản lượng số phút điện thoại VOIP quốc tế (m442)
Sản lượng thuê bao điện thoại cố định hòa mạng (m8061)
- Tập huấn luyện điện thoại di động bao gồm các chỉ tiêu:
Sản lượng số cuộc điện thoại di động nội vùng (m601)
- 76 -
Sản lượng số phút điện thoại di động nội vùng (m602)
Sản lượng điện thoại di động cận vùng (m603)
Sản lượng điện thoại di động liên vùng (m604)
Sản lượng số cuộc điện thoại di động quốc tế (m605)
Sản lượng số phút điện thoại di động quốc tế (m606)
Sản lượng số cuộc điện thoại di động cách vùng (m607)
Sản lượng số phút điện thoại di động cách vùng (m608)
Tập huấn luyện cần có nhãn lớp cho dữ liệu để hướng dẫn giải thuật học,
trong khi đó dữ liệu thô hoàn toàn chưa có nhãn lớp. Để tạo nhãn lớp cho dữ
liệu, ta đưa thêm một cột nhãn lớp vào. Cột nhãn lớp này được tạo từ số liệu của
chính chỉ tiêu đó nhưng ở những chu kỳ kế tiếp theo quy tắc: muốn dự báo số
liệu cho chu kỳ thứ n tiếp theo thì sẽ sử dụng số liệu của chu kỳ thứ n đó làm
nhãn lớp. VD: muốn dự báo sản lượng điện thoại di động 3 tháng sau thì sử
dụng số liệu tháng 6 làm nhãn lớp cho số liệu tháng 3.
3.4.5. Xác định mô hình mạng nơron
- Số lượng nơron đầu vào: số lượng nơron đầu vào sẽ tùy thuộc vào việc
chỉ tiêu cần dự báo thuộc vào nhóm nào trong 3 nhóm Tập huấn luyện, cụ
thể, số lượng nơron đầu vào của các Nhóm như sau:
Nhóm các chỉ tiêu về thuê bao Internet: 6 nơron
Nhóm các chỉ tiêu về điện thoại cố định: 13 nơron
Nhóm các chỉ tiêu về điện thoại di động: 8 nơron
- Số đầu ra: mạng nơron với nhiều đầu ra nói chung cho kết quả kém chính
xác hơn so với mạng nơron có 1 đầu ra, vì vậy, chúng ta sẽ chọn số lượng
nơron đầu ra của mạng là 1, tương ứng với chỉ tiêu cần dự báo.
- Số lớp ẩn: theo thực tiễn và các nghiên cứu đã tiến hành, số lượng lớp ẩn
lớn hơn 2 sẽ không cải thiện được độ chính xác của kết quả dự báo, vì vậy
chỉ cần dùng từ 1-2 lớp ẩn. Trước hết, chúng ta sẽ chọn số lớp ẩn là 1, sau
quá trình huấn luyện, nếu không thể đạt được độ chính xác mong muốn
thông qua việc điều chỉnh các trọng số thì chúng ta sẽ tăng số lớp ẩn lên.
- Số nơron ẩn: theo luật Kim tự tháp, số lượng nơron ẩn tối ưu sẽ từ ½ đến
2 lần số đầu vào. Ở đây, số nơron ẩn khởi tạo để xây dựng mô hình sẽ
được tính theo công thức:
Số nơron ẩn =
(Số nơron đầu vào + Số nơron đầu
- 77 -
ra)
2
Theo đó, số nơron ẩn khi dự báo chỉ tiêu của các Nhóm như sau:
Nhóm các chỉ tiêu về thuê bao Internet:
Số nơron ẩn = (6+1)/2 ~ 3 nơron
Nhóm các chỉ tiêu về điện thoại cố định:
Số nơron ẩn = (13+1)/2 = 7 nơron
Nhóm các chỉ tiêu về điện thoại di động:
Số nơron ẩn = (8+1)/2 = 4 nơron
Trong quá trình huấn luyện, nếu với số nơron ẩn này, mạng nơron không
thể đạt được độ chính xác mong muốn tối thiểu (10%), số nơron ẩn sẽ được tăng
dần lên và huấn luyện lại mạng tới khi đạt được độ chính xác mong muốn.
- Tổng kết lại, mô hình mạng nơron được thiết kế cho 3 nhóm chỉ tiêu như
sau:
Nhóm các chỉ tiêu về thuê bao Internet
- 78 -
Nhóm các chỉ tiêu về điện thoại cố định
Nhóm các chỉ tiêu về điện thoại di động
- Hàm kích hoạt: vì dữ liệu dự báo là dữ liệu dạng số, phi tuyến nên hàm
kích hoạt được sử dụng là hàm sigma.
- 79 -
3.4.6. Xác định hàm đánh giá sai số
Hàm đánh giá sai số được sử dụng là sai số trung bình bình phương. Đây là
hàm đánh giá phổ biến khi sử dụng thuật toán lan truyền sai số ngược đối với dữ
liệu dạng số.
3.4.7. Huấn luyện mạng nơ ron
Việc huấn luyện các mạng nơronđược thực hiện với sự trợ giúp của bộ công
cụ YALE theo mô hình sau:
Để việc huấn luyện mạng nơron đạt kết quả tốt nhất, đề tài sử dụng một
phương pháp tối ưu các tham số của mạng nơronđược cung cấp bởi thao tác
GridParameterOptimization trong bộ công cụ YALE. Các tham số được tối ưu
của mạng nơron gồm có hệ số học (tham số L trong bộ công cụ YALE) và hằng
số xung lượng (tham số M trong bộ công cụ YALE). Thao tác
GridParameterOptimization sẽ thử lần lượt từng cặp tham số L và M với các giá
trị đã được khai báo từ 0,1 đến 0,9 để huấn luyện mạng nơron và chọn mạng
nơron có kết quả tốt nhất để trả về cho người dùng.
Thiết đặt các tham số của các thao tác trong mô hình như sau:
- DatabaseExampleSource:
- 80 -
Database_url: jdbc:mysql://localhost:3306/datamining
Username: root
Password: root
Query (trường hợp này xây dựng mô hình dự báo cho chỉ tiêu Internet
m5831 của đơn vị Hà Nội, với chu kỳ dự báo trước 3 tháng):
select tb1.m5831, tb1.m5832, tb1.m5833, tb1.m5834, tb1.m5835,
tb1.m5836, tb2.m5831 label
from internet tb1, internet tb2
where tb1.tinhid='010' and tb2.tinhid='010'
and ((tb2.thang=tb1.thang+3 and tb1.thang+3<=12 and
tb1.nam=tb2.nam)
or (tb2.thang=tb1.thang+3-12 and tb2.nam=tb1.nam+1 and
tb1.thang+3>12));
- ParameterOptimization:
L: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9
M: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9
- PerformanceEvaluation:
absolute_error: true
relative_error: true
- ExperimentLog:
Filename: D:/datamining/log/logm5841_010_3.log
- ModelWriter:
model_file: D:/datamining/model/m5831_010_3.mod
Sau khi huấn luyện xong, kết quả thu được như sau:
1 . absolute_error: 37614.91913497647
2 . relative_error: 0.041056307093463335
Theo kết quả trên, sai số tuyệt đối của mô hình được xây dựng đối với chỉ tiêu
sản lượng Internet m5831 là 37615 (phút) và sai số tương đối là 0.041, tức là
khoảng 4,1%, nhỏ hơn so với yêu cầu đầu bài đặt ra là 10%. Vậy mô hình đã
xây dựng có thể chấp nhận được để đưa ra dự báo số liệu.
- 81 -
Để xây dựng mô hình dự báo cho các chỉ tiêu, đơn vị khác, ta cần sửa lại câu
Query để lấy mã chỉ tiêu, mã đơn vị và chu kỳ dự báo cho phù hợp.
3.4.8. Dự báo số liệu
Việc dự báo số liệu được thực hiện với sự trợ giúp của bộ công cụ YALE theo
mô hình sau:
Các tham số trong mô hình được thiết đặt như sau:
- DatabaseExampleSource:
Database_url: jdbc:mysql://localhost:3306/datamining
Username: root
Password: root
Query (trường hợp này dự báo cho chỉ tiêu Internet m5831 của đơn vị
Hà Nội, với chu kỳ dự báo trước 3 tháng):
select tb1.m5831, tb1.m5832, tb1.m5833, tb1.m5834, tb1.m5835,
tb1.m5836
from internet tb1
where tb1.tinhid='010'
and tb1.thang='01' and tb1.nam='2008'
- ModelLoader:
model_file: D:/datamining/model/m5831_010_3.mod
- ExampleSetWriter:
example_set_file: D:/datamining/result/m5831_010_3.txt
Sau khi chạy chương trình ta thu được kết quả
- 82 -
- Độ chính xác mô hình : 0.041056307093463335
- Chu kỳ huấn luyện : 3 thang
- Chỉ tiêu huấn luyện : m5831
- Kết quả dự đoán : 522089
Số liệu gốc của chỉ tiêu sản lượng Internet m5831 của Hà Nội trong tháng 01
năm 2008 là 578401 phút, vậy sai số thực tế là:
Sai số tuyệt đối = | 522089 – 578401| = 56312
Sai số = | 522089 – 578401| * 100 / 578401 = 9.7%
Sai số thực tế là 9.7% nhỏ hơn yêu cầu đầu bài đặt ra là 10%, vậy kết quả dự báo
là đạt yêu cầu.
Trong trường hợp dự báo những chỉ tiêu khác, đơn vị khác, ta cần thay đổi lại
câu Query lấy dữ liệu cho phù hợp và file model cho khớp với mô hình dự báo
đã được xây dựng.
3.5. Kết quả thử nghiệm
Môi trường thử nghiệm
Phần cứng
Application server: PC Pentium IV 1,7GHz, 512 M RAM, HDD 40GB
Database server: PC Pentium IV 1,7 GHz, 512M RAM, HDD 40GB.
Phần mềm
Hệ điều hành:Windows XP phiên bản SP2 với các bản sửa lỗi cập nhật.
Cơ sở dữ liệu: MySQL 4.0
Bộ công cụ khai phá dữ liệu YALE
Nội dung thử nghiệm
- Thử nghiệm dự báo các chỉ tiêu điện thoại cố định;
- Thử nghiệm dự báo các chỉ tiêu điện thoại di động;
- Thử nghiệm dự báo các chỉ tiêu mạng Internet;
- Đánh giá độ chính xác của kết quả thử nghiệm.
- Sai số trong các thử nghiệm được tính theo công thức:
Giá trị tuyệt đối (Kết quả dự báo – Số liệu thực tế)
Sai số =
Số liệu thực tế
- 83 -
a. Thử nghiệm với số liệu điện thoại cố định
- Kết quả dự báo sản lượng Điện thoại đường dài liên tỉnh (m420) trước 1
tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 8/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
HA NOI 15,384,979 13121762 0.1471056
VINH PHUC 1,315,143 1268490 0.0354737
HOA BINH 639,245 557377 0.1280698
HA GIANG 261,118 276375 0.0584295
BAC CAN 206,732 197075 0.0467127
Bảng 2. Kết quả dự báo chỉ tiêu m420 tháng 8 từ số liệu tháng 7
- Kết quả dự báo sản lượng Điện thoại đường dài liên tỉnh (m420) trước 3
tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 10/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
HA NOI 15,041,155 15609830 0.0378079
VINH PHUC 1,309,883 1241004 0.0525841
QUANG NINH 1,988,721 2245057 0.1288949
HA GIANG 277,321 311568 0.1234923
HA TAY 3,078,015 2980853 0.0315664
Bảng 3. Kết quả dự báo chỉ tiêu m420 tháng 10 từ số liệu tháng 7
- Kết quả dự báo sản lượng Điện thoại đường dài liên tỉnh (m420) trước 2
tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 9/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
LAO CAI 491,861 518783 0.054735
LANG SON 559,596 522692 0.0659476
BAC GIANG 1,161,074 1253557 0.079653
HA GIANG 275,482 211459 0.2324036
THAI NGUYEN 992,718 943476 0.0496032
Bảng 4. Kết quả dự báo chỉ tiêu m420 tháng 9 từ số liệu tháng 7
- Kết quả dự báo sản lượng Điện thoại đường dài liên tỉnh (m410) trước
1 tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 8/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
HA NOI 5,797,777 6579024 0.1347494
LAO CAI 176,153 178648 0.0141638
PHU THO 445,877 508942 0.1414404
HA GIANG 105,339 113189 0.0745213
HAI DUONG 721,755 725913 0.005761
Bảng 5. Kết quả dự báo chỉ tiêu m410 tháng 8 từ số liệu tháng 7
- 84 -
- Kết quả dự báo sản lượng Điện thoại đường dài liên tỉnh (m410) trước
2 tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 9/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
LAO CAI 172,327 185763 0.077968
LANG SON 215,018 230419 0.0716266
BAC GIANG 469,881 546045 0.1620921
CAO BANG 112,588 72690 0.3543717
THAI NGUYEN 363,779 403592 0.1094428
Bảng 6. Kết quả dự báo chỉ tiêu m410 tháng 9 từ tháng 7
- Kết quả dự báo sản lượng Điện thoại đường dài liên tỉnh (m410) trước
3 tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 10/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
HA NOI 5,737,009 6743663 0.175466694
LAO CAI 172,327 181374 0.052499028
PHU THO 433,390 168394 0.611449272
HA GIANG 105,339 112319 0.066262258
HAI DUONG 713,899 695400 0.025912629
Bảng 7. Kết quả dự báo chỉ tiêu m410 tháng 10 từ tháng 7
- Kết quả dự báo sản lượng Điện thoại đường dài nội tỉnh (m425) trước
1 tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 8/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
PHU THO 2,618,018 2416144 0.0771095
TUYEN QUANG 515,185 524822 0.0187059
YEN BAI 1,255,692 1119392 0.1085457
SON LA 1,152,466 1127618 0.0215607
HA TAY 2,736,078 2821454 0.0312038
Bảng 8. Kết quả dự báo chỉ tiêu m425 tháng 8 từ tháng 7
- Kết quả dự báo sản lượng Điện thoại đường dài nội tỉnh (m425) trước
2 tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 8/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
PHU THO 2,426,512 2455260 0.0118475
TUYEN QUANG 500,660 548092 0.0947389
YEN BAI 1,143,073 1300942 0.1381093
SON LA 1,069,080 1162675 0.0875472
HA TAY 2,535,863 2841905 0.1206855
Bảng 9. Kết quả dự báo chỉ tiêu m425 tháng 9 từ tháng 7
- 85 -
- Kết quả dự báo sản lượng Điện thoại đường dài nội tỉnh (m425) trước
3 tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 8/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
PHU THO 2,453,173 2499278 0.018794
TUYEN QUANG 499,892 572831 0.1459095
YEN BAI 1,124,732 1129999 0.0046829
SON LA 1,104,919 1112641 0.0069887
HA TAY 2,558,109 2747608 0.0740778
Bảng 10. Kết quả dự báo chỉ tiêu m425 tháng 10 từ tháng 7
- Kết quả dự báo sản lượng Điện thoại đường dài nội tỉnh (m425) trước
4 tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 11/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
PHU THO 2,415,412 2408182 0.0029933
HA GIANG 739,541 857315 0.1592528
VINH PHUC 1,853,063 1954871 0.0549404
LAO CAI 716,724 902910 0.2597736
LANG SON 890,061 1181485 0.3274203
Bảng 11. Kết quả dự báo chỉ tiêu m425 tháng 11 từ tháng 7
- Kết quả dự báo sản lượng Điện thoại đường dài nội tỉnh (m425) trước
5 tháng (sử dụng số liệu tháng 7/2007 để dự báo số liệu tháng 12/2007):
Tỉnh Số liệu thực tế Kết quả dự báo Sai số
PHU THO 2,513,767 2486823 0.0107186
HA GIANG 742,321 806,937 0.0870459
VINH PHUC 1,824,169 1941573 0.0643603
LAO CAI 750,370 920147 0.2262577
LANG SON 914,064 1207396 0.3209097
Bảng 12. Kết quả dự báo chỉ tiêu m425 tháng 12 từ tháng 7
Đánh giá kết quả
- Đánh giá về độ chính xác: sau khi tổng hợp kết quả, độ chính xác trung bình
của những lần dự báo trên như sau
Chu kỳ
Độ chính xác do hệ
thống ước
lượng
Độ chính xác thực
tế
Dự báo trước 1 tháng 0.0844 93.04%
Dự báo trước 2 tháng 0.0847 88.59%
Dự báo trước 3 tháng 0.0967 89.62%
Dự báo trước 4 tháng 0.0801 83.91%
Dự báo trước 5 tháng 0.091 85.81%
- 86 -
Bảng 13. Độ chính xác trung bình theo chu kỳ
Chỉ tiêu
Độ chính xác do hệ
thống ước
lượng
Độ chính xác thực
tế
Điện thoại đường dài liên tỉnh (m420) - số
phút 0.093 91.51%
Điện thoại đường dài liên tỉnh (m410) - số
cuộc 0.0818 86.14%
Điện thoại đường dài nội tỉnh (m425) 0.0837 93.59%
Bảng 14. Độ chính xác trung bình theo chỉ tiêu
- Đánh giá chung:
o Với chu kỳ dự báo là 1 tháng, hệ thống dự báo cho độ chính xác khá
tốt (93.04%)
o Với chu kỳ dự báo xa hơn (2 tháng và 3 tháng), độ chính xác của hệ
thống bị giảm đi: 88.59% cho chu kỳ 2 tháng và 89.62% cho chu kỳ 3
tháng. Đối với những chu kỳ xa hơn nữa (4 tháng và 5 tháng), độ chính
xác của hệ thống giảm sâu hơn 83.91% cho chu kỳ 4 tháng và 85.81%
cho chu kỳ 5 tháng, đồng thời độ ổn định của hệ thống cũng giảm, thể
hiện qua việc độ chính xác phân bố không đều khi dự báo cho các đơn
vị khác nhau.
b. Thử nghiệm với dữ liệu mạng Internet
- Mục tiêu là dự báo doanh thu tháng 10/2005 từ số liệu tháng 9/2005.
- Tập dữ liệu dùng để huấn luyện mô hình sử dụng các chỉ tiêu sau:
Stt Mã số Tên
1 5831 Truy nhập Internet 1260
2 5832 Truy nhập Internet 1268
3 5833 Truy nhập Internet 1269
4 5834 Truy nhập Internet 1267
- Kết quả dự báo như sau:
STT Tên tỉnh Số liệu gốc KQ dự báo Sai số (%)
1 VINH PHUC 2,201,009 1,920,233 12.76
2 BAC CAN 232,242 218,371 5.97
3 LAO CAI 432,238 492,799 14.01
4 LANG SON 856,861 812,843 5.14
5 CAO BANG 380,732 397,289 4.35
6 TUYEN QUANG 184,562 126,723 31.34
7 YEN BAI 529,711 491,407 7.23
8 SON LA 511,268 381,642 25.35
9 QUANG NINH 1,484,738 1,504,460 1.33
10 HUNG YEN 800,654 869,151 8.56
- 87 -
11 NINH BINH 554,763 296,709 46.52
12 QUANG TRI 113,429 111,890 1.36
13 DA NANG 3,728,179 3,570,627 4.23
14 VUNG TAU 4,579,414 4,206,617 8.14
15 LONG AN 1,339,210 1,257,809 6.08
16 TRA VINH 2,366,711 2,584,598 9.21
17 CAN THO 2,312,776 2,497,010 7.97
18 KIEN GIANG 984,872 781,674 20.63
c. Thử nghiệm với dữ liệu mạng di động
- Mục tiêu là dự báo doanh thu tháng 10/2005 từ số liệu tháng 9/2005
- Tập dữ liệu dùng để huấn luyện mô hình sử dụng các chỉ tiêu sau:
Stt Mã số Tên
1 602 Điện thoại di động nội vùng
2 604 Điện thoại di động cận vùng
3 606 Điện thoại di động quốc tế
4 608 Điện thoại di động cách vùng
- Kết quả dự báo như sau:
STT Tên tỉnh Số liệu gốc KQ dự báo Sai số (%)
1 BAC CAN 508,039,169 510,695,509 0.52
2 BAC GIANG 1,086,907,436 1,125,339,897 3.54
3 BAC NINH 1,705,863,787 1,463,726,093 14.19
4 BINH PHUOC 1,099,713,765 1,161,228,984 5.59
5 CAO BANG 580,236,192 494,989,286 14.69
6 HA GIANG 966,031,510 1,014,016,656 4.97
7 HAI DUONG 1,711,405,674 1,417,889,774 17.15
8 HOA BINH 1,125,970,653 930,931,549 17.32
9 LAI CHAU 528,864,221 444,178,039 16.01
10 LAM DONG 1,705,469,174 1,815,195,236 6.43
11 LAO CAI 1,810,695,973 1,823,770,800 0.72
12 NINH BINH 1,614,052,078 1,413,569,994 12.42
13 NINH THUAN 1,504,169,432 1,858,152,940 23.53
14 PHU YEN 1,302,080,907 1,270,779,574 2.40
15 QUANG BINH 934,335,220 948,417,461 1.51
16 QUANG TRI 1,681,432,846 1,713,333,591 1.90
17 SON LA 1,055,662,325 869,255,073 17.66
18 TRA VINH 1,544,938,241 1,639,290,025 6.11
19 VINH LONG 986,814,753 1,041,746,985 5.57
20 YEN BAI 903,100,663 891,574,021 1.28
- Đánh giá chung: Các lần thử nghiệm đã cho kết quả khá tốt, thể hiện qua kết
quả dự báo chỉ sai lệch khoảng trên dưới 10% so với kết quả thực tế tùy theo
điều kiện dự báo. Mặt khác độ chính xác do chương trình ước lượng và sai số
thực tế cũng chênh lệch nhau không nhiều (không quá 10%), điều này cho
- 88 -
thấy độ tin tưởng của chương trình là chấp nhận được và dựa vào các số liệu
này, các chuyên viên có thể sử dụng kinh nghiệm của mình để đưa ra các kết
quả dự báo chính xác. Bên cạnh đó, chương trình là một công cụ tốt giúp các
chuyên viên có thể xử lý những lượng dữ liệu lớn khi cần dự báo số liệu
SXKD, hỗ trợ cho việc dự báo hàng loạt nhiều chỉ tiêu, nhiều đơn vị, tiết
kiệm thời gian, công sức cho chuyên viên trong việc dự báo số liệu phục vụ
công tác điều hành SXKD của Tập đoàn.
3.6. Thiết kế Phần mềm dự báo số liệu SXKD cho VNPT
3.6.1. Sơ đồ phân rã chức năng
Hệ thống được xây dựng bao gồm những chức năng sau:
- Xem số liệu: giúp người sử dụng xem các số liệu dưới dạng trực quan
hóa, xem các siêu dữ liệu của tập dữ liệu đó. Chức năng này gồm các
chức năng con sau:
- Xây dựng mô hình:
Xây dựng mô hình dự báo chu kỳ sau: xây dựng mô hình dự báo số
liệu trong chu kỳ kế tiếp. Chức năng này gồm các chức năng con
sau:
Xây dựng mô hình dự báo nhiều chu kỳ liên tiếp: xây dựng mô hình
dự báo số liệu cho nhiều chu kỳ liên tiếp. Chức năng này gồm các
chức năng con sau:
- Dự báo số liệu mới:
Dự báo số liệu chu kỳ sau: dự báo số liệu trong chu kỳ kế tiếp.
Chức năng này gồm các chức năng con sau:
Dự báo số liệu nhiều chu kỳ liên tiếp: dự báo số liệu cho nhiều chu
kỳ liên tiếp. Chức năng này gồm các chức năng con sau:
- Cập nhật tập huấn luyện: giúp người sử dụng cập nhật dữ liệu mới cho
tập huấn luyện nhằm giúp mô hình dự báo chính xác hơn. Chức năng này
gồm các chức năng con sau:
- Cấu hình hệ thống: thiết đặt các cấu hình và tham số cho hệ thống.
3.6.2. Biểu đồ ngữ cảnh
Tác nhân tham gia hệ thống chỉ có một đối tượng là Người dùng mà cụ thể ở đây
là các chuyên viên phân tích, tổng hợp số liệu. Người dùng sẽ cung cấp số liệu
- 89 -
SXKD cho hệ thống, đưa ra các yêu cầu dự báo, các yêu cầu xây dựng mô hình
và nhận kết quả dự báo được trả lại từ chương trình.
Hệ thống Khai phá dữ liệuNgười dùng
Số liệu SXKD mới
Kết quả dự đoán
Thiết lập cấu hình
Yêu cầu xây dựng mô hình
Yêu cầu xem số liệu
Số liệu
Đánh giá mô hình
Yêu cầu dự đoán
Hình 20. Biểu đồ ngữ cảnh Hệ thống Dự báo số liệu
3.6.3. Sơ đồ phân rã chức năng
- 90 -
3.6.4. Sơ đồ quan hệ
Hình 21. Sơ đồ quan hệ dữ liệu của Hệ thống Dự báo số liệu
- 91 -
3.6.5. Thiết kế dữ liệu logic
Bảng NHIEMVU: lưu thông tin về các nhiệm vụ của hệ thống
Tên trường Kiểu dữ liệu Giá trị khởi tạo
NhiemvuID Int(2)
TenNhiemvu Varchar(255)
MoTa Varchar(255)
Bảng CHUKY: lưu thông tin về các loại chu kỳ hệ thống có thể dự báo
Tên trường Kiểu dữ liệu Giá trị khởi tạo
ChukyID Int(2)
TenChuky Varchar(100)
MoTa Varchar(255)
Bảng GIAITHUAT: lưu thông tin về các giải thuật hệ thống sử dụng để dự báo
số liệu
Tên trường Kiểu dữ liệu Giá trị khởi tạo
GiaithuatID Int(2)
TenGiaithuat Varchar(255)
MoTa Varchar(255)
Bảng THAMSO: lưu thông tin về tham số của các giải thuật cũng như tham số
của các mô hình xây dựng được
Tên trường Kiểu dữ liệu Giá trị khởi tạo
ThamsoID Int(5)
TenThamso Varchar(255)
Giatri Varchar(100)
MoTa Varchar(255)
MohinhID Int(5)
Bảng KETQUA: lưu kết quả các số liệu mà hệ thống dự báo được
Tên trường Kiểu dữ liệu Giá trị khởi tạo
KetquaID Int(7)
Giatri Varchar(100)
NgayTao Datetime
- 92 -
ChitieuID Int(7)
MohinhID Int(7)
Bảng CHITIEU: lưu thông tin về các chỉ tiêu sử dụng để xây dựng mô hình
Tên trường Kiểu dữ liệu Giá trị khởi tạo
ChitieuID Int(7)
TenChitieu Varchar(100)
MaChitieu Varchar(10)
NhiemvuID Int(2)
Bảng TINH: lưu danh sách các tỉnh
Tên trường Kiểu dữ liệu Giá trị khởi tạo
TinhID Int(2)
TenTinh Varchar(100)
TenViettat Char(3)
Bảng MOHINH: lưu thông tin về các mô hình hệ thống xây dựng nên để dự báo
số liệu
Tên trường Kiểu dữ liệu Giá trị khởi tạo
MohinhID Int(5)
TenMohinh Varchar(255)
Lienket Varchar(255)
MoTa Varchar(255)
NgayTao Datetime
ChitieuID Int(7)
NhiemvuID Int(2)
ChukyID Int(2)
GiaithuatID Int(2)
TinhID Int(2)
Thang Int(2)
Nam Int(4)
Bảng INTERNET: lưu số liệu SXKD của các chỉ tiêu Internet
Tên trường Kiểu dữ liệu Giá trị khởi tạo
- 93 -
ID Int(7)
TinhID Int(2)
m5831 Int(10)
m5832 Int(10)
m5833 Int(10)
m5834 Int(10)
m5835 Int(10)
m5836 Int(10)
Thang Int(2)
Nam Int(4)
Bảng DIDONG: lưu số liệu SXKD của các chỉ tiêu điện thoại di động
Tên trường Kiểu dữ liệu Giá trị khởi tạo
ID Int(7)
TinhID Int(2)
m601 Int(10)
m602 Int(10)
m603 Int(10)
m604 Int(10)
m605 Int(10)
m606 Int(10)
m607 Int(10)
m608 Int(10)
Thang Int(2)
Nam Int(4)
Bảng CODINH: lưu số liệu SXKD của các chỉ tiêu điện thoại cố định
Tên trường Kiểu dữ liệu Giá trị khởi tạo
ID Int(7)
TinhID Int(2)
m410 Int(10)
m420 Int(10)
m421 Int(10)
m422 Int(10)
m423 Int(10)
- 94 -
m425 Int(10)
Thang Int(2)
Nam Int(4)
Bảng TACDONG_CODINH: lưu số liệu về các tác động của môi trường tới các
chỉ tiêu điện thoại cố định
Tên trường Kiểu dữ liệu Giá trị khởi tạo
tadongid Int(7)
tentacdong Varchar(200)
nhanto Int(2)
hanhdong Int(3)
mucdo Int(3)
codinhid Int(7)
Bảng TACDONG_HOITU: lưu số liệu về các tác động của môi trường tới các
chỉ tiêu mạng hội tụ
Tên trường Kiểu dữ liệu Giá trị khởi tạo
tadongid Int(7)
tentacdong Varchar(200)
nhanto Int(2)
hanhdong Int(3)
mucdo Int(3)
hoituid Int(7)
Bảng TACDONG_INTERNET: lưu số liệu về các tác động của môi trường tới
các chỉ tiêu mạng Internet
Tên trường Kiểu dữ liệu Giá trị khởi tạo
tadongid Int(7)
tentacdong Varchar(200)
nhanto Int(2)
hanhdong Int(3)
mucdo Int(3)
internetid Int(7)
- 95 -
Bảng TACDONG_DIDONG: lưu số liệu về các tác động của môi trường tới các
chỉ tiêu điện thoại di động
Tên trường Kiểu dữ liệu Giá trị khởi tạo
tadongid Int(7)
tentacdong Varchar(200)
nhanto Int(2)
hanhdong Int(3)
mucdo Int(3)
didongid Int(7)
3.6.6. Thiết kế chức năng xem số liệu
Hình 22. Biểu đồ luồng dữ liệu cho chức năng xem số liệu
- 96 -
3.6.7. Thiết kế chức năng xây dựng mô hình
2.2
Chọn chu kỳ
2.1
Chọn chỉ tiêu
2.4
Chọn đơn vị
2.3
Huấn luyện
Người dùng
Chọn chỉ tiêu
Chọn chu kỳ
Chỉ tiêu
Chu kỳ
Chu kfy
Mô hình
Đơn vị
Tham số
Chọn đơn vị
tỉnh
Tỉnh
Chu kỳChỉ tiêu
Tham số
Mô hình
Chỉ tiêu
Hình 23. Biểu đồ luồng dữ liệu cho chức năng xây dựng mô hình
3.6.8. Thiết kế chức năng dự báo số liệu
Hình 24. Biểu đồ luồng dữ liệu cho chức năng dự báo số liệu
- 97 -
3.6.9. Thiết kế chức năng Cập nhật tập huấn luyện
Hình 25. Biểu đồ luồng dữ liệu cho chức năng Cập nhật tập huấn luyện
KẾT LUẬN CHƯƠNG 3
Trong chương 3, luận văn đã phát biểu bài toán “Dự báo kết quả hoạt động
SXKD của VNPT”, thiết kế mạng nơron nhân tạo để giải quyết bài toán theo các
bước: phân tích hoạt động SXKD của VNPT để lựa chọn dữ liệu đầu vào, tiền
xử lý dữ liệu, Xác định tập huấn luyện, tập kiểm thử, Xác định mô hình mạng nơ
ron, Huấn luyện mạng nơron và Dự báo số liệu. Sau đó, thông qua bộ công cụ
khai phá dữ liệu YALE, người thực hiện đề tài đã ứng dụng mạng nơron nhân
tạo để dự báo kết quả hoạt động SXKD cho VNPT với các chỉ tiêu về điện thoại
di động, điện thoại cố định và mạng Internet. Quá trình thử nghiệm với số liệu
thực tế của VNPT đã cho kết quả tốt với độ chính xác dự báo trung bình khoảng
10%.
- 98 -
KẾT LUẬN
Trong nền kinh tế tri thức hiện nay, thông tin có vai trò quyết định, tuy
nhiên những thông tin có giá trị nhất không phải là những thông tin thô mà là
thông tin đã qua phân tích, tổng hợp. Do đó, nghiên cứu và xử lý thông tin đang
ngày càng thể hiện rõ tầm quan trọng của mình và ngày càng được các doanh
nghiệp trên khắp thế giới quan tâm, đầu tư phát triển.
Tại Việt Nam, nhu cầu phân tích, xử lý thông tin và đặc biệt là khai phá, dự
báo số liệu đã xuất hiện từ lâu nhưng việc đáp ứng nhu cầu này còn rất hạn chế,
hiện chỉ có một số ít các doanh nghiệp lớn của Nhà nước đầu tư cho lĩnh vực
này.
Trong khi đó thực tiễn của tiến trình hội nhập kinh tế quốc tế ở nước ta thời
gian qua cho thấy để hoạt động sản xuất kinh doanh của các doanh nghiệp đạt
hiệu quả, để doanh nghiệp cạnh tranh thành công trên thị trường điều rất quan
trọng là doanh nghiệp phải dự báo được khả năng sản xuất kinh doanh các sản
phẩm của mình. Bởi vậy nhu cầu đẩy mạnh hoạt động khai phá và dự báo dữ
liệu trong các doanh nghiệp ngày càng trở lên cần thiết và cấp bách. Trong bối
cảnh ấy vấn đề nghiên cứu ứng dụng trong luận văn này là hướng đi đúng đắn
và có ý nghĩa thực tiến.
Luận văn này đã trình bầy một cách tổng quan về dự báo, chức năng của dự
báo và những phương pháp dự báo định lượng chủ yếu hiện đang được ứng
dụng trong doanh nghiệp. Luận văn cũng tập trung trình bầy một cách tóm tắt
một số nội dung chủ yếu về mạng nơron, trình bầy phương pháp phân lớp và dự
báo dữ liệu bằng mạng nơron.
Trên cơ sở phân tích nhu cầu dự báo định lượng của Tập đoàn VNPT, luận
văn đã đề xuất bài toán và thực hiện dự báo đối với một số chỉ tiêu về điện thoại
cố định, điện thoại di động và mạng Internet bằng phương pháp mạng noron dựa
trên bộ công cụ khai phá dữ liệu YALE và tập số liệu thực tế của Tập đoàn
VNPT.
Kết quả dự báo là rất khả quan. Kết quả dự báo có độ chính xác khá cao so
với thực tiễn khi kỳ dự báo gần; khi kỳ dự báo xa hơn, độ chính xác bị giảm
xuống nhưng không nhiều và không có sự khác biệt lớn với các dự báo nhiều kỳ
thời gian.
Kết quả dự báo cũng cho cho thấy phương pháp dự báo số liệu bằng mạng
nơron nhân tạo có một số điểm ưu việt như:
- 99 -
- Mô hình có khả năng tự điều chỉnh tham số để thích nghi với những biến
động của dữ liệu trong quá trình sử dụng.
- Độ chính xác của kết quả dự báo chỉ phụ thuộc vào dữ liệu đầu vào,
những biến động thực tế đều được thể hiện trên số liệu.
Đề tài luận văn này vẫn tiếp tục được nghiên cứu và phát triển theo những
hướng sau:
- Hoàn chỉnh mô hình dự báo, xây dựng và hoàn thiện phần mềm dự báo số
liệu SXKD cho VNPT nhằm tạo sự thuận tiện, dễ dàng hơn cho người
dùng khi sử dụng hệ thống.
- Mở rộng ứng dụng phương pháp dự báo của luận văn này sang một số
lĩnh vực kinh tế - xã hội khác như dự báo các chỉ tiêu kinh tế - xã hội chủ
yếu, dự báo giá và chỉ số chứng khoán, ...
- 100 -
TÀI LIỆU THAM KHẢO
A - Sách tham khảo
Tiếng Việt
[1] Tạ Mạnh Cường (2006), Dự báo chuỗi dữ liệu phụ thuộc thời gian theo
mùa vụ bằng mô hình Holt-Winters, Luận văn Ths, ĐH Công nghệ -
ĐHQGHN.
[2] Nguyễn Khắc Minh (2002), Các phương pháp phân tích và dự báo trong
kinh tế. NXB Khoa học và kỹ thu, ật Hà Nội,.
[3] Trần Văn Thái (2005), Phát hiện tri thức theo mùa từ cơ sở dữ liệu chuỗi
thời gian, Luận văn Ths, ĐH Công nghệ - ĐHQGHN.
[4] Đỗ Văn Thành (2007), Giải pháp dự báo ngắn hạn về tăng trưởng kinh tế
Việt Nam.
Tiếng Anh
[5] C.C.Klimasauskas (1993), Applying neural network, in R.R. Trippi and E.
Turban, eds., Neural Network in Finance and Investing: Using Artificial
Intelligence to Improve Real World Performance, Chicago.
[6] Christopher M. Bishop (1995), Neural Networks for Pattern Recognition.
Clarendon Press, Oxford.
[7] Danielle Graupe (2007), Principles of Artificial Neural Networks. World
Scientific.
[8] David Hand, Heikki Mannila, Padhraic Smyth (2001). Principles of Data
Mining. The MIT Press.
[9] G.J.Deboeck, Ed (1994), Trading on the Edge: Neural, Genetic and Fuzzy
Systems for Chaotic Financial Markets. Wiley, NewYork.
[10] Icebeling Kaastra, Milton Boyd (1995), Designing a neural network for
forcasting finacial and economic time series.
[11] J.O.Katz (April 1992), Developing neural network forcasters for
trading, Technical Analysis of Stocks and Commodities.
- 101 -
[12] Jiawei Han and Michelle Kamber (2001), Data Mining: Concepts and
Techniques. Morgan Kaufmann.
[13] Joseph P.Bigus (1996), Data Mining Process with Neural Networks.
McGraw-Hill.
[14] Peter Cabena, Pablo Hadjinian, Rolf Stadler, Jaap Verhees, Alessandro
Zanasi (1998), Discovering Data Mining, From Concept to
Implementation. Prentice Hall Ptr.
[15] T. Masters (1993), Pratical Neural Networks Recipes in C++,
Academic Press, NewYork.
B - Địa chỉ web
[16] Tài liệu của phần mềm nguồn mở Weka:
[17] Tài liệu của phần mềm nguồn mở Yale:
dortmund.de/SOFTWARE/YALE/index.html
[18] www.forecast.umkc.edu
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-ÁP DỤNG CÁC KỸ THUẬT PHÂN LỚP DỮ LIỆU, HỒI QUY ĐỂ DỰ BÁO SỐ LIỆU SẢN XUẤT KINH DOANH CHO VNPT.pdf