1) Bước 1: Lựa chọn biến
3.3.1. Mô hình tổng thể hệ thống thông tin phục vụ dự báo định lượng
Sau khi nghiên cứu và phân tích các số liệu sản xuất kinh doanh của VNPT, Mô hình cho Hệ thống dự báo số liệu được đề xuất như sau:
Hình 11. Mô hình Hệ thống dự báo số liệu
Các thành phần của hệ thống gồm có:
CSDL từ hệ thống VRS và số liệu SXKD được lưu trữ tại VNPT: đây là
nguồn cung cấp số liệu đầu vào để xây dựng các mô hình dự báo
Phần mềm dự báo số liệu: bao gồm 2 khối
o Tiền xử lý dữ liệu
o Huấn luyện và dự báo dữ liệu
CSDL lưu trữ các kết quả dự báo của hệ thống
Các chức năng mà hệ thống cung cấp bao gồm:
- Dự báo sản lượng, doanh thu của các sản phẩm, dịch vụ trên mạng cố định: hỗ trợ các chuyên viên dự báo, đánh giá xu hướng biến đổi sản lượng, doanh thu của các sản phẩm, dịch vụ trên mạng cố định.
- Dự báo sản lượng, doanh thu, nhu cầu sử dụng của các sản phẩm, dịch vụ trên mạng di động: hỗ trợ các chuyên viên dự báo, đánh giá xu hướng
biến đổi sản lượng, doanh thu của các sản phẩm, dịch vụ trên mạng di động, tìm các dịch vụ thích hợp cho từng nhóm khách hàng.
- Phân tích thói quen sử dụng và dự báo nhu cầu sử dụng các sản phẩm, dịch vụ trên mạng Internet: hỗ trợ các chuyên viên phân tích thói quen sử dụng mạng Internet của khách hàng, dự báo các dịch vụ sẽ được khách hàng sử dụng nhiều trong tương lai.
- Dự báo nhu cầu sử dụng của các sản phẩm, dịch vụ trên mạng hội tụ: hỗ trợ các chuyên viên phân tích xu hướng sử dụng và dự báo nhu cầu sử dụng các dịch vụ trên mạng hội tụ của khách hàng.
Để thực hiện các chức năng này, hệ thống phải thực hiện lần lượt các bước sau: trích chọn dữ liệu, làm sạch và chuẩn hóa dữ liệu, xây dựng mô hình và dự báo giá trị mới. Sơ đồ thực hiện của các bước này như sau:
- Trích chọn dữ liệu: số liệu sản xuất kinh doanh của Ban KH sẽ được trích chọn, sàng lọc để chọn ra những dữ liệu phù hợp với các nhiệm vụ khai phá dữ liệu.
Hình 12. Mô hình Trích chọn dữ liệu
- Làm sạch, chuẩn hóa: sau khi trích chọn được dữ liệu phù hợp, dữ liệu liệu này sẽ được làm sạch, loại bỏ nhiễu, xử lý các giá trị thiếu, đưa về dạng chuẩn hóa có thể khai phá được, sau đó được tách thành hai phần: tập huấn luyện và tập kiểm tra.
Dữ liệu mạng hội tụ Trích chọn dữ liệu Dữ liệu VRS Dữ liệu mạng di động Dữ liệu mạng Internet Dữ liệu mạng cố định Dữ liệu Ban KH
Hình 13. Mô hình Làm sạch, chuẩn hóa dữ liệu
- Xây dựng mô hình: để tăng độ chính xác cho mô hình khai phá dữ liệu được xây dựng, chúng ta sẽ sử dụng một quá trình lặp, xây dựng nhiều mô hình với nhiều tham số và giải thuật khác nhau, sau đó sử dụng một bộ dữ liệu kiểm tra để đánh giá độ chính xác của các mô hình xây dựng được. Mô hình có độ chính xác cao nhất sẽ được sử dụng làm mô hình dự báo chính thức .
Hình 14. Xây dựng mô hình dữ liệu
- Dự báo giá trị mới: sau khi đã xây dựng được mô hình khai phá dữ liệu, chúng ta sẽ áp dụng mô hình đó với số liệu mới để đưa ra kết quả dự báo cho người sử dụng. Dữ liệu đã trích chọn Làm sạch Chuẩn hóa Dữ liệu chuẩn hóa Tập huấn luyện Tập kiểm tra Mô hình tốt nhất Tập huấn luyện Tập kiểm tra XÂY DỰNG MÔ HÌNH Bộ xây dựng mô hình 1 Bộ xây dựng mô hình n …. Đánh giá
Hình 15. Mô hình Dự báo giá trị mới 3.3.2. Giới thiệu tập số liệu và vấn đề tiền xử lý số liệu
Thông thường, dữ liệu được thu thập từ các đơn vị về cơ quan Tập đoàn VNPT là dữ liệu thô, chứa nhiều nhiễu hoặc khuyết thiếu và có định dạng không tương thích với đầu vào của các giải thuật. Vì vậy đề có thể sử dụng dữ liệu đó, thường phải thực hiện một bước là tiền xử lý dữ liệu. Đây là một bước quan trọng, có ảnh hưởng lớn tới kết quả khai phá và chiếm nhiều thời gian và chi phí nhất trong quá trình khai phá dữ liệu. Thông thường bước này chiếm khoảng 60% trong toàn bộ quá trình. Tùy theo hiện trạng của dữ liệu, quá trình có thể gồm nhiều bước và có thể được thực hiện bằng tay hoặc thông qua nhiều phương pháp khác nhau, các bước này thường bao gồm:
- Trích chọn dữ liệu: trích xuất các dữ liệu cần thiết cho các bước phân tích ban đầu và quá trình khai phá dữ liệu sau này.
- Làm sạch dữ liệu: mục đích của bước làm sạch dữ liệu là để đảm bảo chất lượng cho dữ liệu đã được lựa chọn. Dữ liệu trong thực tế thường không hoàn chỉnh, không nhất quán và có chứa nhiễu. Quá trình làm sạch dữ liệu sẽ cố gắng thêm giá trị vào những giá trị bị thiếu, làm mịn các điểm nhiễu và sửa lại các dữ liệu không nhất quán.
- Chuyển đổi dữ liệu: trong bước này, dữ liệu sẽ được chuyển đổi hoặc củng cố để đưa về dạng phù hợp với thuật toán khai phá.
- Rút gọn dữ liệu: kỹ thuật rút gọn dữ liệu có thể được sử dụng để đưa tập dữ liệu gốc về một tập dữ liệu nhỏ hơn nhiều. Khai phá trên tập dữ liệu rút gọn này sẽ hiệu quả hơn nhiều so với khai phá trên tập dữ liệu gốc.
Tập số liệu hoạt động sản xuất kinh doanh hiện nay của VNPT được lưu trữ chủ yếu dưới dạng số, bao gồm số liệu từ năm 1999 tới 2007 của 79 đơn vị thành viên, mỗi đơn vị thành viên có 613 chỉ tiêu sản xuất kinh doanh. Tập số liệu là khá lớn nên cần rút gọn dữ liệu để khai phá dữ liệu cho hiệu quả.
Mô hình Mẫu dữ liệu mới Giá trị dự báo Dự báo giá trị mới
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ữ
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ố...
- 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á
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|Silà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
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à