You are on page 1of 85

ĐẠI HỌC THÁI NGUYÊN

ĐẠI HỌC
TRƢỜNG ĐẠI HỌC CÔNG THÁI
NGHỆ NGUYÊN
THÔNG TIN VÀ TRUYỀN THÔNG
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Nguyễn Nhƣ Thế


Nguyễn Nhƣ Thế

NGHIÊN CỨU CÁC PHƢƠNG PHÁP PHÂN LỚP DỮ LIỆU


NGHIÊN CỨU CÁC PHƢƠNG PHÁP PHÂN LỚP DỮ LIỆU
VÀ ỨNG DỤNG TRONG BÀI TOÁN DỰ BÁO THUÊ BAO
VÀ ỨNG DỤNG TRONG BÀI TOÁNDỰ BÁOTHUÊ BAO
RỜI MẠNG VIỄN THÔNG
RỜI MẠNG VIỄN THÔNG

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên -2016


Thái Nguyên - 2016
ĐẠI HỌC THÁI NGUYÊN
ĐẠI HỌC
TRƢỜNG ĐẠI HỌC CÔNG THÁI
NGHỆ NGUYÊN
THÔNG TIN VÀ TRUYỀN THÔNG
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Nguyễn Nhƣ Thế


Nguyễn Nhƣ Thế

CỨU CÁC
NGHIÊN CỨU
NGHIÊN CÁC PHƢƠNG
PHƢƠNG PHÁP
PHÁP PHÂN
PHÂN LỚP
LỚP DỮ
DỮ LIỆU
LIỆU

VÀỨNG
ỨNGDỤNG
DỤNGTRONG
TRONGBÀI
BÀITOÁN DỰ BÁO
TOÁNDỰ BÁOTHUÊ BAO
THUÊ BAO
RỜI MẠNG
RỜI MẠNG VIỄN
VIỄN THÔNG
THÔNG

Chuyên ngành: Khoa học máy tính


Chuyên ngành: Khoa học máy tính
Mã số: 60 48 0101
Mã số: 60 48 0101

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH


LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƢỜI HƢỚNG DẪN KHOA HỌC:TS.NGUYỄN LONG GIANG
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS NGUYỄN LONG GIANG

Thái Nguyên -2016


Thái Nguyên - 2016
i

LỜI CAM ĐOAN

Tên tôi là: Nguyễn Nhƣ Thế


Sinh ngày: 12/12/1989

Học viên lớp cao học: CHK13E - Trƣờng Đại học Công nghệ thông tin
và Truyền thông – Đại học Thái Nguyên.

Hiện đang công tác tại: Sở Thông tin và Truyền thông tỉnh Phú Thọ

Xin cam đoan: Đề tài “Nghiên cứu các phương pháp phân lớp dữ liệu
và ứng dụng trong bài toán dự báo thuê bao rời mạng viễn thông” do Thầy
giáo TS. Nguyễn Long Giang hƣớng dẫn là công trình nghiên cứu của riêng
tôi. Tất cả tài liệu tham khảo đều có nguồn gốc, xuất xứ rõ ràng.

Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng nhƣ nội
dung trong đề cƣơng và yêu cầu của thầy giáo hƣớng dẫn. Nếu sai tôi hoàn
toàn chịu trách nhiệm trƣớc hội đồng khoa học và trƣớc pháp luật.

Thái Nguyên, ngày 28 tháng 6 năm 2016


HỌC VIÊN

Nguyễn Nhƣ Thế


ii

LỜI CẢM ƠN

Sau một thời gian nghiên cứu và làm việc nghiêm túc, đƣợc sự động
viên, giúp đỡ và hƣớng dẫn tận tình của Thầy giáo hƣớng dẫn TS. Nguyễn
Long Giang, luận văn với đề tài “Nghiên cứu các phương pháp phân lớp dữ
liệu và ứng dụng trong bài toán dự báo thuê bao rời mạng viễn thông”đã
hoàn thành.

Tôi xin bày tỏ lòng biết ơn sâu sắc đến:

Thầy giáo hƣớng dẫn TS. Nguyễn Long Giang đã tận tình chỉ dẫn, giúp
đỡ tôi hoàn thành luận văn này.

Tôi xin bày tỏ lòng biết ơn đến các thầy cô trong Trƣờng Đại học Công
nghệ thông tin và Truyền thông – Đại học Thái Nguyên đã giúp đỡ tôi trong
quá trình học tập cũng nhƣ thực hiện luận văn.

Tôi xin cảm ơn Chi nhánh Mobifone Phú Thọ đã nhiệt tình giúp đỡ, cung
cấp thông tin trong quá trình nghiên cứu, thực nghiệm chƣơng trình luận văn.

Tôi xin chân thành cảm ơn bạn bè, đồng nghiệp và gia đình đã động
viên, khích lệ, tạo điều kiện giúp đỡ tôi trong suốt quá trình học tập, thực hiện
và hoàn thành luận văn này.

Thái Nguyên, ngày 28 tháng 6 năm 2016


HỌC VIÊN

Nguyễn Nhƣ Thế


iii

MỤC LỤC
LỜI CAM ĐOAN ............................................................................................................. i
LỜI CẢM ƠN .................................................................................................................. ii
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT .................................................... v
DANH MỤC HÌNH ẢNH .............................................................................................. vi
DANH MỤC BẢNG BIỂU........................................................................................... vii
MỞ ĐẦU .......................................................................................................................... 1
Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU .................................................. 3
1.1. Tổng quan về khai phá dữ liệu ....................................................................... 3
1.1.1. Tại sao cần khai phá dữ liệu .................................................................... 3
1.1.2. Các khái niệm cơ bản .............................................................................. 3
1.1.3. Quy trình khai phá dữ liệu ....................................................................... 5
1.1.4. Các bài toán cơ bản trong khai phá dữ liệu .............................................. 6
1.1.5. Các ứng dụng của khai phá dữ liệu .......................................................... 7
1.1.6. Quy trình xây dựng mô hình khai phá dữ liệu .......................................... 8
1.2.Bài toán phân lớp và dự báo ......................................................................... 10
1.2.1. Giới thiệu bài toán ................................................................................. 10
1.2.2 Các bƣớc giải quyết bài toán ................................................................. 11
Chƣơng 2: CÁC PHƢƠNG PHÁP PHÂN LỚP TRONG KHAI PHÁ DỮ LIỆU .... 12
2.1. Phân lớp bằng phƣơng pháp quy nạp cây quyết định ................................... 12
2.2. Phân lớp bằng phƣơng pháp Bayesian ......................................................... 15
2.3. Support Vector Machine (SVM) ................................................................. 16
2.3.1 Phân tách tuyến tính với lề cực đại ......................................................... 16
2.3.1.1. Tìm kiếm siêu phẳng với lề cực đại .................................................... 21
2.3.1.2. Hàm phân loại tuyến tính với lề mềm cực đại ..................................... 22
2.3.1.3. Lý thuyết tối ƣu Lagrangian ............................................................... 23
2.3.1.4. Tìm kiếm siêu phẳng với lề cực đại .................................................... 25
2.3.2. Phƣơng pháp hàm nhân (kernel methods) ................................................... 28
2.3.2.1 Chiều VC về khả năng phân tách của hàm tuyến tính .......................... 29
2.3.2.2 Hàm nhân và SVM phi tuyến (Kernel function and nonlinear SVMs) . 30
iv

2.4. Phân lớp bằng mạng lan truyền ngƣợc (mạng Nơron) .................................. 33
Chƣơng 3: ỨNG DỤNG BÀI TOÁN PHÂN LỚP DỮ LIỆU THUÊ BAO RỜI
MẠNG VIỄN THÔNG ................................................................................................. 37
3.1. Bài toán phân lớp dữ liệu thuê bao rời mạng................................................ 37
3.1.1. Phát biểu bài toán .................................................................................. 37
3.1.2. Khái niệm thuê bao rời mạng “churn” ................................................... 38
3.1.3. Thu thập, chuẩn hóa dữ liệu .................................................................. 39
3.1.4. Lựa chọn thuộc tính............................................................................... 42
3.2. Lựa chọn phƣơng pháp, công cụ .................................................................. 45
3.2.1. Ngôn ngữ R ........................................................................................... 45
3.2.2. Phƣơng pháp phân lớp........................................................................... 47
3.2.3. Đánh giá hiệu năng................................................................................ 48
3.3. Thực nghiệm phân lớp trên ngôn ngữ R....................................................... 50
3.3.1. Phân lớp dữ liệu sử dụng cây quyết định C4.5 ....................................... 51
3.3.2. Phân lớp dữ liệu sử dụng phƣơng pháp Naive Bayes ............................. 53
3.3.3. Phân lớp dữ liệu bằng Support Vector Machines .................................. 55
3.3. Đánh giá kết quả.......................................................................................... 56
KẾT LUẬN .................................................................................................................... 58
TÀI LIỆU THAM KHẢO ............................................................................................. 60
v

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

TT Thuật ngữ Định nghĩa


1. KPDL Khai phá dữ liệu
2. KDD Knowledge Discovery and Data Mining
3. NB Naïve Bayes
4. SVM Support vector machine
5. NN Neural Networks
vi

DANH MỤC HÌNH ẢNH

Hình 1.1- Các bƣớc trong khai phá dữ liệu ..............................................................6


Hình 1.2 - Quy trình xây dựng mô hình khai phá dữ liệu ..........................................9
Hình 2.1 - Ví dụ về cây quyết định ......................................................................... 12
Hình 2.2 - Về mặt trực quan thì hàm tuyến tính siêu phẳng với lề lớn nhất trông có
vẻ hợp lý ................................................................................................................ 19
Hình 2.3 - Ví dụ về bài toán phân loại trong không gian hai chiều .......................... 19
Hình 2.4 - Ba điểm trong mặt phẳng bị chia tách bởi một đƣờng thẳng có hƣớng. ..28
Hình 2.5 - Mạng nơ-ron truyền thẳng nhiều lớp ...................................................... 34
Hình 3.1 - Mô hình quan hệ các bảng dữ liệu.......................................................... 40
Hình 3.2 - Các giai đoạn của mô hình dự đoán thuê bao rời mạng .......................... 42
Hình 3.3 - Lựa chọn thuộc tính trong phân lớp dữ liệu ............................................ 44
Hình 3.4 - Số lƣợng thuộc tính đƣợc thu thập ......................................................... 44
Hình 3.5 – Giao diện làm việc trên ngôn ngữ R ...................................................... 47
Hình 3.6 – Quy trình thực nghiệm bài toán phân lớp dữ liệu thuê bao rời mạng......50
Hình 3.7- mô hình phân lớp cây quyết định ........................................................... 52
Hình 3.8 - Chi tiết nút nhánh thứ 15 trong phân lớp cây quyết định ........................ 52
Hình 3.9 - Kết quả phân lớp dữ liệu bằng SVM ...................................................... 55
Hình 3.10 – Hiệu năng các thuật toán với lớp thuê bao rời mạng ............................ 57
vii

DANH MỤC BẢNG BIỂU

Bảng 1 - Ma trận nhầm lẫn ..................................................................................... 49


Bảng 2 – Kết quả mô hình phân lớp sử dụng C 4.5 ................................................. 53
Bảng 3 – Độ đo hiệu năng thuật toán Cây quyết định ............................................. 53
Bảng 4 – Kết quả mô hình phân lớp sử dụng NB .................................................... 54
Bảng 5. – Độ đo hiệu năng thuật toán NB ............................................................... 54
Bảng 6 – Kết quả mô hình phân lớp sử dụng SVM ................................................ 55
Bảng 7. – Độ đo hiệu năng thuật toán SVM ............................................................ 56
Bảng 8. – Tổng hợp đánh giá hiệu năng các phƣơng pháp phân lớp ........................ 56
1

MỞ ĐẦU

Sự bùng nổ và phát triển của ngành công nghệ thông tin đã làm lƣợng dữ
liệu đƣợc thu thập và lƣu trữ ở các hệ thống thông tin tăng lên một cách nhanh
chóng. Trƣớc tình hình đó, việc khai thác và chọn lọc những dữ liệu có ích,
tiền ẩn từ lƣợng dữ liệu khổng lồ này là rất cần thiết. Các tri thức trích lọc từ
dữ liệu sẽ giúp các cơ quan, tổ chức đƣa ra những dự báo và điều hành hiệu
quả.

Khai phá dữ liệu và khám phá tri thức (Data mining and Knowledge
discovery) là một lĩnh vực quan trọng của ngành Công nghệ thông tin với
mục tiêu là tìm kiếm các tri thức có ích, cần thiết, tiềm ẩn và chƣa đƣợc biết
trƣớc trong cơ sở dữ liệu lớn. Đây là lĩnh vực đã và đang thu hút đông đảo các
nhà khoa học trên thế giới và trong nƣớc tham gia nghiên cứu. Phân lớp
(classification) là một trong những bài toán cơ bản trong khai phá dữ liệu với
mục tiêu là phân loại các đối tƣợng vào các lớp cho trƣớc. Theo tiếp cận học
máy, phân lớp là phƣơng pháp học có giám sát với hai giai đoạn: Giai đoạn 1
là xây dựng mô hình phân lớp dựa trên tập dữ liệu huấn luyện có đầu vào và
đầu ra mong muốn (gọi là nhãn lớp); Giai đoạn 2 là sử dụng mô hình phân lớp
để phân loại các tập dữ liệu chƣa có nhãn lớp vào các lớp đã cho và có ứng
dụng trong nhiều bài toán dự báo trong thực tế. Phân lớp đƣợc sử dụng rộng
rãi trong các bài toán thực tiễn nhƣ trong y tế, ngân hàng, viễn thông, kinh tế,
tài chính...

Ngày nay, cùng với sự phát triển mạnh mẽ của thị trƣờng viễn thông là
sự ra đời của nhiều nhà cung cấp và kinh doanh dịch vụ mạng viễn thông. Thị
trƣờng viễn thông đang đi vào giai đoạn bão hòa, khách hàng có nhiều sự lựa
chọn, dẫn đến họ có thể thay đổi sử dụng dịch vụ bất cứ khi nào, kết quả là số
2

lƣợng khách hàng rời mạng tăng lên một cách nhanh chóng. Hậu quả ảnh
hƣởng không nhỏ tới kinh tế cũng nhƣ trong quản lý của doanh nghiệp kinh
doanh dịch vụ viễn thông. Vì vậy, các nhà kinh doanh dịch vụ mạng cần có
các giải pháp dữ chân khách hàng hơn là tìm kiếm khách hàng mới. Việc dự
báo khách hàng có thể rời bỏ mạng trong tƣơng lai là rất cần thiết, nhằm mục
đích hỗ trợ các nhà kinh doanh dịch vụ mạng có quyết sách kịp thời trong
công việc giữ chân khách hàng.
3

Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

1.1. Tổng quan về khai phá dữ liệu

1.1.1. Tại sao cần khai phá dữ liệu

Khoảng hơn một thập kỷ trở lại đây, lƣợng thông tin đƣợc lƣu trữ trên
các thiết bị điện tử (đĩa cứng, CD-ROM, băng từ, .v.v.) không ngừng tăng lên.
Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ. Ngƣời ta ƣớc đoán
rằng lƣợng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo
đó số lƣợng cũng nhƣ kích cỡ của các cơ sở dữ liệu (CSDL) cũng tăng lên
một cách nhanh chóng. Nói một cách hình ảnh là chúng ta đang “ngập” trong
dữ liệu nhƣng lại “đói” tri thức. Câu hỏi đặt ra là liệu chúng ta có thể khai
thác đƣợc gì từ những “núi” dữ liệu tƣởng chừng nhƣ “bỏ đi” ấy không? [3]

“Necessity is the mother of invention” - Data Mining ra đời nhƣ một


hƣớng giải quyết hữu hiệu cho câu hỏi vừa đặt ra ở trên. Khá nhiều định nghĩa
về Data Mining, tuy nhiên có thể tạm hiểu rằng Data Mining nhƣ là một công
nghệ tri thức giúp khai thác những thông tin hữu ích từ những kho dữ liệu
đƣợc tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào đó.

1.1.2. Các khái niệm cơ bản

Khai phá dữ liệu (datamining) [4] đƣợc định nghĩa nhƣ là một quá trình
chắt lọc hay khai phá tri thức từ một lƣợng lớn dữ liệu. Một ví dụ hay đƣợc sử
dụng là là việc khai thác vàng từ đá và cát, Dataming đƣợc ví nhƣ công việc
"Đãi cát tìm vàng" trong một tập hợp lớn các dữ liệu cho trƣớc. Thuật ngữ
Dataming ám chỉ việc tìm kiếm một tập hợp nhỏ có giá trị từ một số lƣợng
lớn các dữ liệu thô. Có nhiều thuật ngữ hiện đƣợc dùng cũng có nghĩa tƣơng
tự với từ Datamining nhƣ Knowledge Mining (khai phá tri thức), knowledge
4

extraction (chắt lọc tri thức), data/patern analysis(phân tích dữ liệu/mẫu), data
archaeoloogy (khảo cổ dữ liệu), datadredging(nạo vét dữ liệu),...

Định nghĩa: Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng
để tự động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong
một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm
ẩn trong tập dữ liệu đó.

Khai phá dữ liệu nhấn mạnh hai khía cạnh chính đó là khả năng trích
xuất thông tin có ích tự động (Automated) và bán tự động (Semi - Automated)
mang tính dự đoán (Predictive). Khai phá dữ liệu là một lĩnh vực liên ngành,
liên quan chặt chẽ đến các lĩnh vực sau:

Statistics (Thống kê): là một số đo cho một thuộc tính nào đó của một
tập mẫu. Mỗi giá trị thống kê đƣợc tính bằng một hàm nào đó và thông tin của
môt thống kê mang tính đại diện cho thông tin của tập mẫu mang lại.

Machine Learning (Máy học): là một phƣơng pháp để tạo ra các chƣơng
trình máy tính bằng việc phân tích các tập dữ liệu. Máy học có liên quan lớn
đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhƣng
khác với thống kê, học máy tập trung vào sự phức tạp của các giải thuật trong
việc thực thi tính toán.

Databases technology (Công nghệ cơ sở dữ liệu): kho thông tin về một


chủ đề, đƣợc tổ chức hợp lý để dễ dàng quản lý và truy tìm.

Visualization (Sự trực quan): Biểu diễn giúp dữ liệu dễ hiểu, dễ sử dụng,
thuận tiện cho việc tạo các báo cáo, tìm ra các tri thức phục vụ việc ra quyết
định và dự đoán của nhà quản lý.
5

1.1.3. Quy trình khai phá dữ liệu

Khai phá dữ liệu là một bƣớc trong bảy bƣớc của quá trình KDD
(Knowleadge Discovery in Database) và KDD đƣợc xem nhƣ 7 quá trình khác
nhau theo thứ tự sau [1]:

1. Làm sạch dữ liệu (data cleaning & preprocessing): Loại bỏ nhiễu và


các dữ liệu không cần thiết.

2. Tích hợp dữ liệu: (data integration): quá trình hợp nhất dữ liệu thành
những kho dữ liệu (data warehouses & data marts) sau khi đã làm
sạch và tiền xử lý (data cleaning & preprocessing).

3. Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho
dữ liệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai
thác tri thức. Quá trình này bao gồm cả việc xử lý với dữ liệu nhiễu
(noisy data), dữ liệu không đầy đủ (incomplete data), .v.v.

4. Chuyển đổi dữ liệu: Các dữ liệu đƣợc chuyển đổi sang các dạng phù
hợp cho quá trình xử lý.

5. Khai phá dữ liệu (data mining): Là một trong các bƣớc quan trọng
nhất, trong đó sử dụng những phƣơng pháp thông minh để chắt lọc ra
những mẫu dữ liệu.

6. Ƣớc lƣợng mẫu (knowledge evaluation): Quá trình đánh giá các kết
quả tìm đƣợc thông qua các độ đo nào đó.

7. Biểu diễn tri thức (knowledge presentation): Quá trình này sử dụng
các kỹ thuật để biểu diễn và thể hiện trực quan cho ngƣời dùng.
6

Hình 1.1- Các bước trong khai phá dữ liệu [1]

1.1.4. Các bài toán cơ bản trong khai phá dữ liệu

Mô tả khái niệm (concept description): là bài toán tìm đặc trƣng và tính
chất của khái niệm. Bài toán thiên về mô tả, tổng hợp và tóm tắt khái niệm. Ví
dụ: tóm tắt văn bản.

Luật kết hợp (association rules): là dạng luật biểu diễn tri thức ở dạng
khá đơn giản. Ví dụ: “60 % nam giới vào siêu thị nếu mua bia thì có tới 80%
trong số họ sẽ mua thêm thịt bò khô”. Luật kết hợp đƣợc ứng dụng nhiều
trong lĩnh vực kính doanh, y học, tin-sinh, tài chính & thị trƣờng chứng
khoán, .v.v.

Phân lớp và dự đoán (classification & prediction): xếp một đối tƣợng vào
một trong những lớp đã biết trƣớc. Ví dụ: phân lớp vùng địa lý theo dữ liệu
thời tiết. Hƣớng tiếp cận này thƣờng sử dụng một số kỹ thuật của machine
7

learning nhƣ cây quyết định (decision tree), mạng nơ ron nhân tạo (neural
network), .v.v. Ngƣời ta còn gọi phân lớp là học có giám sát (học có thầy).

Phân cụm (clustering): xếp các đối tƣợng theo từng cụm (số lƣợng cũng
nhƣ tên) của cụm chƣa đƣợc biết trƣớc. Ngƣời ta còn gọi phân cụm là học
không giám sát (học không thầy).

Hồi quy (regression ): là bài toán điển hình trong phân tích thống kê và
dự báo. Trong khai phá dữ liệu, bài toán hồi quy đƣợc quy về việc học một
hàm ánh xạ dữ liệu nhằm xác định một giá trị thực của một biến theo biến số
khác. Phân tích hồi quy sẽ xác định đƣợc định lƣợng quan hệ giữa các biến,
và quảng bá giá trị một biến phụ thuộc vào giá trị của những biến khác.
Phƣơng pháp hồi quy khác với phân lớp dự liệu là hồi quy dùng để dự đoán
những giá trị liên lục, còn phân lớp dữ liệu là dự đoán các giá trị rời rạc.

Khai phá chuỗi (sequential/temporal patterns): tƣơng tự nhƣ khai phá


luật kết hợp nhƣng có thêm tính thứ tự và tính thời gian. Hƣớng tiếp cận này
đƣợc ứng dụng nhiều trong lĩnh vực tài chính và thị trƣờng chứng khoán vì nó
có tính dự báo cao.

Ngoài ra còn có một số bài toán khai phá dữ liệu thống kê khác.

1.1.5. Các ứng dụng của khai phá dữ liệu

Phát hiện tri thức và khai phá dữ liệu liên quan đến nhiều ngành, nhiều
lĩnh vực: thống kê, trí tuệ nhân tạo, cơ sở dữ liệu, thuật toán, tính toán song
song và tốc độ cao, thu thập tri thức cho các hệ chuyên gia, quan sát dữ liệu...
Đặc biệt phát hiện tri thức và khai phá dữ liệu rất gần gũi với lĩnh vực thống
kê, sử dụng các phƣơng pháp thống kê để mô hình dữ liệu và phát hiện các
mẫu, luật ... Ngân hàng dữ liệu (Data Warehousing) và các công cụ phân tích
8

trực tuyến (OLAP- On Line Analytical Processing) cũng liên quan rất chặt
chẽ với phát hiện tri thức và khai phá dữ liệu.

Khai phá dữ liệu có nhiều ứng dụng trong thực tế,[3] ví dụ nhƣ:

 Bảo hiểm, tài chính và thị trƣờng chứng khoán: phân tích tình hình tài
chính và dự báo giá của các loại cổ phiếu trong thị trƣờng chứng
khoán. Danh mục vốn và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện
gian lận, ...

 Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định.

 Điều trị y học và chăm sóc y tế: một số thông tin về chuẩn đoán bệnh
lƣu trong các hệ thống quản lý bệnh viện. Phân tích mối liên hệ giữa
các triệu chứng bệnh, chuẩn đoán và phƣơng pháp điều trị (chế độ
dinh dƣỡng, thuốc, ...)

 Sản xuất và chế biến: Quy trình, phƣơng pháp chế biến và xử lý sự cố.

 Text mining và Web mining: Phân lớp văn bản và các trang Web, tóm
tắt văn bản,...

 Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật
học, tìm kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ
gene và một số bệnh di truyền, ...

 Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám
sát lỗi, sự cố, chất lƣợng dịch vụ, dự báo thuê bao rời mạng ...

1.1.6. Quy trình xây dựng mô hình khai phá dữ liệu

Việc thực hiện một DMM với đầy đủ 4 bƣớc công việc chính của quá
trình khai phá dữ liệu là:
9

Bƣớc 1: Chuẩn bị dữ liệu (Data Preparation); Trong bƣớc này chúng ta


thực hiện các công việc tiền xử lý dữ liệu theo yêu cầu của mô hình nhƣ trích
chọn thuộc tính, rời rạc hóa dữ liệu và cuối cùng là chia dữ liệu nguồn (Data
Source) thành 2 tập dữ liệu dùng để huấn luyện mô hình (Training Data) và
kiểm tra mô hình (Testing data).

Bƣớc 2: Xây dựng mô hình (Data Modeling); ta sử dụng Training Data


vừa tạo ra để xây dựng mô hình.

Bƣớc 3: Đánh giá mô hình (Validation); Sau khi sử dụng Training Data
để xây dựng mô hình, bây giờ ta sử dụng Testing Data để kiểm tra xem mô
hình có đủ tốt để sử dụng hay không? ( Nếu chƣa đủ tốt thì phải sử dụng
Training Data khác để huấn luyện lại). Có 3 kỹ thuật chính để kiểm tra mô
hình đó là sử dụng Accuracy Chart ( Lift Chart), Classification Matrix và
ProfitChart.

Bƣớc 4: Sử dụng mô hình để dự đoán dự liệu trong tƣơng lai (Model


Usage); Sau khi mô hình đƣợc kiểm tra (Testing) nếu độ chính xác đáp ứng
yêu cầu thì có thể sử dụng model đã xây dựng vào dự đoán các dữ liệu chƣa
biết.

Hình 1.2 - Quy trình xây dựng mô hình khai phá dữ liệu
10

1.2.Bài toán phân lớp và dự báo

1.2.1. Giới thiệu bài toán

Phân lớp: là quá trình xây dựng một mô hình để mô tả dữ liệu đƣợc
phân chia nhƣ thế nào, nói cách khác, phân lớp là quá trình xây dựng một mô
hình bằng các gán các đối tƣợng dữ liệu (thuộc tính) vào các lớp đã xác định.

Tiến trình phân lớp dựa trên 4 thành phần cơ bản:

- Lớp (class)

- Dự đoán (predictors)

- Tập dữ liệu được đào tạo (Training dataset)

- Tập dữ liệu kiểm thử (Testing dataset)

Đặc trƣng của tiến trình phân lớp gồm những điểm sau:

Input: tập dữ liệu đào tạo chứa những đối tƣợng với thuộc tính của
nó,với một số thuộc tính đã đƣợc gán nhãn;

Output: mô hình (classifier) đƣợc gán bởi những nhãn cụ thể cho mỗi đối
tƣợng phân lớp các đối tƣợng từng các thƣ mục), dựa trên những thuộc tính
khác;

Dự báo: là một quá trình gồm hai bƣớc, nó gần giống với quá trình phân
lớp. Tuy nhiên để dự báo, chúng ta bỏ qua khái niệm nhãn phân lớp bởi vì các
giá trị đƣợc dự báo là liên tục (đƣợc sắp xếp) hơn là các giá trị phân loại. Ví
dụ thay vì phân loại xem một khoản vay có là an toàn hay rủi do thì chúng ta
sẽ dự đoán xem tổng số tiền cho vay của một khoản vay là bao nhiêu thì
khoản vay đó là an toàn.

Có thể xem xét việc dự báo cũng là một hàm y = f(X), trong đó X là dữ
liệu đầu vào, và đầu ra là một giá trị y liên tục hoặc sắp xếp đƣợc. Việc dự
báo và phân lớp có một vài điểm khác nhau khi sử dụng các phƣơng pháp xây
11

dựng mô hình. Giống với phân lớp, tập dữ liệu huấn luyện sử dụng để xây
dựng mô hình dự báo không đƣợc dùng để đánh giá tính chính xác. Tính
chính xác của mô hình dự báo đƣợc đánh giá dựa trên việc tính độ lệch giá
các giá trị dự báo với các giá trị thực sự nhận đƣợc của mỗi bộ kiểm tra X.

1.2.2 Các bƣớc giải quyết bài toán

Các bƣớc giải quyết bài toán gồm:

Bƣớc 1:Xây dựng mô hình từ tập huấn luyện.

- Mỗi bộ/mẫu dữ liệu đƣợc phân vào một lớp đƣợc xác định trƣớc.

- Lớp của một bộ/mẫu dữ liệu đƣợc xác định bởi thuộc tính gán nhãn
lớp.

- Tập các bộ/mẫu dữ liệu huấn luyện - tập huấn luyện - đƣợc dùng để
xây dựng mô hình.

- Mô hình đƣợc biểu diễn bởi các luật phân lớp, các cây quyết định hoặc
các công thức toán học.

Bƣớc 2: Sử dụng mô hình - kiểm tra tính đúng đắn của mô hình và dùng
nó để phân lớp dữ liệu mới

- Phân lớp cho những đối tƣợng mới hoặc chƣa đƣợc phân lớp.

- Đánh giá độ chính xác của mô hình:

+ Lớp biết trƣớc của một mẫu/bộ dữ liệu đem kiểm tra đƣợc so sánh
với kết quả thu đƣợc từ mô hình

+ Tỉ lệ chính xác = phần trăm các mẫu/bộ dữ liệu đƣợc phân lớp
đúng bởi mô hình trong số các lần kiểm tra
12

Chƣơng 2: CÁC PHƢƠNG PHÁP PHÂN LỚP TRONG KHAI PHÁ

DỮ LIỆU

2.1. Phân lớp bằng phƣơng pháp quy nạp cây quyết định

Cây quyết định là biểu đồ có cấu trúc dạng cây đƣợc giới thiệu lần đầu
tiên bởi Hunt và các cộng sự (Hunt, Marin, & Stone, 1966).

Hình 2.1 - Ví dụ về cây quyết định


Trong đó gồm:

- Node gốc của cây: node trên cùng của cây, là một thuộc tính điều kiện.
Các nhánh từ node gốc tƣơng ứng với các giá trị có thể của thuộc tính này.

- Node trong: Mỗi node trong của cây cũng tƣơng ứng với một thuộc tính
điều kiện. Một node trong của cây có thể coi nhƣ là node gốc của một cây
con.Mỗi node trong chỉ bao hàm những đối tƣợng dữ liệu thuộc một nhánh cụ
thể của node cha.
13

- Node lá: node cuối trong nhánh mà tất cả các đối tƣợng đều thuộc một
lớp hoặc không còn thuộc tính điều kiện nào để phân chia hoặc không còn đối
tƣợng dữ liệu nào để phân chia.

Điều quan trọng của thuật toán cây quyết định là tiêu chí đánh giá để tìm
điểm chia. Ý tƣởng chính trong việc đƣa ra các tiêu chí này là làm sao cho các
tập con đƣợc phân chia càng trở nên “trong suốt” (tất cả các bộ thuộc về cùng
một nhãn) càng tốt. Quinlan đã phát triển thuật toán ID3 dùng độ đo thông tin
thu thêm (Information Gain - Gain) để xác định điểm chia tốt nhất. Độ đo này
dựa trên cơ sở lý thuyết thông tin của Claude Shannon (1948) để đo tính
thuần nhất (hay ngƣợc lại là pha trộn) của một tập hợp. Độ đo này đƣợc xác
nhƣ sau:
m
Entropy (S) = i=1 Pi log 2 Pi (1.1)

Trong đó m là số lƣợng các lớp khác nhau và Pi là tỉ lệ các đối tƣợng


mang nhãn i.

Để xác định điểm chia, ID3 so sánh entropy của một node cha với tổng tỉ
lệ entropy của các node con sau khi phân chia, Gain(S, A) của thuộc tính A,
trên tập S, đƣợc định nghĩa nhƣ sau:
|𝑆𝑉 |
Gain 𝑆, 𝐴 = 𝐸𝑚𝑡𝑟𝑜𝑝𝑦 𝑆 − 𝑉∈𝑉𝑎𝑙𝑢𝑒 |𝑉| 𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝑆𝑉 (1.2)

Với giá trị Value (A) là tập các giá trị có thể cho thuộc tính A, và S|; là
tập con của S mà A nhận giá trị v.

C4.5 là kế thừa của thuật toán học máy bằng cây quyết định dựa trên nền
tảng là kết quả nghiên cứu của Hunt và các cộng sự của ông. Phiên bản đầu
tiên ra đời là ID3 (Quinlan, 1979)- một hệ thống đơn giản ban đầu chứa
khoảng 600 dòng lệnh Pascal, và tiếp theo là C4 (Quinlan 1987). Năm 1993,
14

J. Ross Quinlan đã kế thừa các kết quả đó phát triển thành C4.5 với 9000
dòng lệnh C. Mặc dù đã có phiên bản phát triển từ C4.5 là C5.0 - một hệ
thống tạo ra lợi nhuận từ Rule Quest Research, nhƣng nhiều tranh luận,
nghiên cứu vẫn tập trung vào C4.5 vì mã nguồn của nó là sẵn dùng.

Một số cải tiến của thuật toán C4.5 so với ID3:

- Sử dụng Gain Ratio (thay vì Information Gain) để chọn thuộc tính phân
chia trong quá trình xây dựng cây.

- Có thể xử lý tốt cả 2 loại dữ liệu rời rạc và liên tục

- Có thể xử lý dữ liệu không đầy đủ ( thiếu một số giá trị tại một số thuộc
tính)

- Thực hiện cắt tỉa cây sau khi xây dựng: loại bỏ những nhánh cây không
thực sự ý nghĩa.

Thuật toán C4.5, một cải tiến của ID3, mở rộng cách tính Information
Gain thành Gain Ratio để chọn thuộc tính phân chia trong quá trình xây dựng
cây.

Gain Ratio đƣợc xác định bởi công thức sau:

Gain(S, A)
GainRatio = (1.3)
SplitInformation(S, A)

Trong đó: SplitInformation(S, A) chính là thông tin do phân tách của A


trên cơ sở giá trị của thuộc tính phân loại S. Công thức tính nhƣ sau:
m |Si | |Si |
SplitInformation S, A = − log 2 (1.4)
i=1 |S| |S|
15

2.2. Phân lớp bằng phƣơng pháp Bayesian

Thuật toán phân lớp Naïve Bayes (NB) là một trong những thuật toán
phân lớp điển hình nhất trong học máy và khai thác dữ liệu. Naïve Bayes là
phƣơng pháp phân lớp dựa vào xác suất đƣợc sử dụng rộng rãi trong lĩnh vực
học máy, đƣợc sử dụng lần đầu tiên trong lĩnh vực phân loại bởi Maron vào
năm 1961 [Maron, 1961] sau đó trở nên phổ biến dùng trong nhiều lĩnh vực
nhƣ trong các công cụ tìm kiếm [Rijsbergen et al, 1970], các bộ lọc email
[Sahami et al, 1998],..

Thuật toán Naïve Bayes dựa trên định lý Bayes đƣợc phát biểu nhƣ sau:
𝑃 𝑋𝑌 𝑃 𝑋 𝑌 𝑃(𝑌)
𝑃 𝑋Y = = (2.1)
𝑃 𝑋 𝑃(𝑋)

Áp dụng trong bài toán phân lớp, các dữ kiện gồm có:

-D: tập dữ liệu huấn luyện đã đƣợc vector hóa dƣới dạng:

𝑋 = (𝑋1 , 𝑋2,…. 𝑋𝑛 )

- Ci: phân lớp i, với i = {1,2,...,m}.

- Các thuộc tính độc lập điều kiện đôi một với nhau.

Theo định lý Bayes:


𝑃 𝑋 𝐶𝑖 𝑃(𝐶𝑖 )
𝑃 𝐶𝑖 X = (2.2)
𝑃 𝑋

Theo tính chất độc lập điều kiện:


n
𝑃 𝑋 Cj = k=1 P 𝑋𝑘 𝐶𝑗

Trong đó:

- P(Ci|X) là xác suất thuộc phân lớp i khi biết trƣớc mẫu X.
16

- P(Ci) xác suất là phân lớp i.

- P(xk|Ci) xác suất thuộc tính thứ k mang giá trị xk khi biết X thuộc
phân lớp i.

Các bƣớc thực hiện thuật toán Naive Bayes:

Bước 1: Huấn luyện Naive Bayes (dựa vào tập dữ liệu), tính P(Ci ) và
P(Xk|Ci)

Bước 2: Phân lớp Xnew= (x1,x2,...,xn), tính xác suất từng lớp khi đã
biết trƣớc đƣợc gán vào lớp có xác suất lớn nhất theo công thức
𝑛
𝑚𝑎𝑥𝐶𝑖 ∈ 𝐶 𝑃 𝐶𝑖 𝑘=1 𝑃 𝑋𝑘 Ci (2.3)

2.3. Support Vector Machine (SVM)

2.3.1 Phân tách tuyến tính với lề cực đại

Chúng ta hãy bắt đầu SVM bằng một bài toán khá đơn gián: xây dựng
một hàm tuyến tính để phân tách một tập dữ liệu phân loại hai lớp rời nhau.
Dữ liệu phân loại hai lớp là một tập các đối tƣợng S gồm l phần tử, trong đó
mỗi phần tử đƣợc mô tả bởiVec-tơ d chiều và một giá trị nhãn + 1 hoặc -1:

𝑆= 𝑥𝑖 , 𝑦𝑖 , 𝑥𝑖 ∈ 𝑅 𝑑 , 𝑦𝑖 ∈ −1,1 , 𝑖 = 1 … 𝑙 .
Khái niệm hai lớp rời nhau có nghĩa là tồn tại một siêu phẳng có phƣơng
trình [2]

𝑓 𝑥 = 𝑤. 𝑥 + 𝑏 (3.1)

Trong không gian Rd nằm giữa hay chia đôi tập dữ liệu S thành hai
phần, mỗi phần gồm toàn các đối tƣợng chung một nhãn +1 hay −1.
Các siêu phẳng này là các đƣờng thẳng trong không gian hai chiều, mặt phẳng
trong không gian ba chiều, và tổng quát hơn là các không gian con
17

𝑅 𝑑−1 chiều trong không gian 𝑅 𝑑 . Khi tập dữ liệu đƣợc dùng để xây dựng
nên các siêu phẳng thì S thƣờng đƣợc gọi là tập huấn luyện và các phần tử
trong đó đƣợc gọi là dữ liệu (hay véc-tơ huấn luyện ).

Có nhiều phƣơng pháp khác nhau có thể tìm ra lời giải của bài toán trên,
ví dụ nhƣ thuật toán Perceptron của Rosenblatt hay mạng nơ-ron nhân tao,
phƣơng pháp phân tách tuyến tính của Fisher và cả SVMs. Chúng ta sẽ cùng
tìm hiểu sự khác biệt của SVMs đối với các phƣơng pháp khác thông qua khái
niệm hàm phân tách tuyến tính với lề cực đại. Trƣóc tiên chúng ta sẽ xem xét
hai khái niệm khá quan trọng là lề hàm (functional margin) và lề hình học
(geometric margin) của một điểm tới một siêu phẳng nhƣ sau:

Định nghĩa 3.1. Lề hàm của một véc-tơ huấn luyện (xi , yi ) đối với siêu
phẳng f (x) = 0 là đại lƣợng [2].

𝑝𝑓 𝑥𝑖 , 𝑦𝑖 = 𝑦𝑖 𝑤. 𝑥𝑖 + 𝑏 ( 3.2)

Đối với bài toán phân loại 2 –lớp 𝑝𝑓 𝑥𝑖 , 𝑦𝑖 > 0 đồng nghĩa với việc
phân loại đúng. Với 𝑦𝑖 = 1, giá trị của lề hàm 𝑤. 𝑥 + 𝑏 có giá trị dƣơng và
một giá trị càng lớn càng cho thấy mức độ chắc chắn của việc phân loại 𝑥𝑖
vào lớp + 1. Ngƣợc lại, nếu 𝑦𝑖 = 1 thì chúng ta muốn 𝑤. 𝑥 + 𝑏 có giá trị âm
với độ lớn tỷ lệ với độ rõ ràng của véc-tơ 𝑥𝑖 thuộc về lớp -1. Trong cả hai
trƣờng hợp, nếu giá trị 𝑦𝑖 (𝑤. 𝑥 + 𝑏 )> 0, hay lề dƣơng, thì sự chia tách của
hàm 𝑓 đối với véc-tơ huấn luyện 𝑥𝑖 , 𝑦𝑖 là đúng đắn.

Việc phân loại dựa vào giá trị của lề hàm 𝑝𝑓 tuy thuận lợi nhƣ đã nêu
nhƣng có một nhƣợc điểm là có vô số hàm 𝑓 cho cùng một giá trị phân loại
đúng/sai. Chẳng hạn nhƣ chúng ta thay 𝑤 ′ bởi 2𝑤 và 𝑏′ bởi 2𝑏, thì hàm quyết
định không thay đổi vì sign 2𝑤. 𝑥 + 2𝑏 = 𝑠𝑖𝑔𝑛 𝑤. 𝑥 + 𝑏 . Nói một cách
18

khác, nhiều hệ số khác nhau của 𝑤 và b có thể cho cùng một kết quả phân
loại.

Để đơn giản hóa vấn đề mà không làm mất đi tính tổng quát, chúng ta có
thể chọn một giá trị đặc biết của w, chẳng hạn nhƣ 𝑤 = 1 và thay thế bộ
𝑤 𝑏
(𝑤, 𝑏) bởi ( , ). Trong trƣờng hợp này, lề hàm trở thành lề hình học và
𝑤 |𝑤|

giá trị tuyệt đối chính là khoảng cách Ơ-clid từ một véc-tơ (điểm) đến siêu
phẳng phân cách 𝑓.

Định nghĩa 3.2. Lề hình học của một véc-tơ huấn luyện 𝑥𝑖 , 𝑦𝑖 đối với
siêu phẳng 𝑓 𝑥 = 0 là đại lƣợng [2].

𝑤 𝑏
𝑝𝑓 𝑥𝑖 , 𝑦𝑖 = 𝑦𝑖 . 𝑥𝑖 + (3.3)
𝑤 𝑤

𝑝 𝑓 𝑥 𝑖 ,𝑦 𝑖
=
𝑤

Định nghĩa 3.3. Lề của một tập huấn luyện 𝑠 = {(𝑥𝑖 , 𝑦𝑖 )}𝑖=1…𝑙 đối với
siêu phẳng 𝑓 𝑥 = 0 là giá trị bé nhất của lề hình học tại véc-tơ [2].

𝑝𝑓 = min𝑖=1…𝑙 𝑝𝑓 (𝑥𝑖 , 𝑦𝑖 ) (3.4)

Siêu phẳng mà SVM tìm kiếm là siêu phẳng có giá trị lề lớn nhất, hay
còn gọi là siêu phẳng với lề cực đại.

𝑓 ∗ = arg max𝑓 𝑝𝑓 (3.5)


19

Hình 2.2 - Về mặt trực quan thì hàm tuyến tính siêu phẳng với lề lớn nhất
trông có vẻ hợp lý

Hình 2.3 - Ví dụ về bài toán phân loại trong không gian hai chiều

Dùng một đƣờng thẳng để phân tách các điểm „o‟ và điểm „+‟. Giả sử
rằng đƣờng thẳng có lề là p và tọa độ của các điểm „o‟ và điểm „+‟ bị dịch
20

chuyển qua bán kính r do có nhiễu. Nếu 𝑟 < 𝑝 thì đƣờng thẳng trên vẫn có
thể phân tách chính xác các điểm này

Định lý 4.1. Cho một lớp các hàm phân loại 𝑓 𝑥 = 𝑠𝑖𝑔𝑛 𝑤. 𝑥 (coi b=0
cho đơn giản) với 𝑤 ≤ 𝐴 và giả sử tất cả các véc-tơ đều nằm trong một
hình cầu 𝑥 ≤ 𝑅, với R,A> 0. Với p > 0, và v là tỷ lệ các véc-tơ huấn luyện
𝑝
có lề nhỏ hơn gọi là lỗi lề. [2].
𝑤

Với mọi phân bố P của véc-tơ X, vơi mọi p>0 và δ ∈ (0, 1), với xác suất
ít nhất là 1- δ trên toàn bộ l véc-tơ huấn luyện, khả năng phân loại lỗi đối với
bất kỳ véc-tơ X nào đều nhỏ hơn (bị chặn trên) bởi

(3.6)

Trong đó c là một hằng số.

Định lý trên nói rằng khả năng phân loại lỗi của 𝑓 đối với một véc-tơ bất
kỳ bị chặn trên bởi tổng của lỗi lề v (lỗi huấn luyện) và giá trị trong dấu √...
của công thức gọi là năng lực của 𝑓. Chúng ta có thể thấy rằng nếu l có
giá trị lớn vô cùng, hay với vô hạn dữ liệu huấn luyện thì giá trị trong dấu √...
tiến tới 0 và lỗi huấn luyện gần trở thành lỗi của hàm phân loại trên
toàn bộ P. Với một lƣợng dữ liệu huấn luyện hạn chế, năng lực của 𝑓
tỷ lệ nghịch với R và A, tỷ lệ thuận với lề p. Nếu chúng ta có thể giữ R và A có
các giá trị không đổi (ví dụ nhƣ chuẩn hóa dữ liệu trong một siêu cầu có bán
kính 1, 𝑥 ≤ 1, và chỉ xét các giá trị 𝑥 = 1), thì thành phần có giá trị ảnh
hƣởng lới tới cận trên của lỗi chính là p. Một giá trị lớn hơn của p mang lại
một hàm 𝑓 với năng lực nhỏ hơn và một lỗi lề lớn hơn (theo định nghĩa thì v
tỷ lệ thuận với p). Ngƣợc lại, với p nhỏ hơn thì lỗi lề sẽ giảm nhƣng thành
21

phần thứ 2 trong công thức 3.6 thƣờng đƣợc gọi là mức điều chỉnh/ phạt năng
lực sẽ tăng. Nhƣ vậy, để giảm thiểu khả năng phán đoán lỗi chúng ta cần tìm
một siêu phẳng 𝑓 với ít lỗi thực hiện (v nhỏ) và giá trị lề p lớn (đây cũng
thƣờng là tiêu chí chung của nhiều phƣơng pháp học máy khác nhau: ƣu tiên
các mô hình đơn giản với ít lỗi thực nghiệm).

Với giả thuyết dữ liệu có thể chia tách đƣợc nêu trên (lỗi thực nghiệm
bằng 0), siêu phẳng với lề cực đại dƣờng nhƣ là một trong những hàm phân
tách tuyến tính tốt nhất do có chặn trên của lỗi là bé nhất.

Một lý do khác mà siêu phẳng với hàm cực đại hay SVM đƣợc dùng thử
là đã có rất nhiều bài học thành công trên thực tế nhƣ: phân loại văn bản, nhận
dạng ảnh, nhận dạng chữ viết.

2.3.1.1. Tìm kiếm siêu phẳng với lề cực đại

Đối với dữ liệu khả tách tuyến tính, thuật toán SVM đơn giản chỉ là tìm
siêu phẳng 𝑓 𝑥 = 𝑤. 𝑥 + 𝑏 có giá trị lề càng lớn càng tốt. Để làm đƣợc điều
này, chúng ta có thể giả thiết rằng các giá trị lề tại các điểm huấn luyện
𝑝𝑓 𝑥𝑖 , 𝑦𝑖 ≥ 1 mà không làm mất đi tính tổng quát. Điều này tƣơng đƣơng
với:

𝑤. 𝑥𝑖 + 𝑏 ≥ 1 𝑘𝑕𝑖 𝑦𝑖 = +1,

𝑤. 𝑥𝑖 + 𝑏 ≤ 1 𝑘𝑕𝑖 𝑦𝑖 = −1,

hay

𝑦𝑖 𝑤. 𝑥𝑖 + 𝑏 − 1 ≥ 0, 𝑖 = 1, … 𝑙. (3.7)

Nếu gọi siêu phẳng 𝐻 +: 𝑤. 𝑥 + 𝑏 = +1, và 𝐻 −: 𝑤. 𝑥 + 𝑏 = −1, thì lề


(𝑏−1) (𝑏 +1)
hình học của gốc tọa độ đối với hai siêu phẳng này lần lƣợt là và ,
𝑤 𝑤
22

2
hay khoảng cách giữa hai siêu phẳng 𝐻 + và 𝐻 − là . Nhƣ vậy, việc tìm
𝑤

siêu phẳng với lề cực đại tƣơng đƣơng với việc tìm siêu phẳng 𝑓 có giá trị
2
𝑤 nhỏ nhất thỏa mãn điều kiện (3.7):

1 2
min 𝑤 (3.8)
𝑤 ,𝑏 2
Thỏa mãn 𝑦𝑖 𝑤. 𝑥𝑖 + 𝑏 ≥ 1, 𝑖 = 1, … 𝑙. (3.9)

2.3.1.2. Hàm phân loại tuyến tính với lề mềm cực đại

Điều kiện 3.7 dƣờng nhƣ quá cứng nhắc vì trong nhiều ứng dụng thực tế
thì khả năng có nhiễu hay phần tử ngoại lai là rất cao. Cho dù bản chất của bài
toán là đơn giản và có thể phân loại tuyến tính một cách hiệu quả, nhƣng chỉ
với một phần tử nhiễu hay bị dữ liệu gán nhãn sai cũng có thể làm cho bài
toán tối ƣu 3.8 trở nên vô nghiệm vì không thể tìm ra đƣợc hàm phân tách
tuyến tính với lỗi thực nghiệm bằng 0. Trong khi đó khả năng kháng nhiễu là
một trong những tính chất bắt buộc đối với bất kỳ phƣơng pháp học máy hiệu
quả nào.

Để giải quyết vấn đề dữ liệu có nhiễu, SVM chọn giải pháp thay thế ràng
buộc 3.7 bởi một ràng buộc khác mềm mại hơn:

𝑦𝑖 𝑤. 𝑥𝑖 + 𝑏 ≥ 1 − ξi , 𝑖 = 1, … , 𝑙. (3.10)

ξi ≥ 0, 𝑖 = 1, … , 𝑙. (3.11)

Các biến số ξi trong (3.10) thƣờng đƣợc gọi là biến nới lỏng. Chúng cho
phép các véc-tơ huấn luyện có thể có lề hàm nhỏ hơn 1 (hay vi phạm điều
kiện cứng), tuy nhiên những véc-tơ này cần chịu một khoản phạt đƣợc tính
trong hàm mục tiêu tỷ lệ với mức độ vi phạm và một số C :
23

1 2 𝑙
min𝑤 ,𝑏
2
𝑤 +𝐶 𝑖=1 ξi (3.12)

Tham số C có vai trò cân bằng lỗi thực nghiệm, mức độ vi phạm điều kiện
lề “cứng” và cả độ lớn của lề. Khi C = 0 thì có nghĩa là không cho phép vi
phạm điều kiện lề và yêu cầu tìm hàm f với điều kiện (3.7).

Tóm tắt lại thì bài toán tìm kiếm siêu phẳng phân cách với lề mềm cực
đại đƣợc viết nhƣ sau:
𝑙
1
min 𝑤 2 + 𝐶 ξi 3.13
𝑤,𝑏,ξ 2
𝑖=1

𝑡𝑕ỏ𝑎 𝑚ã𝑛 𝑦𝑖 𝑤. 𝑥𝑖 + 𝑏 > 1 − ξi , 𝑖 = 1, … , 𝑙. (3.14)

ξ𝑖 ≥ 0, 𝑖 = 1, … , 𝑙. (3.15)

2.3.1.3. Lý thuyết tối ƣu Lagrangian

Phƣơng pháp nhân tử La-grăng (Lagrange multiplier) [2] thƣờng đƣợc sử


dụng để giải các bài toán tối ƣu nhƣ trên. Tuy nhiên, với ràng buộc là các bất
đẳng thức thì bài toán gốc này cần đƣợc chuyển thành một dạng bài toán đối
ngẫu dễ giải hơn.

Định nghĩa 3.4. Với bài toán tối ƣu trên miền xác định lồi Ω ⊆ 𝑅𝑑

min 𝑓 𝜔 , 𝜔 ∈ Ω (3.16)
𝜔

đ𝑖ề𝑢 𝑘𝑖ệ𝑛 𝑔𝑖 𝜔 ≤ 0, 𝑖 = 1, . … , 𝑘 (3.17)

𝑕𝑖 𝜔 = 0, 𝑖 = 1, . … , 𝑚 (3.18)

Hàm số La-grăng tổng quát là hàm số


𝑘 𝑚

𝐿 𝜔, 𝛼, 𝛽 = 𝑓 𝑥 + 𝛼𝑖 𝛽𝑖 𝜔 + 𝛽𝑖 𝑕𝑖 𝜔 (3.19)
𝑖=1 𝑖=1
24

Định nghĩa 3.5. Bài toán đối ngẫu của bài toán Lagrangian gốc là bài
toán [2]

max𝛼 ,𝛽 𝜃(𝛼, 𝛽) (3.20)

thỏa mãn 𝛼≥0 (3.21)

với

𝜃 𝛼, 𝛽 = 𝑖𝑛𝑓𝜔 ∈Ω 𝐿 𝜔, 𝛼, 𝛽 (3.22)

Mối quan hệ giữa hai bài toán gốc và bài toán đối ngẫu là giá trị tối ƣu
của bài toán đối ngẫu bị chặn trên bởi các giá trị của bài toán gốc:

sup 𝜃 𝛼, 𝛽 : 𝛼 ≥ 0 ≤ inf 𝑓 𝜔 : 𝑔 𝜔 ≤ 0, 𝑕 𝜔 = 0 (3.23)

Hơn thế nữa, nếu 𝜔 ∗ và (𝛼 ∗𝛽 ∗ ) là các giá trị nằm trong miền xác định
của hai bài toán và 𝑓 𝜔∗ = 𝜃 𝛼, 𝛽 , thì 𝜔∗ và (𝛼 ∗, 𝛽 ∗) tƣơng ứng là hai
nghiệm của hai bài toán gốc và bài toán tối ƣu. Đồng thời định lý The Kuhn-
Tucker dƣới đây cho biết rằng nếu hàm mục tiêu 𝑓 là hàm lồi và 𝑔𝑖, 𝑕𝑖 là các
hàm affine, thì sự tồn tại của nghiệm tối ƣu (𝛼 ∗, 𝛽 ∗) là điều kiện cần và đủ
cho sự tồn tại của 𝜔 ∗.

Định lý 3.2. (Kuhn-Tucker) [2] Cho bài toán tối ưu trên miền xác định lồi
Ω ⊆ 𝑅𝑑

min 𝑓 𝜔 , 𝜔 ∈ Ω (3.14)
𝜔

đ𝑖ề𝑢 𝑘𝑖ệ𝑛 𝑔𝑖 𝜔 ≤ 0, 𝑖 = 1, . … , 𝑘 (3.25)

𝑕𝑖 𝜔 = 0, 𝑖 = 1, . … , 𝑚 (3.26)

Với hàm lồi 𝑓 ∈ 𝐶 1 (khả vi) và 𝑔𝑖, 𝑕𝑖 là các hàm affine, điều kiện cần và
đủ để véc-tơ 𝜔 ∗là điểm tối ưu là tồn tại các giá trị của 𝛼 ∗ 𝑣à 𝛽 ∗ sao cho:
25

𝜕𝐿(𝜔 ∗, 𝛼 ∗, 𝛽 ∗ )
=0 (3.27)
𝜕𝜔
𝜕𝐿(𝜔 ∗ , 𝛼 ∗ , 𝛽 ∗ )
=0 (3.28)
𝜕𝛽

𝛼𝑖∗𝑔𝑖 𝜔∗ = 0, 𝑖 = 1, … , 𝑘 (3.29)

𝑔𝑖 𝜔∗ ≤ 0, 𝑖 = 1, … , 𝑘 (3.30)

𝛼𝑖 ≥ 0, 𝑖 = 1, … , 𝑘 (3.31)

2.3.1.4. Tìm kiếm siêu phẳng với lề cực đại

Trở lại với bài toán tối ƣu tìm siêu phẳng với lề cực đại ở mục 2.3.1.1
hàm Lagrangian tổng quát của bài toán XXX là hàm
𝑙 𝑙 𝑙
1
𝐿 𝜔, 𝑏, ξ, 𝛼, 𝛽 = 𝜔2 + 𝐶 ξ𝑖 − 𝛼𝑖 ( 𝑦𝑖 𝜔. 𝑥𝑖 + 𝑏 − 1 + ξ𝑖 − 𝛽𝑖 ξ𝑖
2
𝑖=1 𝑖=1 𝑖=1

(3.32)

Đặt đạo hàm của hàm số Lagrangian bằng không đối với các
biến số 𝜔, ξ𝑖 𝑣à 𝑏 chúng ta có các mối quan hệ sau:
𝑙
𝜕𝐿(𝜔, 𝛼, 𝛽)
=𝜔 − 𝑦𝑖 𝛼𝑖 𝑥𝑖 = 0 (3.33)
𝜕𝜔
𝑖=1

𝜕𝐿(𝜔, 𝛼, 𝛽)
= 𝐶 − 𝛼𝑖 − 𝛽 𝑖 = 0 (3.34)
𝜕ξ𝑖
𝑙
𝜕𝐿(𝜔, 𝛼, 𝛽)
= 𝑦𝑖 𝛼𝑖 = 0 (3.35)
𝜕𝑏
𝑖=1
26

Thay thế các mối quan hệ trên vào hàm lagrangian, chúng ta có hàm mục
tiêu của bài toán đối ngẫu
𝑙 𝑙 𝑙 𝑙
1
𝐿 𝛼, 𝛽 = 𝑦𝑖 𝑦𝑗 𝛼𝑖 𝛼𝑗 𝑥𝑖 . 𝑥𝑗 + 𝐶 ξ𝑖 + 𝑦𝑖 𝑦𝑗 𝛼𝑖 𝛼𝑗 𝑥𝑖 . 𝑥𝑗 − 𝑏 𝛼𝑖 𝑦𝑖
2
𝑖,𝑗 =1 𝑖=1 𝑖,𝑗 =1 𝑖=1
𝑙 𝑙 𝑙

− 𝛼𝑖 ξ𝑖 + 𝛼𝑖 − 𝛽 𝑖 ξ𝑖
𝑖=1 𝑖=1 𝑖=1

𝑙 𝑙 𝑙
1
= − 𝑦𝑖 𝑦𝑗 𝛼𝑖 𝛼𝑗 𝑥𝑖 . 𝑥𝑗 + ξ𝑖 𝐶 − 𝛼𝑖 − 𝛽𝑖 + 𝛼𝑖
2
𝑖,𝑗 =1 𝑖=1 𝑖=1

𝑙 𝑙
1
= 𝛼𝑖 − 𝑦𝑖 𝑦𝑗 𝛼𝑖 𝛼𝑗 𝑥𝑖 . 𝑥𝑗 (3.36)
2
𝑖=1 𝑖,𝑗 =1

Hai điều kiện 𝐶 − 𝛼𝑖 − 𝛽𝑖 = 0 và 𝛽𝑖 ≥ 0 làm cho 𝛼𝑖 ≤ 𝐶. Cuối cùng ta


đƣợc bài toán tối ƣu đối ngẫu với điều kiện dễ có thể giải đƣợc hơn
𝑙 𝑙
1
min 𝐿 𝛼 = 𝑦𝑖 𝑦𝑗 𝛼𝑖 𝛼𝑗 𝑥𝑖 . 𝑥𝑗 − 𝛼𝑖 (3.37)
𝛼 2
𝑖,𝑗 =1 𝑖=1

𝑡𝑕ỏ𝑎 𝑚ã𝑛 𝑦𝑖 𝛼𝑖 = 0 (3.38)


𝑖=1

0 ≤ 𝛼𝑖 ≤ 𝐶, 𝑖 = 1, … , 𝑙 (3.39)

Điều kiện thứ nhất trong định lý Kuhn-Tucker có liên quan tới một định
lý trong học máy thống kê gọi là định lý về sự biểu diễn.Chúng ta thấy rằng
một nghiệm tối ƣu 𝛼 ∗ của bài toán gốc có thể đƣợc biểu diễn thông qua một tổ
hợp tuyến tính của các véc-tơ huấn luyện 𝑥𝑖 với hệ số 𝛼𝑖 là nghiệm của bài toán
đối ngẫu.
27

Điều kiện thứ ba trong định lý Kuhn-Tuker, hay còn gọi là điều kiện
Karush-Kuhn-Tuker là [2]

𝛼𝑖(𝑦𝑖 𝜔. 𝑥𝑖 + 𝑏 − 1 + ξ𝑖 ) = 0, 𝑖 = 1, … , 𝑙 (3.40)

ξ𝑖 (𝛼𝑖 − 𝐶) = 0, 𝑖 = 1, … , 𝑙 (3.41)

Các điều kiện này nói lên rằng ξ𝑖 ≠ 0 chỉ sảy ra khi 𝛼𝑖 = 𝐶, và những
véc-tơ thỏa 0 < 𝛼𝑖 < 𝐶 sẽ có lề hàm bằng 1 (do ξ𝑖 = 0). Nói cách khác, chỉ
những rằng buộc thực sự mới có giá trị 𝛼𝑖 ≠ 0 và lời giải tối ƣu của bài toán
gốc chỉ phụ thuộc vào những véc-tơ này. Trong SVM, khái niệm véc-tơ hỗ trợ
là nói đến véc-tơ huấn luyện có các giá trị nhân tử 𝛼𝑖 tƣơng ứng khác không.
Do số b của bài toán gốc không có mặt trong bài toán đối ngẫu nên giá trị tối
ƣu 𝑏∗ đƣợc chọn sao cho 𝑦𝑖 𝑓 𝑥𝑖 = 1 đối với các chỉ số i mà 0 < 𝛼𝑖∗ < 𝐶.

Bài toán đối ngẫu là một bài toán tối ƣu với hàm mục tiêu là hàm bậc 2
(đối với 𝛼 ∗) có các điều kiện tuyến tính và xác định trên một tập lồi, do vậy có
tồn tại duy nhất một nghiệm tối ƣu. Giải bài toán tối ƣu này chúng ta có đƣợc
các hệ số 𝛼𝑖∗ , 𝑖 = 1, … , 𝑙 và chúng ta có đƣợc hàm phân tách tuyến tính với lề
cực đại:

𝑦 = 𝑠𝑖𝑔𝑛 𝜔∗ . 𝑥 + 𝑏

= 𝑠𝑖𝑔𝑛 𝑦𝑖 𝛼𝑖∗ 𝑥𝑖 . 𝑥 + 𝑏 ∗ (3.42)


𝛼 𝑖 ≠0

Với bài toán lề cực đại cứng thì điều kiện 0 ≤ 𝛼𝑖 ≤ 𝐶 đƣợc thay bởi
0 ≤ 𝛼𝑖 . Với mức phạt bậc 2 ξ2𝑖 (2-norom) trong trƣờng hợp lề mềm thì ngoài
điều kiện thay đổi nhƣ bài toán lề cứng thì hàm mục tiêu trở thành
28

𝑙 𝑙
1 1
min 𝐿 𝛼 = 𝑦𝑖 𝑦𝑗 𝛼𝑖 𝛼𝑗 (𝑥𝑖 . 𝑥𝑗 + 𝛿𝑖𝑗 ) − 𝛼𝑖 (3.43)
𝛼 2 𝐶
𝑖,𝑗 =1 𝑖=1

2.3.2. Phƣơng pháp hàm nhân (kernel methods)

Khả tách tuyến tính là một giả thuyết quá mạnh đối với các ứng dụng
trong thực tế.Thông thƣờng thì nhiều bài toán trong thế giới thực đòi hỏi các
sự vật, hiện tƣợng cần đƣợc mô tả bởi những thuộc tính (feature) phức tạp
hơn là một tổ hợp tuyến tính của các điểm đặc trƣng (attribute). Một trong
những giải pháp cho vấn đề này là mạng nơ-ron nhiều lớp (multilayer neural
networks) và các thuật toán huấn luyện nhƣ lan truyền ngƣợc
(backpropagation).

Hình 2.4 - Ba điểm trong mặt phẳng bị chia tách bởi một đường thẳng

có hướng.

Phƣơng pháp hàm nhân (kernel-based method) [2] đƣa ra một cách tiếp
cận khá độc đáo là ánh xạ hay chiếu toàn bộ dữ liệu sang một không gian
khác nhiều chiều hơn, thƣờng đƣợc gọi là không gian thuộc tính, và các mô
hình tuyến tính đƣợc áp dụng trong không gian mới này. Trong mục này
29

chúng ta sẽ tìm câu trả lời cho hai vấn đề quan trọng là tại sao khi làm việc
trong một không gian mới nhiều chiều thì mô hình tuyến tính lại có thể giải
quyết đƣợc các vấn đề phức tạp trong thực tế và làm sao để có thể áp dụng
phƣơng pháp hàm phân tách tuyến tính với lề cực đại trong không gian thuộc
tính mới này.

2.3.2.1 Chiều VC về khả năng phân tách của hàm tuyến tính

Chiều VC (VC dimension), mang tên hai tác giả Vapnik và


Chervonenkis, là một độ đo về năng lực (capacity) của một lớp hàm, ví dụ
nhƣ lớp các hàm tuyến tính mà chúng ta đang quan tâm. Chúng ta đã biết rằng
với một tập gồm l điểm thì sẽ có 2l cách khác nhau để gán nhãn các điểm này
với một trong hai −1 hoặc +1. Với mỗi phƣơng án gán nhãn, nếu có thể tìm
đƣợc một thành viên của họ hàm f(x,α) phân tách một cách chính xác tất cả
các điểm thì chúng ta gọi tập l điểm có thể bị chia tách bởi họ hàm đó. Chiều
VC đƣợc định nghĩa nhƣ sau:

Định nghĩa 3.6. Chiều VC của một họ hàm số 𝑓(𝑥, 𝛼) là số lƣợng lớn
nhất h các véc-tơ 𝑥1 , … , 𝑥𝑕 có thể đƣợc chia tách thành hai lớp với bất kỳ 2𝑕
cách gán nhãn nào (số lƣợng lớn nhất các véc-tơ có thể bị chia tách bởi họ
hàm). Nếu với bất kỳ số tự nhiên n nào đều tồn tại một tập n vec-tơ có thể bị
chia tách thì chiều VC của họ hàm 𝑓(𝑥, 𝛼) là vô tận. Bây giờ chúng ta cùng
trở lại với câu hỏi đã nêu: tại sao một hàm tuyến tính lại có năng lực lớn hơn
khi đƣợc áp dụng trọng một không gian nhiều chiều hơn. Định lý sau sẽ cho
chúng ta biết câu trả lời [2].

Định lý 3.3. Cho một tập gồm m điểm trong không gian 𝑅 𝑑 và chọn một
điểm bất kỳ làm gốc tọa độ. Chúng ta có m điểm có thể bị chia tách bởi một
30

siêu phẳng nếu và chỉ nếu các véc-tơ vị trí của tất cả các điểm còn lại là độc
lập tuyến tính [2].

Một hệ quả có thể đƣợc rút ra từ định lý trên là chiều VC của các siêu
phẳng có hƣớng trong không gian 𝑅 𝑑 chính là d + 1 bởi vì chúng ta luôn có
thể chọn đƣợc một tập nhiều nhất gồm d điểm độc lập tuyến tính.Nói một
cách khác, càng làm việc trong không gian nhiều chiều thì các siêu phẳng
càng có khả năng chia tách đƣợc nhiều véc-tơ khác nhau. Do vậy, một tập
điểm không khả tách tuyến tính trong không gian đặc trƣng ít chiều nhƣng
ảnh của chúng trong không gian thuộc tính nhiều chiều hơn lại có thể là khả
tách tuyến tính (và do vậy thuật toán tìm siêu phẳng với lề cực đại có thể đƣợc
áp dụng). Vấn đề cốt lõi ở đây là làm sao để có đƣợc, hay xây dựng đƣợc, các
ánh xạ đó.

2.3.2.2 Hàm nhân và SVM phi tuyến (Kernel function and nonlinear
SVMs)

SVMs là một ví dụ điển hình của phƣơng pháp hàm nhân [2]. Trong cả
bài toán tối ƣu tìm siêu phẳng với lề cực đại (3.37) và hàm quyết định (3.42),
chúng ta không làm việc trực tiếp với từng véc-tơ 𝑥𝑖 , 𝑖 = 1, . . . , 𝑙, mà chỉ cần
tới tích vô hƣớng giữa hai véc-tơ bất kỳ. Trong bài toán đối ngẫu, những giá
trị của tích vô hƣớng giữa hai véc-tơ 𝑥𝑖 . 𝑥𝑗 đóng vai trò là các tham số để tìm
ra giá trị tối ƣu của các tham số La-grăng 𝛼𝑖 . Do vậy, chúng ta chỉ cần biết
cách tính đƣợc tích vô hƣớng giữa hai ảnh véc-tơ trong không gian thuộc tính
là cũng đủ để tìm đƣợc siêu phẳng tối ƣu trong không gian thuộc tính mà
không cần biết một cách tƣờng minh không gian thuộc tính đó có bao nhiêu
chiều hay ảnh của mỗi véc-tơ đặc trƣng có tọa độ cụ thể là bao nhiêu. Hàm số
để tính đƣợc tích vô hƣớng đó thƣờng đƣợc gọi là hàm nhân (kernel function)
đƣợc định nghĩa nhƣ sau:
31

Định nghĩa 3.7. Hàm nhân K là một hàm số trên không gian X mà với
mọi véc-tơ 𝑢, 𝑣 ∈ 𝑋
𝐾 𝑢, 𝑣 = 𝛷 𝑢 . 𝛷 𝑣 (3.44)
với Φ là một ánh xạ từ X tới một không gian (vô hƣớng) thuộc tính F
𝛷 ∶ 𝑅𝑑 → 𝐹 Φ (3.45)
Một khi chúng ta có thể tính đƣợc tích vô hƣớng của hai véc-tơ trong
một không gian đặt trƣng nào đó thì chúng ta có thể tìm siêu phẳng tối ƣu
trong không gian đó bằng cách thay các giá trị xi . xj trong (3.37) bởi K xi . xj
𝑙 𝑙
1
min 𝑦𝑖 𝑦𝑗 𝛼𝑖 𝛼𝑗 𝐾(𝑥𝑖 . 𝑥𝑗 ) − 𝛼𝑖 (3.46)
𝛼 2
𝑖,𝑗 =1 𝑖=1

𝑡𝑕ỏ𝑎 𝑚ã𝑛 𝑦𝑖 𝛼𝑖 = 0 (3.47)


𝑖=1

0 ≤ 𝛼𝑖 ≤ 𝐶, 𝑖 = 1, … , 𝑙. (3.48)

Khi đó, hàm phân tách có dạng:

𝑓 𝑥 = 𝑦𝑖 𝛼𝑖 𝐾 𝑥𝑖 . 𝑥𝑗 + 𝑏 (3.49)
𝛼 𝑖 ≠0

Vấn đề cốt lõi bây giờ là những hàm số trên không gian đặc trƣng nào có
thể là nhân, hay là hàm số để tính đƣợc tích vô hƣớng trên một không gian
thuộc tính (nhiều chiều) nào đó?

Về lý thuyết, tất cả những hàm số thỏa mãn điều kiện Mercer sau đây
đều có thể là hàm nhân.

Định lý 3.4.(Mercer condition) [2] Điều kiện cần và đủ để một hàm đối
xứng khả vi liên tục 𝐾 𝑢, 𝑣 trong không gian 𝐿2 𝐶 (các hàm khả vi bậc 2)
có thể được khai triển dưới dạng
32

𝐾 𝑢, 𝑣 = 𝑎𝑘 𝑧𝑘 𝑢 𝑧𝑘 𝑣 (3.50)
𝑘=1
với các hệ số 𝑎𝑘 > 0 (ví dụ: 𝐾 𝑢, 𝑣 mô tả một tích vô hướng trong
không gian thuộc tính nào đó), là điều kiện

𝐾 𝑢, 𝑣 𝑔 𝑢 𝑔 𝑣 𝑑𝑢𝑑𝑣 ≥ 0 (3.51)
𝑐 𝑐

thỏa mãn với mọi hàm 𝑔 ∈ 𝐿2 𝐶 (C là một tập con (compact) của 𝑅 𝑑 ).

Trên thực tế ứng dụng, có hai loại hàm nhân đƣợc sử dụng rộng rãi nhất.
Đó là hàm đa thức (polynomial function) và hàm RBF (radial basis function)

 Hàm nhân đa thức: là hàm số trên không gian Rd có dạng


𝑝
𝐾 𝑢, 𝑣 = 𝑢. 𝑣 (3.52)
Với p = 2 và d = 2, chúng ta có thể xây dựng một cách tƣờng minh một
ánh xạ Φ từ R2 tới R3 nhƣ sau:

𝛷 ∶ 𝑅2 → 𝑅3 (3.53)

𝑢1 , 𝑢2 → 𝑢12 , 2𝑢1 𝑢2 , 𝑢22 (3.54)

và 𝐾 𝑢, 𝑣 chính là tích vô hƣớng của hai véc-tơ Φ(u) và Φ(v) trong R3


(lƣu ý rằng một hàm nhân có thể tƣơng ứng với nhiều ánh xạ). Với d > 2,
chúng ta có:

𝑑 2
2
𝑢. 𝑣 = 𝑢𝑖 𝑣𝑖
𝑖=1

𝑑 𝑑

= 𝑢𝑖 𝑢𝑗 𝑣𝑖 𝑣𝑗
𝑖=1 𝑗 =1
33

(𝑑,𝑑)

= (𝑢𝑖 𝑢𝑗 )(𝑣𝑖 𝑣𝑗 ) (3.55)


𝑖,𝑗 =(1,1)

Đây chính là tích vô hƣớng của hai véc-tơ đặc trƣng


𝑑, 𝑑
𝛷 𝑢 = 𝑢𝑖 𝑢𝑗 , (3.56)
𝑖, 𝑗 = 1,1
𝑑, 𝑑
𝛷 𝑣 = 𝑣𝑖 𝑣𝑗 , (3.57)
𝑖, 𝑗 = 1,1
𝑑+1
và số chiều của không gian đặc trƣng trong trƣờng hợp này là .
2
Một cách tổng quát hơn, số chiều của không gian đặc trƣng tƣơng ứng
đối với hàm nhân đa thức bậc p đồng nhất (homogeneous) và không đồng
nhất (inhomogeneous)

𝐾 𝑢, 𝑣 = 𝑢. 𝑣 𝑝 (3.58)
𝑝
𝐾 𝑢, 𝑣 = 𝑢. 𝑣 + 𝑐 (3.59)

𝑑+𝑝−1 𝑑+𝑝
Là và Số chiều này là rất lớn so với d khi giá trị
𝑝 𝑝
của p tăng.
 Hàm nhân RBF: là hàm số có dạng
2/2𝛿 2
𝐾 𝑢, 𝑣 = 𝑒 − 𝑢−𝑣
(3.60)
trong đó δ thƣờng đƣợc gọi là độ rộng (width) của hàm. Trong trƣờng
hợp này, số chiều của không gian đặc trƣng là vô tận, và do vậy năng lực của
các hàm tuyến tính cũng trở nên không giới hạn.

2.4. Phân lớp bằng mạng lan truyền ngƣợc (mạng Nơron)

Trong sinh học mạng nơ-ron (Neural Networks -NN) [7] là một tập hợp
các dây thần kinh kết nối với nhau. Ngày nay, thuật ngữ này còn dùng để chỉ
mạng nơ-ron nhân tạo (Artificial Neural Networks -ANN), là một tập hợp các
34

linh kiện điện tử hoặc chƣơng trình máy tính đƣợc thiết kế để mô hình hóa
cách thức bộ não thực hiện. NN tƣơng tự với bộ não sinh học ở hai khía cạnh:
Tri thức có đƣợc thông qua quá trình học tập và điểm kết nối các tế bào thần
kinh đƣợc gọi là khớp thần kinh đƣợc sử dụng để lƣu trữ tri thức.

Kiến trúc mạng nơ-ron đƣợc định nghĩa bởi số lớp(layer), số đơn vị trên
mỗi lớp và sự liên kết giữa các lớp nhƣ thế nào. Mạng nơ-ron nói chung có
thể đƣợc chia làm 2 loại: mạng truyền thẳng và mạng hồi quy.

Hình 2.5 - Mạng nơ-ron truyền thẳng nhiều lớp

Mạng truyền thẳng: Dòng dữ liệu giữa đơn vị đầu vào và đầu ra chỉ
truyền thẳng theo một hƣớng. Việc xử lý dữ liệu có thể mở rộng ra thành
nhiều lớp, nhƣng không có các liên kết phản hồi. Điều đó có nghĩa là không
tồn tại các liên kết mở rộng từ các đơn vị đầu ra tới các đơn vị đầu vào trong
cùng một lớp hay các lớp trƣớc đó.
35

Hình 2.6 - Mạng nơ- ron hồi quy

Mạng hồi quy: Khác với mạng truyền thẳng, thuộc tính động của mạng
hồi quy có đƣợc từ các liên kết ngƣợc. Mạng hồi quy đƣợc dùng trong các
trƣờng hợp khi có thông tin hiện thời đƣa vào mạng đó, nhƣng chuỗi đầu vào
là rất quan trọng, và chúng ta cần mạng nơ ron đó lƣu trữ một bản ghi của các
đầu vào trƣớc tiên và khuếch đại chúng với dữ liệu hiện thời đó để sinh ra câu
trả lời.

Khả năng học là điều thu hút nhiều quan tâm nhất tới mạng nơ-ron. Cho
trƣớc một bài toán cụ thể để giải quyết, và một lớp các hàm 𝑓, việc học có
nghĩa là sử dụng một tập các quan sát để tìm hàm 𝑓 ∗ ∈ 𝐹 giải đƣợc bài toán
một cách tốt nhất.

Việc đó đòi hỏi định nghĩa một hàm chi phí 𝐶: 𝐹 → 𝑅 sao cho, với lời
giải tối ƣu 𝑓 ∗, 𝐶(𝑓 ∗ ) ≤ 𝐶(𝑓)∀𝑓 ∈ 𝐹
Hàm chi phí 𝐶 là một khái niệm quan trọng trong học máy, là một phép
đo khoảng cách tới lời giải tối ƣu cho bài toán cần giải quyết. Các thuật toán
học tìm kiếm trong không gian lời giải để đƣợc một hàm có chi phí nhỏ nhất
có thể.

Có hai kiểu học máy cơ bản là học có giám sát và học không giám sát.
36

Học có giám sát là quá trình huấn luyện lặp đi lặp lại cho đến khi kết
quả đạt đƣợc giá trị mong muốn đã biết, mà để làm đƣợc điều đó phải điều
chỉnh dần mạng do tồn tại sự khác biệt giữa đầu ra thực tế và đầu ra mong
muốn. Sự khác biệt này đƣợc thuật toán học sử dụng để điều chỉnh các trọng
số trong mạng.Việc điều chỉnh các trọng số nhƣ vậy thƣờng đƣợc mô tả nhƣ
một bài toán xấp xỉ số - cho dữ liệu huấn luyện bao gồm các cặp (mẫu đầu
vào x, và một đích tƣơng ứng t), mục đích là tìm hàm f(x) thoả mãn tất cả các
mẫu học đầu vào.

Học không giám sát không sử dụng tri thức bên ngoài trong quá trình
học nên còn đƣợc gọi là mạng tự tổ chức. Mạng sẽ phải khám phá các đặc
trƣng, các điều chỉnh, các mối tƣơng quan, hay các lớp trong dữ liệu vào một
cách tự động. Trong thực tế, đối với phần lớn các biến thể của học không
giám sát, các đích trùng với đầu vào. Nói một cách khác, học không giám sát
thực hiện một công việc tƣơng tự nhƣ một mạng tự nhiên liên hợp, cô đọng
thông tin từ dữ liệu vào.
37

Chƣơng 3: ỨNG DỤNG BÀI TOÁN PHÂN LỚP DỮ LIỆU

THUÊ BAO RỜI MẠNG

Chƣơng này giới thiệu về bài toán phân lớp dữ liệu thuê bao rời mạng.
Quy trình thực nghiệm phân lớp dữ liệu thuê bao rời mạng với các thuật toán
cây quyết định C4.5, NB, SVM; Sau khi tiến hành thực nghiệm thực hiện
đánh giá các thuật toán. Các thực nghiệm đƣợc tiến hành trên ngôn ngữ R để
lựa chọn thuộc tính và phân lớp dữ liệu thuê bao rời mạng.

3.1. Bài toán phân lớp dữ liệu thuê bao rời mạng

3.1.1. Phát biểu bài toán

Đầu vào:

- Dữ liệu quản lý khách hàng khách hàng thuê bao

- Dữ liệu chi tiết sử dụng dịch vụ của thuê bao

- Dữ liệu hóa đơn của thuê bao

- Dữ liệu khuyến mại của thuê bao

- Dữ liệu thuê bao rời mạng

- Dữ liệu thuê bao cần cần dự báo

Đầu ra: Đƣa ra mô hình phân lớp dự báo, các chỉ số đánh giá mô hình,
các luật rút ra từ mô hình giúp đƣa ra dự báo khách hàng có thể rời mạng.

Ví dụ:

Đầu vào: Thông tin về khách hàng: Khách hàng đã hoạt động đƣợc 6
tháng, là thuê bao Postpaid, số cuộc gọi ngoại mạng trong tháng gần nhất tăng
cao, số lƣợng cuộc gọi nội mạng giảm dần, số lƣợng tin nhắn tháng gần nhất
tăng 50% so với các tháng trƣớc
38

Đầu ra: Dự đoán khách hàng có 60% khả năng rời mạng.

3.1.2. Khái niệm thuê bao rời mạng “churn”

Đặc điểm của thị trƣờng viễn thông những năm qua là biến đổi nhanh
chóng, tự do hóa thị trƣờng, cải tiến kỹ thuật, độ bão hòa và cạnh tranh khốc
liệt. Khách hàng có nhiều sự lựa chọn giữa các nhà khai thác di động, họ có
thể chuyển đổi giữa các nhà khai thác mà không có bất kỳ khó khăn nào và
không ngừng tìm kiếm nhà mạng có dịch vụ tốt hơn với chi phí thấp.

“Churn” [6] là một thuật ngữ đƣợc sử dụng trong viễn thông và nhiều
ngành công nghiệp khác nó đề cập đến quyết định di chuyển từ một nhà cung
cấp dịch vụ này đến một nhà cung cấp dịch vụ khác của khách hàng. “Churn”
có nguồn gốc từ change (sự thay đổi) và turn (chiều hƣớng). “Churn” [9] xảy
ra bởi nhiều lý do khác nhau nhƣ không hài lòng với các dịch vụ hay các hóa
đơn cao hoặc khách hàng thƣờng nhận đƣợc ƣu đãi hấp dẫn khi đăng ký với
một nhà cung cấp dịch vụ di động mới. Khi khách hàng rời mạng cũng ảnh
hƣởng đến những ngƣời quen của họ trong cùng một mạng, điều này làm gia
tăng khả năng rời mạng của các thuê bao này. Nếu coi việc rời mạng là một
hiện tƣợng thì việc rời mạng là sự kết hợp của thói quen sử dụng của ngƣời
dùng và của những hoạt động của ngƣời xung quanh. Tỷ lệ “churn” trung
bình trong một nhà cung cấp dịch vụ di động là khoảng 2% mỗi tháng
(Berson, Smith, và Thearling, 2000). Tỷ lệ rời mạng hàng năm ở Châu Âu là
25%, Mỹ 37% và Châu Á 48% (Mattersion, 2001).

Định nghĩa: Thuê bao rời mạng là việc khách hàng không sử dụng dịch
vụ mạng của nhà cung cấp dịch vụ viễn thông.

Việc mất khách hàng đồng nghĩa với việc mất doanh thu trong tƣơng lai
và mất chi phí đầu tƣ để có lại những khách hàng này. Trong khi đó, tìm kiếm
39

khách hàng mới trở nên khó khăn hơn bao giờ hết do sự cạnh tranh khốc liệt
và độ bão hòa của thị trƣờng thông tin di động. Chi phí đƣợc khách hàng mới
là cao hơn đáng kể so với việc giữ khách hàng hiện tại. Trong thực tế, chi phí
để phát triển một thuê bao mới lớn 5-10 lần chi phí để giữ chân khách hàng.
Đối mặt với thách thức này, các nhà khai thác cần phải tập trung vào việc làm
thế nào để ngăn chặn khách hàng rời mạng. Biết trƣớc khi nào khách hàng rời
mạng sẽ cho phép nhà quản lý có chiến lƣợc phòng tránh, và có nhiều cơ hội
hơn trong việc giữ chân khách hàng thành công. Dự đoán khi nào khách hàng
sẽ “churn” giúp tăng doanh thu và tiết kiệm đƣợc nguồn lực cho nhà mạng
[9,12,13].

3.1.3. Thu thập, chuẩn hóa dữ liệu

Luận văn thực hiện thu thập dữ liệu thông tin thuê bao tại nhà cung cấp
dịch vụ viễn thông Mobifone Phú Thọ. Thực hiện trích xuất từ kho dữ liệu
Mobifone Phú Thọ, thu thập các dữ liệu cần thiết cho mô hình “churn”. Các
thông tin về khách hàng cần thiết cho dự đoán thuê bao rời mạng gồm: dữ liệu
quản lý khách hàng khách hàng thuê bao, dữ liệu chi tiết sử dụng dịch vụ của
thuê bao, dữ liệu thanh toán và khuyến mại của thuê bao, dữ liệu thuê bao rời
mạng.

Dữ liệu thu thập đƣợc sau khi lọc và loại bỏ các thông tin không chính
xác, không cần thiết thì gồm các thông tin [11,14]:

- Dữ liệu quản lý khách hàng: tuổi, giới tính, loại thuê bao, bƣu cục thu,
thời gian hoạt động.

- Dữ liệu sử dụng dịch vụ: số dịch vụ sử dụng, số cuộc gọi nội mạng, số
cuộc gọi ngoại mạng, số cuộc gọi quốc tế, thời gian gọi nội mạng, thời gian
gọi ngoại mạng, thời gian gọi quốc tế, số lƣợng SMS.
40

- Dữ liệu thanh toán: tiền phát sinh gọi nội mạng, tiền phát sinh gọi
ngoại mạng, tiền phát sinh gọi quốc tế, tiền phát sinh SMS, tiền phát sinh
Data, tổng số tiền phát sinh, số tiền đƣợc khuyến mại, mức tiền thực phải
thanh toán.

Mô hình dƣới đây thể hiện mối quan hệ của cơ sở dữ liệu dự đoán thuê
bao rời mạng. Trong đó các bảng call_detail, zone, promotion, bill_data là các
bảng nguồn, các bảng cust_info, churn_list, cust_churn, cust_neighbor,
call_zone, bill, charges_real là các bảng đích, cuối cùng cust_file - một bảng
view là trung tâm của cơ sở dữ liệu này. Cust_file là bảng tạo ra bởi sự kết
hợp của các bảng đích hình thành lƣợc đồ hình sao xung quanh nó.

Hình 3.1 - Mô hình quan hệ các bảng dữ liệu

Trong đó:
41

- Bảng cust_info: là bảng mô tả tính năng đặc trƣng của khách


hàng nhƣ: tuổi tác, giới tính, nơi ở, nơi thanh toán, ngày hòa
mạng…

- Bảng churn_list: là bảng danh sách các thuê bao rời mạng.

- Bảng call_detail: là thông tin chi tiết các cuộc gọi.

- Bảng zone: là bảng xác định mã vùng các cuộc gọi đi.

- Bảng promotion: bảng lƣu trữ thông tin khuyến mại của thuê
bao.

- Bảng bill_data: bảng lƣu trữ thông tin cƣớc các cuộc gọi và dịch
vụ của khách hàng.

- Bảng cust_churn: là bảng kết hợp giữa bảng cust_info và


churn_list mô tả thông tin các khách hàng rời mạng.

- Bảng call_zone: là bảng kết hợp giữa bảng call_detail và zone,


đƣa ra các vùng gọi đi của từng thuê bao.

- Bảng bill: là bảng kết hợp giữa bảng bill_data và promotion, đƣa
ra thông tin hóa đơn sử dụng tất cả các dịch vụ của thuê bao đã
đƣợc trừ đi khuyến mại.

- Bảng charges_real: là bảng lƣu thông cƣớc thực tế của thuê bao
chƣa trƣớc khi trừ khuyến mại.

“Churn” là một sự kiện quan hệ nhân quả do đó khi thực hiện chiết xuất
dữ liệu phải nắm bắt đƣợc những thay đổi trong các đặc điểm và hành vi của
khách hàng. Vai trò của một mô hình dự đoán là phát hiện những hành vi thay
đổi đáng chú ý dẫn đến rời mạng. Để thực hiện phân loại cần hai giai đoạn,
đầu tiên là giai đoạn phân tích, mà từ giai đoạn này có thể đƣa ra đƣợc những
42

đặc trƣng cho mỗi khách hàng. Giai đoạn còn lại đƣợc sử dụng để dán nhãn
phân biệt khách hàng rời mạng hoặc không rời mạng.

Do đặc trƣng của thuê bao trả sau là khách hàng thực hiện thanh toán
vào đầu tháng tiếp theo, nên thời gian đƣợc thiết lập để phân tích trong luận
văn này là 3 tháng và thời gian để quan sát là 1 tháng. Tất cả khách hàng đang
hoạt động vào đầu tháng quan sát sẽ nằm trong tập dữ liệu huấn luyện. Thời
gian quan sát đƣợc sử dụng để ghi nhãn khách hàng “churn” hoặc “no-churn”.
Những thuê bao rời mạng trong giai đoạn này đƣợc dán nhãn là “churn” và
những thuê bao không rời mạng sau giai đoạn này đƣợc dán nhãn là “no-
churn”. Sau thời gian quan sát một khách hàng “no-churn” có thể tiếp tục hoạt
động và sử dụng dịch vụ hoặc sau đó trở thành “churn”.

Hình 3.2 - Các giai đoạn của mô hình dự đoán thuê bao rời mạng

3.1.4. Lựa chọn thuộc tính

Lựa chọn thuộc tính liên quan đến quá trình lựa chọn một tập con của
các thuộc tính liên quan từ một tập các thuộc tính ban đầu. Lựa chọn thuộc
tính làm giảm số lƣợng các thuộc tính cho đầu vào các mô hình nhằm làm
43

giảm chi phí thu thập dữ liệu và chi phí tính toán. Hơn nữa, nó không những
mang lại kết quả chính xác hơn mà còn nhỏ gọn và dễ hiểu hơn."Lựa chọn
thuộc tính, như là một bước tiền xử lý cho quá trình học máy, rất hiệu quả
trong việc giảm chiều, loại bỏ dữ liệu không phù hợp, tăng độ chính xác, và
cải thiện toàn diện kết quả" (Kira & Rendell, 1992). Lựa chọn thuộc tính bao
gồm các lựa chọn riêng lẻ hoặc nhóm nhỏ. Lựa chọn thuộc tính riêng lẻ xếp
các thuộc tính riêng biệt theo một số liệu cụ thể mà lựa chọn nhóm có tính
đến sự tƣơng tác và mối tƣơng quan giữa các thuộc tính.

Trong bài toán phân lớp, lựa chọn thuộc tính nhằm mục đích chọn tập
các thuộc tính có khả năng phân biệt cao. Nói cách khác là chọn tính thuộc
tính có khả năng phân biệt các mẫu thuộc lớp khác nhau. Do thông tin của
nhãn là sẵn có nên sự phù hợp của các thộc tính đƣợc đánh giá cao.

Lựa chọn thuộc tính chủ yếu ảnh hƣởng đến giai đoạn đào tạo của bài
toán phân lớp [11,16]. Sau khi tạo ra các thuộc tính, thay vì trực tiếp huấn
luyện dữ liệu với toàn bộ các thuộc tính, ta thực hiện lựa chọn tập các tính
năng và sau đó huấn luyện dữ liệu với các tính năng đã đƣợc chọn. Các tính
năng đƣợc chọn có thể là độc lập với các thuật toán học (nhƣ filter models)
hoặc có thể lặp đi lặp lại sử dụng các thuật toán để đánh giá chất lƣợng các
tính năng lựa chọn (nhƣ wrapper models). Các tính năng đƣợc lựa chọn cuối
cùng đƣợc sử dụng cho giai đoạn phân lớp và dự báo.
44

Hình 3.3 - Lựa chọn thuộc tính trong phân lớp dữ liệu
Từ dữ liệu thu thập đƣợc và với thời gian phân tích là 3 tháng cho các
thuê bao tôi thu thập đƣợc 101 thuộc tính (chi tiết mô tả tại phụ lục 1 luận
văn)[11]. Trong 101 thuộc tính này có 5 thuộc tính nằm trong dữ liệu quản lý
khách hàng, 62 thuộc tính của thông tin chi tiết sử dụng dịch vụ của thuê bao
và 34 thuộc tính thuộc dữ liệu hóa đơn và khuyến mại của thuê bao.

Số lƣợng thuộc tính

Info: 5
Service: 62
Bill&Promo: 34

Hình 3.4 - Số lượng thuộc tính được thu thập


45

Từ các thuộc tính thu thập đƣợc ban đầu thực hiện lựa chọn và đánh giá
từng thộc tính, thực hiện loại bỏ các thuộc tính có độ chính xác thấp và các
thuộc tính có tỉ lệ lỗi ta thu đƣợc các thuộc tính lựa chọn (chi tiết phụ lục 2).

3.2. Lựa chọn phƣơng pháp, công cụ

3.2.1. Ngôn ngữ R

Phân tích số liệu và biểu đồ thƣờng đƣợc tiến hành bằng các phần mềm
thông dụng nhƣ SAS, SPSS, Stata, Statistica, và S-Plus. Đây là những phần
mềm đƣợc các công ty phần mềm phát triển và giới thiệu trên thị trƣờng
khoảng ba thập niên qua, và đã đƣợc các trƣờng đại học, các trung tâm nghiên
cứu và công ty trên toàn thế giới sử dụng cho giảng dạy và nghiên cứu.
Nhƣng vì chi phí để sử dụng các phần mềm này tuơng đối đắt tiền, một số
trƣờng đại học ở các nƣớc đang phát triển không có khả năng tài chính để sử
dụng chúng một cách lâu dài. Do đó, các nhà nghiên cứu thống kê trên thế
giới đã hợp tác với nhau để phát triển một phần mềm mới, với chủ trƣơng mã
nguồn mở, sao cho tất cả các thành viên trong ngành thống kê học và toán học
trên thế giới có thể sử dụng một cách thống nhất và hoàn toàn miễn phí.
Năm 1996, trong một bài báo quan trọng về tính toán thống kê, hai nhà
thống kê học Ross Ihaka và Robert Gentleman thuộc Trƣờng đại học
Auckland, New Zealand phát hoạ một ngôn ngữ mới cho phân tích thống kê
mà họ đặt tên là R. Sáng kiến này đƣợc rất nhiều nhà thống kê học trên thế
giới tán thành và tham gia vào việc phát triển R.
Cho đến nay, qua chƣa đầy 10 năm phát triển, càng ngày càng có nhiều
nhà thống kê học, toán học, nghiên cứu trong mọi lĩnh vực đã chuyển sang sử
dụng R để phân tích dữ liệu khoa học. Trên toàn cầu, đã có một mạng lƣới
hơn một triệu ngƣời sử dụng R, và con số này đang tăng rất nhanh. Có thể nói
46

trong vòng 10 năm nữa, vai trò của các phần mềm thống kê thƣơng mại sẽ
không còn lớn nhƣ trong thời gian qua nữa. Vậy R là gì? Nói một cách ngắn
gọn, R là một phần mề sử dụng cho phân tích thống kê và vẽ biểu đồ. Về bản
chất, R là ngôn ngữ máy tính đa năng, có thể sử dụng cho nhiều mục tiêu khác
nhau, từ tính toán đơn giản, toán học giải trí (recreational mathematics), tính
toán ma trận (matrix), đến các phân tích thống kê phức tạp. Vì là một ngôn
ngữ, cho nên ngƣời ta có thể sử dụng R để phát triển thành các phần mềm
chuyên môn.
Để sử dụng R, việc đầu tiên là chúng ta phải cài đặt R trong máy tính của
mình. Để làm việc này, ta phải truy nhập vào mạng và vào website có tên là
“Comprehensive R Archive Network” (CRAN) sau đây:
http://cran.R-project.org
Khi đã tải R xuống máy tính, bƣớc kế tiếp là cài đặt (set-up) vào máy
tính. Để làm việc này, chúng ta chỉ đơn giản nhấn chuột vào tài liệu trên và
làm theo hƣớng dẫn cách cài đặt trên màn hình. Đây là một bƣớc rất đơn giản,
chỉ cần 1 phút là việc cài đặt R có thể hoàn tất. Tài liệu cần tải về, tùy theo
phiên bản, nhƣng thƣờng có tên bắt đầu bằng mẫu tự R và số phiên bản
(version). Tài liệu này khoảng 26 MB, và địa chỉ cụ thể để tải là:
http://cran.r-project.org/bin/windows/base/R-2.2.2-win32.exe
47

Hình 3.5 – Giao diện làm việc trên ngôn ngữ R

3.2.2. Phƣơng pháp phân lớp

Luận văn lựa chọn thuật toán cây quyết định C4.5, NB, SVM để thử
nghiệm với bài toán phân lớp dữ liệu thuê bao rời mạng.

Đánh giá các phƣơng pháp phân lớp lựa chọn:

a. phƣơng pháp phân lớp cây quyết định

- Dễ hiểu không đòi hỏi chuẩn hóa dữ liệu nhƣ các thuật toán khác, có
thể xử lý lƣợng dữ liệu lớn thuê bao trong thời gian ngắn.

- Phƣơng pháp sử dụng giiải thuật tham lam chia để trị, đệ quy từ trên
xuống.

- Kết quả rễ ràng nhận thấy, có thể kiểm tra lại đơn giản bằng thống kê.

b. Phƣơng pháp phân lớp Naive bayes


48

Ƣu điểm:

- Dễ cài đặt thuật toán.

- Thời gian thi hành nhanh, tƣơng tự nhƣ phƣơng pháp cây quyết định.

- Đạt kết quả tốt trong phần lớn các trƣờng hợp thử nghiệm dữ liệu.

Nhƣợc điểm.

- Giả thiết về tính độc lập điều kiện các thuộc tính làm giảm độ chính
xác thuật toán.

c. Phƣơng pháp phân lớp SVM

Ƣu điểm:

- Hiệu quả với dữ liệu thuê bao số chiều lớn, giải quyết nhanh.

- Hiệu suất tổng hợp, tính toán tốt.

Nhƣợc điểm:

- Việc lựa chọn thuộc tính cho từng lớp là vấn đề quan trọng nó quyết
định đến hiệu quả phân lớp.

3.2.3. Đánh giá hiệu năng

Không có một thuật toán nào là ƣu việt hơn so với thuật toán khác trong
tất cả các lĩnh vực. Một số hoạt động tốt trong các lĩnh vực này, trong khi một
số khác thực hiện tốt hơn ở lĩnh vực khác. Trong luận văn này, các thuật toán
học đƣợc áp dụng để xây dựng các lớp. Hiệu năng của các lớp sẽ đƣợc so
sánh hay nói cách khác, các hiệu năng của các thuật toán khác nhau trên dữ
liệu sẽ đƣợc so sánh. Vậy, chỉ số "tốt" của một lớp là gì? Các tính chất mong
muốn là chính xác, tổng quát và mức độ tin cậy của dự báo. Ma trận nhầm lẫn
đƣa ra bốn kết quả khi một lớp đƣợc áp dụng trên một tập các trƣờng hợp.
49

Đƣợc phân lớp bởi thuật toán


Lớp 𝐶𝑖 Thuộc Không thuộc
(yes) (no)
Phân lớp Thuộc TPi FNi
thực sự đúng Không thuộc FPi TNi

Bảng 1 - Ma trận nhầm lẫn

Trong đó:
- TPi:Số lƣợng các ví dụ thuộc lớp 𝐶𝑖 đƣợc phân loại chính xác
vào lớp 𝐶𝑖 .

- FPi:: Số lƣợng các ví dụ không thuộc lớp 𝐶𝑖 bị phân loại nhầm


vào lớp 𝐶𝑖 .

- TNi : Số lƣợng các ví dụ không thuộc lớp 𝐶𝑖 đƣợc phân loại


chính xác.

- FNi: Số lƣợng các ví dụ thuộc lớp 𝐶𝑖 bị phân loại nhầm vào các
lớp khác 𝐶𝑖

Khi đó độ chính xác Precision đối với lớp 𝐶𝑖


TP i
Precision Ci = (3.1)
TP i + FP i

Độ hồi tƣởng Recall đối với lớp 𝐶𝑖


TPi
Recall Ci = (3.2)
TPi + FNi
Độ đo F1 đƣợc tính bằng công thức sau:
2xPxR
Độ đo F = (3.3)
(P + R)
50

3.3. Thực nghiệm phân lớp trên ngôn ngữ R

Quy trình thực nghiệm

Hình 3.6 – Quy trình thực nghiệm bài toán phân lớp dữ liệu thuê bao rời mạng

Thực hiện làm việc với dữ liệu thực nghiệm thu thập đƣợc lƣu trữ tại thƣ
mục D:\churn\(các tệp excel). Các bƣớc thực hiện nhƣ sau:

Bƣớc 1: Nạp dữ liệu vào vùng làm việc

- Dịch chuyển con trỏ tới thƣ mục làm việc:

+ setwd("D:/Churn")

- Thực hiện làm việc với các dữ liệu trong tệp

+ path=paste(getwd(),"/Data/",thisData,".class.csv",sep="");
+ Y=read.csv(path,header=TRUE,sep=",")
+ path=paste(getwd(),"/Data/",thisData,".data.csv",sep="");
+ X1 <- read.csv(path,header=TRUE,sep = "
51

Bƣớc 2: Xử lý dữ liệu thu thập lựa chọn thuộc tính

Từ kho dữ liệu thực hiện lựa lựa chọn các thuộc tính có ảnh hƣởng tới
quá trình phân lớp nhiều nhất theo biến mục tiêu. Lựa chọn phƣơng pháp
InfoGain thực hiện đánh giá từng thuộc tính theo độ đo lƣợng thông tin và sau
đó xếp hạng và lựa chọn các thuộc tính có thứ hạng cao (chọn 20 thuộc tính
cao nhất).
weights=information.gain(churn~., data)
> subGain=cutoff.k(weights,20)
- Thu đƣợc tập con gồm 20 thuộc tính

Bƣớc 3: Thực hiện tạo 2 bộ dữ liệu phân lớp

- Bộ dữ liệu trainData: dùng huấn luyến ( tỷ lệ 70%)

- Bộ dữ liệu testData: dùng kiểm thử (tỷ lệ 30%)


> ind <- sample(2, nrow(dat), replace=TRUE, prob=c(0.7, 0.3))
> trainData <- dat[ind==1,]
> testData <- dat[ind==2,]
Bƣớc 4. Thực hiện phân lớp sử dụng các thuật toán lựa chọn

3.3.1. Phân lớp dữ liệu sử dụng cây quyết định C4.5

- Lựa chọn thuật toán cây quyết định C4.5 phân lớp ta có kết quả sau:
52

Hình 3-7 mô hình phân lớp cây quyết định

- Chi tiết nút nhánh thứ 15

Hình 3-8 Chi tiết nút nhánh thứ 15 trong phân lớp cây quyết định

+ Phần sẫm màu (no) thuê bao không rời mạng

+ Phần sáng màu (yes) khả năng thuê bao rời mạng
53

- Kết quả phân lớp:

Đƣợc phân lớp bởi thuật toán


Phân lớp Thuộc Không thuộc
(yes) (no)
Thuộc 146 78
Phân lớp thực (yes)
sự đúng Không thuộc 10 1433
(no)

Bảng 2 – Kết quả mô hình phân lớp sử dụng C 4.5

- Tỷ lệ phân lớp đúng: 94.43%

- Tỷ lệ phân lớp sai: 5.57%

Đánh giá hiệu năng:

Phƣơng pháp phân lớp Precision Recall F-score


Thuật toán Cây quyết định 93.58 65.17 76.83

Bảng 3 – Độ đo hiệu năng thuật toán Cây quyết định

Kết quả thực nghiệm phân lớp sử dụng thuật toán Cây quyết định có độ
đo là: độ chính xác (P-Precision) đạt 93,58%, độ đo hồi tƣởng (R-Recall) đạt
65.17%, độ đo F đạt 76.83%.

3.3.2. Phân lớp dữ liệu sử dụng phƣơng pháp Naive Bayes

Lựa chon thuật toán NB thực hiện thực nghiệm với dữ liệu test:
attach(churnTest)
X=churnTest[,-20]
Y=churnTest$churn
model <- naiveBayes(churn~., data = churnTest)
pred <- predict(model, X)
table(pred,Y)

Ta Thu đƣợc kết quả:


54

Kết quả phân lớp:

Đƣợc phân lớp bởi thuật toán


Phân lớp Thuộc Không thuộc
(yes) (no)
Thuộc 118 59
Phân lớp thực (yes)
sự đúng Không thuộc 106 1384
(no)
Bảng 4 – Kết quả mô hình phân lớp sử dụng NB

- Tỷ lệ phân lớp đúng: 90.1%

- Tỷ lệ phân lớp sai: 9.9%

Đánh giá hiệu năng:

Phƣơng pháp phân lớp Precision Recall F-score


Thuật toán NB 52.67 66.67 58.84

Bảng 5. – Độ đo hiệu năng thuật toán NB

Kết quả thực nghiệm phân lớp sử dụng thuật toán Cây quyết định có độ
đo là: độ chính xác (P-Precision) đạt 52.67%, độ đo hồi tƣởng (R-Recall) đạt
66.67 %, độ đo F đạt 58.84%.
55

3.3.3. Phân lớp dữ liệu bằng Support Vector Machines

- Thực hiện thực nghiệm với dữ liệu test với thuật toán SVM:
> attach(churnTest)
> X=churnTrain[,-20]
> Y=churnTrain$churn
> msvm=svm(churn~.,data=churnTest)
> summary(msvm)

Ta thu đƣợc kết quả:

Hình 3-9 Kết quả phân lớp dữ liệu bằng SVM


- Kết quả phân lớp:

Đƣợc phân lớp bởi thuật toán


Phân lớp Thuộc Không thuộc
(yes) (no)
Thuộc 32 0
Phân lớp thực (yes)
sự đúng Không thuộc 192 1443
(no)

Bảng 6 – Kết quả mô hình phân lớp sử dụng SVM


56

- Tỷ lệ phân lớp đúng: 88.48 %

- Tỷ lệ phân lớp sai: 11.52%

Đánh giá hiệu năng:

Phƣơng pháp phân lớp Precision Recall F-score


Thuật toán SVM 14,28 100 24,99

Bảng 7. – Độ đo hiệu năng thuật toán SVM


Kết quả thực nghiệm phân lớp sử dụng thuật toán Cây quyết định có độ
đo là: độ chính xác (P-Precision) đạt 14,28 %, độ đo hồi tƣởng (R-Recall) đạt
100%, độ đo F đạt 24,99%.

3.3. Đánh giá kết quả

Do bài toán phân lớp dữ liệu thuê bao di động cần tìm ra lớp thuê bao rời
mạng, bởi vậy khi xem xét các mô hình cần ƣu tiên xem mức độ tin cậy của
lớp CHURN, hiệu năng của các thuật toán đối với lớp thuê bao rời mạng thể
hiện nhƣ sau:

- Tổng hợp hiệu năng các phƣơng pháp phân lớp

TT Phƣơng pháp phân lớp Precision Recall F-score


1 Thuật toán Cây quyết định 93.58 65.17 76.83
2 Thuật toán NB 52.67 66.67 58.84
3 Thuật toán SVM 14.28 100 24.99

Bảng 8. – Tổng hợp đánh giá hiệu năng các phương pháp phân lớp
57

120

100

80
Thuật toán Cây quyết định
60
Thuật toán NB
40
Thuật toán SVM
20

0
Precision Recall F-score

Hình 3.10 – Hiệu năng các thuật toán với lớp thuê bao rời mạng

Từ kết quả thực nghiệm, ta thấy mô hình phân lớp xây dựng từ thuật toán
cây quyết định C4.5 cho kết quả phân lớp tốt nhất.

Về thời gian xây dựng mô hình thuật toán cây quyết định C4.5 có thời
gian xây dựng mô hình là 0.1s, tiếp đó là thuật toán NB có thời gian xây dựng
nhanh nhất 0.19s, thuật toán SVM có thời gian xây dựng mô hình là 2,8s.
58

KẾT LUẬN

Trong giai đoạn thị trƣờng viễn thông đã đi vào giai đoạn bão hòa nhƣ
hiện nay, việc thuê bao rời mạng không những ảnh hƣởng đến doanh thu của
nhà mạng mà còn kéo theo hàng loạt hiệu ứng khác kèm theo. Bởi vậy dự
đoán thuê bao rời mạng để đƣa ra một chiến lƣợc kinh doanh hợp lý nhằm
ngăn khách hàng rời mạng là điều vô cùng cần thiết đối với các nhà
mạng.Trong luận văn này tôi đã nghiên cứu, tìm hiểu và phân tích dữ liệu
thuê bao di động và đạt đƣợc kết quả sau đây.

Nội dung đã đạt đƣợc

Đƣa ra cái nhìn tổng quan về thuê bao rời mạng, khái niệm thuê bao rời
mạng, các hình thức rời mạng của thuê bao.

Trình bày đƣợc lý thuyết khai phá dữ liệu, các ứng dụng khai phá dữ liệu
di động, bài toán phân lớp và dự báo.

Tìm hiểu các phƣơng pháp phân lớp dữ liệu.

Sau khi tìm hiểu và nghiên cứu lý thuyết phân lớp dữ liệu,thực nghiệm
phân lớp dữ liệu di động sử dụng các thuật toán cây quyết định C4.5, NB,
SVM và đánh giá kết quả thực nghiệm.

Hƣớng tiếp cận trong tƣơng lai

Do thời gian có hạn cùng với thuê bao trả trƣớc và thuê bao trả sau có
nhiều điểm khác biệt nhƣ hình thức thanh toán, giá cƣớc sử dụng hay các thuê
bao trả trƣớc có thể rời mạng một thời gian dài trƣớc khi nhà mạng nhận ra...
nên trong luận văn, bài toán phân lớp dữ liệu thuê bao rời mạng mới thực hiện
phân tích trên dữ liệu thuê bao trả sau mà chƣa thể áp dụng cho thuê bao trả
trƣớc. Vì vậy xây dựng bài toán phân lớp thuê bao rời mạng cho thuê bao trả
59

trƣớc là hƣớng nghiên cứu tiếp theo trong tƣơng lai và tôi tiếp tiếp tục nghiên
cứu phát triển sản phẩn thành phần mền dự báo ứng dụng với nhiều loại dữ
liệu khác nhau và để tích hợp trên các hệ thống khác.
60

TÀI LIỆU THAM KHẢO

Tài liệu tiếng Việt

[1]. Hà Quang Thụy, Phan Xuân Hiếu, Đoàn Sơn, Nguyễn Trí Thành, Nguyễn
Thu Trang, Nguyễn Cẩm Tú, Khai phá dữ liệu Web, NXB Giáo Dục, Hà Nội,
2009.

[2]. Nguyễn Đức Dũng, Lê Anh Cƣờng, Phân Xuân Hiếu, Lƣơng Chi Mai, Lê
Hải Sơn, Học máy - Machine Learning, Viện Công nghệ thông tin – Viện Hàn
lâm Khoa học và Công nghệ Việt Nam, 2015.

[3]. PGS -TS. Ngô Quốc Tạo, Bài giảng Khai phá dữ liệu - Đại học Công
nghệ thông tin và Truyền thông - Đại Học Thái Nguyên.

Tài liệu tiếng Anh

[4]. Jiawei Han University of Illinois at Urbana-Champaign, Micheline


Kamber, Jian Pei Simon Fraser University, Data Mining: Concepts and
Techniques - Third Edition, 2012.

[5]. K. H. Liao and H. E. Chueh, Applying fuzzy data mining to telecom


churn management - Intelligent Computing and Information Science, 2011.
[6]. Pushpa and G.Shobha, Social Network Analysis for Churn Prediction in
Telecom data, 2012.
[7]. J. O. Daramola, O. O Oladipupo, and G. A. Musa, A data mining process
framework for churn management in mobile telecommunication industry.
[8]. E. Shaaban, Y. Helmy, A. Khedr, and M. Nasr, A proposed churn
prediction model - International Journal of Engineering Research and
Applications.

[9]. Georges D. Olle Olle and Shuqin Cai, A Hybrid Churn Prediction Model
in Mobile Telecommunication Industry, 2014.
61

[10]. Jiliang Tang, Salem Alelyani and Huan Liu, Feature Selection for
Classification: A Review, 2013.

[11]. Huong Xuan Nguyen, Customer Churn Prediction for the Icelandic
Mobile Telephony Market, 2011.

[12]. Clement Kirui, Li Hong, Wilson Cheruiyot and Hillary Kirui, Predicting
Customer Churn in Mobile Telephony IndustryUsing Probabilistic Classifiers
in Data Mining, 2013.

[13]. Vladislav Lazarov, Marius Capota, Churn Prediction.

[14]. Ali Daud, Muhammad Akram Shaikh, and Faqir Muhammad, Pattern
Mining in Telecom Data.

[15]. Sen Wu, Naidong Kang, Liu Yang, Fraudulent Behavior Forecast in
Telecom IndustryBased on Data Mining Technology.

[16]. J. Burez, D. Van den Poel, Handling class imbalance in customer churn
prediction, 2009.
62

PHỤ LỤC 1

Danh sách các thuộc tính thu thập đƣợc

TT Thuộc tính Mô tả
1. AGE Thông tin số tuổi của khách hàng
2. TYPE_ID Loại thuê bao
3. GENDER Giới tính
Số ngày hoạt động của thuê bao
4. NUM_DATEACTIVE
kê từ khi băt đầu
5. POSTCODE Bƣu cục thu của thuê bao
Số loại dịch vụ sử dụng lớn nhât
6. USE_SERVICE_MAX
trong 3 tháng quan sát
Tháng sử dụng dịch vụ nhỏ nhât
7. USE SERVICE MIN MONTH
trong 3 tháng quan sát
Tháng sử dụng dịch vụ lớn nhât
8. USE_SERVICE_MAX_MONTH
trong 3 tháng quan sát
Tỉ lệ sử dụng dịch vụ trong tháng
9. USE_SERVICE_RATIO 1 quan sát đầu tiên so với tổng số
lƣợng dịch vụ trong 3 tháng
Tỉ lệ sử dụng dịch vụ trong tháng
10. USE_SERVICE_RATIO2 quan sát thứ 2 so với tổng số
lƣợng dịch vụ trong 3 tháng
Tỉ lệ sử dụng dịch vụ trong tháng
11. USE_SERVICE_RATIO3 quan sát thứ 3 so với tổng số
lƣợng dịch vụ trong 3 tháng
12. VOI_INNET_RA1 Tỷ lệ số giây gọi nội mạng của
63

thuê bao trong tháng quan sát


đầu tiên so với tổng số giây gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số giây gọi nội mạng của
thuê bao trong tháng quan sát
13. VOI INNET RATIO2
thứ 2 so với tổng số giây gọi
trong tháng
Tỷ lệ số giây gọi ngoại mạng của
thuê bao trong tháng quan sát
14. VOI_OUTNET_RA3
thứ 3 so với tổng số giây gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số giây gọi ngoại mạng
trong tháng quan sát đầu tiên của
15. VOI OUTNET RATIO 1
thuê bao so với tổng số giây gọi
trong tháng
Tỷ lệ số giây gọi nƣớc ngoài của
thuê bao trong tháng quan sát
16. VOI_ABROAD_RA2
thứ 2 so với tổng số giây gọi
nƣớc ngoài của 3 tháng quan sát
Tỷ lệ số giây gọi ngƣớc ngoài
của thuê bao trong tháng quan
17. VOI_ABROAD_RATIO 1
sát đầu tiên so với tổng số giây
gọi trong tháng
Tỷ lệ số cuộc gọi nội mạng của
18. VOI_INNET_FREQ_RA 1 thuê bao trong tháng quan sát
đầu tiên so với tổng số cuộc gọi
64

ngoại mạng của 3 tháng quan sát


Tỷ lệ số cuộc gọi nội mạng của
19. VOI_INNET_FREQ_RATIO1 thuê bao so với tổng số cuộc gọi
trong tháng quan sát đầu tiên
Tỷ lệ số cuộc gọi ngoại mạng
của thuê bao so với tổng số cuộc
20. VOI_OUTNET_FREQ_RA1
gọi ngoại mạng của 3 tháng quan
sát
Tỷ lệ số cuộc gọi ngoại mạng
của thuê bao trong tháng quan
21. VOI_OUTNET_FREQ_RATIO1 sát đầu tiên so với tổng số cuộc
gọi trong tháng

Tỷ lệ số cuộc gọi nƣớc ngoài của


thuê bao trong tháng quan sát
22. VOI_ABROAD_FREQ_RA1
đầu tiên so với tổng số cuộc gọi
nƣớc ngoài của 3 tháng quan sát
Tỷ lệ số cuộc gọi ngƣớc ngoài
23. VOI_ABROAD_FREQ_RATIO1 của thuê bao so với tổng số cuộc
gọi trong tháng
Tỷ lệ số tin nhắn của thuê bao
24. SMS RA1 tháng quan sát đầu tiên so với
tổng số tin nhắn trong 3 tháng
Tỷ lệ số giây gọi nội mạng của
25. VOI INNET RA2 thuê bao trong tháng quan sát
thứ 2 so với tổng số giây gọi
65

ngoại mạng của 3 tháng quan sát


Tỷ lệ số giây gọi nội mạng của
thuê bao trong tháng quan sát
26.
VOI_INNET_RATIO2 thứ 2 so với tổng số giây gọi
trong tháng
Tỷ lệ số giây gọi ngoại mạng của
thuê bao trong tháng quan sát
27.
VOI_OUTNET_RA2 thứ 2 so với tổng số giây gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số giây gọi ngoại mạng của
thuê bao trong tháng quan sát
28.
VOI_OUTNET_RATIO2 thứ 2 so với tổng số giây gọi
trong tháng
Tỷ lệ số giây gọi nƣớc ngoài của
thuê bao trong tháng quan sát
29.
VOI_ABROAD_RA2 thứ 2 so với tổng số giây gọi
nƣớc ngoài của 3 tháng quan sát
Tỷ lệ số giây gọi ngƣớc ngoài
của thuê bao trong tháng quan
30.
VOI_ABROAD_RATIO2 sát thứ 2 so với tổng số giây gọi
trong tháng
Tỷ lệ số cuộc gọi nội mạng của
thuê bao trong tháng quan sát
31.
VOI_INNET_FREQ_RA2 thứ 2 so với tổng số cuộc gọi
ngoại mạng của 3 tháng quan sát

32. Tỷ lệ số cuộc gọi nội mạng của


VOI_INNET_FREQ_RATIO2
66

thuê bao trong tháng quan sát


thứ 2 so với tổng số cuộc gọi
trong tháng
Tỷ lệ số cuộc gọi ngoại mạng
của thuê bao trong tháng quan
33.
VOI_OUTNET_FREQ_RA2 sát thứ 2 so với tổng số cuộc gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số cuộc gọi ngoại mạng
của thuê bao trong tháng quan
34.
VOI_OUTNET_FREQ_RATIO2 sát thứ 2 so với tổng số cuộc gọi
trong tháng
Tỷ lệ số cuộc gọi nƣớc ngoài của
thuê bao trong tháng quan sát
35.
VOI_ABROAD_FREQ_RA2 thứ 2 so với tổng số cuộc gọi
nƣớc ngoài của 3 tháng quan sát
Tỷ lệ số cuộc gọi ngƣớc ngoài
của thuê bao trong tháng quan
36.
VOI_ABROAD_FREQ_RATIO2 sát thứ 2 so với tổng số cuộc gọi

trong tháng
Tỷ lệ số tin nhắn của thuê bao
37. tháng quan sát thứ 2 so với tổng
SMS_RA2
số tin nhắn trong 3 tháng
Tỷ lệ số giây gọi nội mạng của
thuê bao trong tháng quan sát
38.
VOI_INNET_RA3 thứ 3 so với tổng số giây gọi
ngoại mạng của 3 tháng quan sát
67

Tỷ lệ số giây gọi nội mạng của


thuê bao trong tháng quan sát
39.
VOI_INNET_RATIO3 thứ 3 so với tổng số giây gọi
trong tháng
Tỷ lệ số giây gọi ngoại mạng của
thuê bao trong tháng quan sát
40.
VOI_OUTNET_RA3 thứ 3 so với tổng số giây gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số giây gọi ngoại mạng của
thuê bao trong tháng quan sát
41.
VOI_OUTNET_RATIO3 thứ 3 so với tổng số giây gọi
trong tháng
Tỷ lệ số giây gọi nƣớc ngoài của
thuê bao trong tháng quan sát
42.
VOI_ABROAD_RA3 thứ 3 so với tổng số giây gọi
nƣớc ngoài của 3 tháng quan sát
Tỷ lệ số giây gọi ngƣớc ngoài
của thuê bao trong tháng quan
43.
VOI_ABROAD_RATIO3 sát thứ 3 so với tổng số giây gọi
trong tháng
Tỷ lệ số cuộc gọi nội mạng của
thuê bao trong tháng quan sát
44.
VOI_INNET_FREQ_RA3 thứ 3 so với tổng số cuộc gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số cuộc gọi nội mạng của
45.
VOI_INNET_FREQ_RATIO3 thuê bao trong tháng quan sát
68

thứ 3 so với tổng số cuộc gọi


trong tháng
Tỷ lệ số cuộc gọi ngoại mạng
của thuê bao trong tháng quan
46.
VOI_OUTNET_FREQ_RA3 sát thứ 3 so với tổng số cuộc gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số cuộc gọi ngoại mạng
của thuê bao trong tháng quan
47.
VOI_OUTNET_FREQ_RATIO3 sát thứ 3 so với tổng số cuộc gọi
trong tháng
Tỷ lệ số cuộc gọi nƣớc ngoài của
thuê bao trong tháng quan sát
48.
VOI_ABROAD_FREQ_RA3 thứ 3 so với tổng số cuộc gọi
nƣớc ngoài của 3 tháng quan sát
Tỷ lệ số cuộc gọi ngƣớc ngoài
của thuê bao trong tháng quan
49.
VOI_ABROAD_FREQ_RATIO3 sát thứ 3 so với tổng số cuộc gọi
trong tháng quan sát thứ 3
Tỷ lệ số tin nhắn của thuê bao
50. trong tháng quan sát thứ 3 so với
SMS_RA3
tổng số tin nhắn trong 3 tháng
Tháng có số lƣợng giây gọi nội
51. VOI_INNET_MAXM
mạng lớn nhất
Tháng có số lƣợng cuộc gọi nội
52. VOI_INNET_FREQ_MAXM
mạng lớn nhất
53. Tháng có số lƣợng giây gọi
VOI_OUTNET_MAXM
69

ngoại mạng lớn nhất


Tháng có số lƣợng cuộc gọi
54. VOI_OUTET_FREQ_MAXM
ngoại mạng lớn
Tháng có số lƣợng giây gọi quốc
55. VOI_ABROAD_MAXM
tế lớn nhất
Tháng có số lƣợng cuộc gọi quốc
56. VOI_ABROAD_FREQ_MAXM
tế lớn nhất
Tháng có số lƣợng giây gọi nội
57. VOI_INNET_MINM
mạng nhỏ nhất
Tháng có số lƣợng cuộc gọi nội
58. VOI_INNET_FREQ_MINM
mạng nhỏ nhất
Tháng có số lƣợng giây gọi
59.
VOI_OUTNET_MINM ngoại mạng nhỏ nhất
Tháng có số lƣợng cuộc gọi
60.
VOI_OUTET_FREQ_MINM ngoại mạng nhỏ nhất
Tháng có số lƣợng giây gọi quốc
61. VOI_ABROAD_MINM
tế nhỏ nhất
Tháng có số lƣợng cuộc gọi quốc
62. VOI_ABROAD_FREQ_MINM
tế nhỏ nhất
63. SMS_MAXM Tháng có số lƣợng SMS lớn nhất
64. SMS_MINM Tháng có số lƣợng SMS bé nhất
Tháng có dung lƣợng data lớn
65. DATA_MAXM
nhất
Tháng có dung lƣợng data nhỏ
66. DATA_MINM
nhất
67. VOI_MAXM Tháng có số giây (tất cả các cuộc
70

gọi) tối đa
68. VOI_FREQ_MAXM Tháng có số cuộc gọi lớn nhất
Tháng có số giây (tất cả các cuộc
69. VOI_MINM
gọi) nhỏ nhất
70. VOI_FREQ_MINM Tháng có số cuộc gọi nhỏ nhất
Tỷ lệ mức tiền trả các cuộc gọi
nội mạng so với mức cƣớc phát
71.
TCHARGE_INNET_RATIO1 sinh trong tháng quan sát đầu
tiên
Tỷ lệ mức tiền trả các cuộc gọi
ngoại mạng so với mức cƣớc
72.
TCHARGE_OUTNET_RATIO1 phát sinh trong tháng quan sát
đầu tiên
Tỷ lệ mức tiền trả các cuộc gọi
quốc tế so với mức cƣớc phát
73.
TCHARGE_ABROAD_RATIO1 sinh trong tháng quan sát đầu
tiên
Tỷ lệ mức tiền trả SMS so với
74. mức cƣớc phát sinh trong tháng
TCHARGE_SMS_RATIO1
quan sát đầu tiên
Tỷ lệ mức tiền trả Data so với
75. mức cƣớc phát sinh trong tháng
TCHARGE_DATA_RATIO1
quan sát đầu tiên
Tỷ lệ mức tiền trả các cuộc gọi
76. nội mạng so với mức cƣớc phát
TCHARGE_INNET_RATIO2
sinh trong tháng quan sát thứ 2
71

Tỷ lệ mức tiền trả các cuộc gọi


ngoại mạng so với mức cƣớc
77.
TCHARGE_OUTNET_RATIO2 phát sinh trong tháng quan sát
thứ 2
Tỷ lệ mức tiền trả các cuộc gọi
78. quốc tế so với mức cƣớc phát
TCHARGE_ABROAD_RATIO2
sinh trong tháng quan sát thứ 2
Tỷ lệ mức tiền trả SMS so với
79. mức cƣớc phát sinh trong tháng
TCHARGE_SMS_RATIO2
quan sát thứ 2
Tỷ lệ mức tiền trả Data so với
80. mức cƣớc phát sinh trong tháng
TCHARGE_DATA_RATIO2
quan sát thứ 2
Tỷ lệ mức tiền trả các cuộc gọi
81. nội mạng so với mức cƣớc phát
TCHARGE_INNET_RATIO3
sinh trong tháng quan sát thứ 3
Tỷ lệ mức tiền trả các cuộc gọi
ngoại mạng so với mức cƣớc
82.
TCHARGE_OUTNET_RATIO3 phát sinh trong tháng quan sát
thứ 3
Tỷ lệ mức tiền trả các cuộc gọi
83. quốc tế so với mức cƣớc phát
TCHARGE_ABROAD_RATIO3
sinh trong tháng quan sát thứ 3
Tỷ lệ mức tiền trả SMS so với
84. mức cƣớc phát sinh trong tháng
TCHARGE_SMS_RATIO3
quan sát thứ 3
72

Tỷ lệ mức tiền trả Data so với


85. mức cƣớc phát sinh trong tháng
TCHARGE_DATA_RATIO3
quan sát thứ 3
Tháng có mức cƣớc phát sinh
86.
TCHARGE_INNET_MAXM gọi nội mạng cao nhất
Tháng có mức cƣớc phát sinh
87.
TCHARGE_OUTNET_MAXM gọi ngoại mạng cao nhất
Tháng có mức cƣớc phát sinh
88.
TCHARGE_ABROAD_MAXM gọi quốc tế cao nhất
Tháng có mức cƣớc phát sinh
89. TCHARGE_SMS_MAXM
SMS cao nhất
Tháng có mức cƣớc phát sinh
90. TCHARGE_DATA_MAXM
Data cao nhất
Tháng có mức cƣớc phát sinh
91.
TCHARGE_INNET_MINM gọi nội mạng thấp nhất
Tháng có mức cƣớc phát sinh
92.
TCHARGE_OUTNET_MINM gọi ngoại mạng thấp nhất
Tháng có mức cƣớc phát sinh
93.
TCHARGE_ABROAD_MINM gọi quốc tế thấp nhất
Tháng có mức cƣớc phát sinh
94. TCHARGE_SMS_MINM
SMS thấp nhất
Tháng có mức cƣớc phát sinh
95. TCHARGE_DATA_MINM
Data thấp nhất
Tháng có mức cƣớc phát sinh
96. TCHARGE_MAXM
cao nhất
97. TCHARGE_MINM Tháng có mức cƣớc phát sinh
73

thấp nhất
Tháng có tiền khuyến mại cao
98. PROMO_MAXM
nhất
Tháng có tiền cƣớc khuyến mại
99. PROMO_MINM
thấp nhất
Tháng có hóa đơn thanh toán cao
100. BILL_MAXM
nhất
Tháng có hóa đơn thanh toán
101. BILL_MINM
thấp nhất
74

PHỤ LỤC 2
Danh sách các thuộc tính đƣợc lựa chọn

TT Thuộc tính Mô tả

Tỷ lệ số giây gọi ngoại mạng


trong tháng quan sát đầu tiên của
1.
VOI_OUTNET_RATIO1
thuê bao so với tổng số giây gọi
trong tháng
Số ngày hoạt động của thuê bao
2.
NUM_DATEACTIVE kể từ khi bắt đầu
Tỷ lệ số tin nhắn của thuê bao
3. tháng quan sát thứ 2 so với tổng
SMS_RA2
số tin nhắn trong 3 tháng
4. Loại thuê bao
TYPE_ID
Tỷ lệ số tin nhắn của thuê bao
5. tháng quan sát đầu tiên so với
SMS_RA1
tổng số tin nhắn trong 3 tháng
Tỷ lệ mức tiền trả Data so với
6. mức cƣớc phát sinh trong tháng
TCHARGE_DATA_RATIO3
quan sát thứ 3
Tỷ lệ số giây gọi ngƣớc ngoài
của thuê bao trong tháng quan sát
7.
VOI_ABROAD_RATIO1 đầu tiên so với tổng số giây gọi
trong tháng
Tỷ lệ mức tiền trả Data so với
8.
TCHARGE_DATA_RATIO2 mức cƣớc phát sinh trong tháng
75

quan sát thứ 2


Tỷ lệ số giây gọi nội mạng của
thuê bao trong tháng quan sát
9.
VOI_INNET_RA1 đầu tiên so với tổng số giây gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số cuộc gọi nội mạng của
thuê bao trong tháng quan sát
10.
VOI_INNET_FREQ_RA1 đầu tiên so với tổng số cuộc gọi
ngoại mạng của 3 tháng quan sát
Tỷ lệ số giây gọi ngoại mạng của
thuê bao trong tháng quan sát thứ
11.
VOI_OUTNET_RA3 3 so với tổng số giây gọi ngoại
mạng của 3 tháng quan sát
Tỷ lệ mức tiền trả Data so với
12. mức cƣớc phát sinh trong tháng
TCHARGE_DATA_RATIO1
quan sát đầu tiên
Tỷ lệ mức tiền trả các cuộc gọi
13. quốc tế so với mức cƣớc phát
TCHARGE_ABROAD_RATIO2
sinh trong tháng quan sát thứ 2
Tỷ lệ mức cƣớc phát sinh trong
tháng đầu tiên quan sát so với
14.
TCHARGE_RATIO1 tổng mức cƣớc phát sinh trong 3
tháng quan sát
Tháng có dung lƣợng data nhỏ
15.
DATA_MINM
nhất
16. Tỷ lệ mức tiền trả các cuộc gọi
TCHARGE_INNET_RATIO2
76

nội mạng so với mức cƣớc phát


sinh trong tháng quan sát thứ 2
Tháng có mức cƣớc phát sinh gọi
17.
TCHARGE_INNET_MINM nội mạng thấp nhất
Tỷ lệ mức tiền trả SMS so với
18. mức cƣớc phát sinh trong tháng
TCHARGE_SMS_RATIO1
quan sát đầu tiên
Tháng có mức cƣớc phát sinh
19.
TCHARGE_DATA_MINM Data thấp nhất
Tháng có tiền cƣớc khuyến mại
20.
PROMO_MINM thấp nhất

You might also like