Tải bản đầy đủ (.docx) (52 trang)

Ứng dụng khai phá dữ liệu để phân loại khách hàng viễn thông

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (909.59 KB, 52 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài: “Ứng dụng khai phá dữ liệu để phân loại khách hàng viễn thông “

Giảng viên hướng dẫn: ThS. NGUYỄN QUỲNH CHI
Sinh viên thực hiện: LÊ TUẤN KHANG
Lớp

: D10HTTT2

Khoá : 2010-2015
Hệ

: Chính Quy

Hà Nội, tháng 11 /2014


NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIỂM
(Của giáo viên hướng dẫn)

……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………


……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………
Điểm: ……………………………..(bằng chữ: ………………………………)
Đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp.
………………, ngày

tháng

năm 2014

GIÁO VIÊN HƯỚNG DẪN

ThS. Nguyễn Quỳnh Chi


NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIỂM
(Của giáo viên phản biện)

……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………

……………
Điểm: ……………………………..(bằng chữ: ………………………………)
Đồng ý/ Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp.
………………, ngày

tháng

năm 2014

GIÁO VIÊN PHẢN BIỆN


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

LỜI CẢM ƠN
Em xin chân thành cảm ơn các thầy giáo, cô giáo trong khoa Công nghệ thông tin –
Học viện công nghệ bưu chính viễn thông, đã tận tâm giảng dạy các kiến thức
trong 4 năm học qua cùng với sự động viên từ gia đình và bạn bè và người thân
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc đến cô giáo Nguyễn Quỳnh Chi, người
đã tận tình hướng dẫn em thực hiện đồ án này. Tuy nhiên trong quá trình nghiên
cứu, thực hiện không tránh khỏi những thiếu sót, rất mong sự đóng góp ý kiến từ
tất cả thầy cô, bạn bè để đồ án có thể phát triển và hoàn thiện hơn.
Hà nội,tháng 11,năm 2014.
Người thực hiện.
Lê Tuấn Khang

Trang 4


SVTH: Lê Tuấn Khang, Lớp D10HTTT2


MỤC LỤC

Trang 5


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

LỜI MỞ ĐẦU
Thông tin là một nguồn tri thức quan trọng và dồi dào của nhân loại, đặc biệt trong
ngành công nghệ thông tin, tri thức chiếm một vị trí vô cùng quan trọng. Tuy nhiên với
sự phát triển như vũ bão của công nghệ cũng như các ngành khác trong thời đại ngày nay,
số lượng tài nguyên số tăng lên một cách chóng mặt, thông tin trở nên đa dạng và phong
phú hơn trước rất nhiều.Việc nắm bắt thông tin được coi là cơ sở của mọi hoạt động kinh
doanh, sản xuất.Với sự tăng trưởng vượt bậc của dữ liệu trong mọi mặt của cuộc sống đã
làm này sinh và thúc đẩy sự phát triển của các phương pháp thu thập, lưu trữ, phân tích…
không chỉ bằng các hình thức thông thường như thống kê, liệu kê hay phép đếm… mà đòi
hỏi một cách thức xử lý thông minh mà hiệu quả hơn. Ngoài ra các thông tin có được
trong nguồn dữ liệu không phải lúc nào cũng ở dạng có sẵn hoặc nhìn thấy được.Vấn đề
trích xuất các thông tin hữu ích (nhưng mới và ở dạng tiềm ẩn) trong nguồn dữ liệu lớn
và đồ sộ trở thành một bài toán không chỉ đối với ngành công nghệ thông tin mà còn là
của tất cả các ngành khác.Khai phá dữ liệu (data mining) cho phép giải quyết vấn đề trên
bằng nhiều phương pháp khác nhau, đồng thời đưa ra những tiêu chuẩn nhằm kiểm định
kết quả, mang tính ứng dụng cao trong thực tiễn.
Một trong những ngành nghề cần đến ứng dụng của khai phá dữ liệu đó là ngành
viễn thông .Để đảm bảo yêu cầu của công việc, các doanh nghiệp (công ty) viễn thông
cần lưu trữ một khối lượng dữ liệu khổng lồ, bao gồm các thông tin cá nhân của khách
hàng, các thông tin về dịch vụ, tình trạng hệ thống,…Ngoài ra trong quá trình cạnh tranh,
các doanh nghiệp viễn thông không chỉ nắm rõ các thông tin có sẵn về khách hàng của
mình mà còn phải phỏng đoán xu hướng, hành vi, thói quen của khách hàng nhằm đưa ra

các thay đổi về chính sách, dịch vụ hay phản hồi nhằm đảm bảo doanh thu cũng như
đường lối của công ty .Các thông tin này rất quan trọng nhưng thường không có sẵn trong
các thông tin dạng thô, rất khó để sử dụng các phương pháp như liệt kê, tìm kiếm thông
thường. Ứng dụng khai phá dữ liệu nhằm phát hiện các thông tin ẩn chứa trong khối dữ
liệu khổng lồ và đưa ra những phỏng đoán (prediction) sẽ hỗ trợ quá trình ra quyết định
của các cấp lãnh đạo cũng như góp phần cải thiện, nâng cao hiệu quả của quá trình kinh
doanh của các của các doanh nghiệp (công ty) viễn thông.
Trong đề tài tốt nghiệp “Ứng dụng khai phá dữ liệu để phân loại khách hàng
viễn thông”, người viết sẽ tìm hiểu về khai phá dữ liệu và ứng dụng của nó trong thực
tiễn, đó là bài toán phân loại thông tin khách hàng viễn thông.

Mục tiêu nghiên cứu.

Trang 6


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Xây dựng chương trình thử nghiệm có thể áp dụng trong thực tế, giúp các doanh
nghiệp viễn thông phỏng đoán thói quen trả cước của khách hàng. Từ đó hỗ trợ việc ra
quyết định cũng như nâng cao hiệu quả của quá trình kinh doanh.

Đối tượng, phạm vi nghiên cứu.
Tìm hiểu về khai phá dữ liệu, thuật toán SVM, để phân loại khách hàng viễn thông
dựa trên dữ liệu đã có.
• Phạm vi nghiên cứu: Trong khuôn khổ kiến thức đã học cũng như nghiên cứu.


Phương pháp nghiên cứu.
Nghiên cứu các vấn đề cơ bản của khai khá dữ liệu, quá trình học máy, thuật toán máy

Vector hỗ trợ(SVM) trong khai phá dữ liệu và áp dụng thuật toán máy vector hỗ trợ vào
việc xây dựng chương trình phân loại thói quen trả cước dịch vụ của khách hàng doanh
nghiệp viễn thông. Từ đó đánh giá độ chính xác và khả năng ứng dụng của chương trình
trong thực tế.

Bố cục luận văn.
Chương 1: Tổng quan về bài toán phân loại khách hàng viễn thông.
Chương 2: Xây dựng thuật toán máy Vector hỗ trợ (Support Vector Machine)
cho bài toán phân loại.
Chương 3: Xây dựng chương trình thử nghiệm và đánh giá cho bài toán phân loại
khách hàng viễn thông.

Chương 1: Tổng quan về bài toán phân loại khách
hàng viễn thông.
Trang 7


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Đặt vấn đề (Bài toán cần giải quyết).

1.1.

Luận văn tìm hiểu và giải quyết một bài toán xuất phát từ trong thực tế, đó là
thói quen trả phí dịch vụ của khách hàng trong các công ty(doanh nghiệp) viễn thông.Cụ
thể đó là vấn đề trả phí dịch vụ không đúng hạn của các cá nhân hoặc tập thể. Thông
thường khi một khách hàng kí hợp đồng sử dụng dịch vụ của một công ty viễn thông (ví
dụ như dịch vụ điện thoại, internet, fax… ), khách hàng (có thể là cá nhân hoặc tập thể)
phải có trách nhiệm trả phí dịch vụ cho bên cung cấp dịch vụ trong khoảng thời gian đã
kí kết trong hợp đồng. Tuy nhiên vì nhiều nguyên nhân khác nhau, có thể xuất phát từ

phía khách hàng hoặc phía công ty viễn thông. Khách hàng không trả phí dịch vụ đúng
hạn cho bên cung cấp dịch vụ như đã thỏa thuận trong hợp đồng, điều này gây ảnh hưởng
không nhỏ tới các công ty viễn thông. Việc không thu được phí dịch vụ đúng hạngây ảnh
hưởng xấu tới nhiều mặt của các doanh nghiệp viễn thông, bao gồm doanh thu, quá trình
kiểm toán, trả lương cho nhân viên… Mặc dù tình trạng xảy trên là điều không ai mong
muốn, tuy nhiên khi nó xảy ra thì các công ty viễn thông cần tìm cách giải quyết vấn
đề.Trong các giải pháp để giải quyết tình trạng này thì ngoài việc thống kê các khách
hàng có thói quen trả cước muộn, việc phỏng đoán, phân loại các khách hàng có thói
quen trả phí dịch vụ đúng hạn cũng quan trọng không kém. Việc phỏng đoán, phân loại
thói quen trả cước của khách hàng có nhiều ý nghĩa đối với các công ty viễn thông bởi
khi phỏng đoán, phân loại các khách hàng có thói quen trả cước tốt hay xấu không chỉ hỗ
trợ giải quyết được vấn đề đã nêu ở trên, mà còn giúp các công ty viễn thông có cái nhìn
chính xác hơn về các đối tượng khách hàng. Từ đó giúp các công ty viễn thông đề ra
chính sách đối với từng đối tượng khách hàng, hoặc hỗ trợ việc ra quyết định cũng như
nâng cao hiệu quả của quá trình kinh doanh.
Có thể cụ thể hóa bài toán cần giải quyết trong đề tài này như sau.
Phân loại, phỏng đoán thói quen trả cước dịch vụ của khách hàng (đúng hạn hay
không đúng hạn) dựa vào những dữ liệu viễn thông sẵn có (sẽ đề cập trong phần
sau).
• Phỏng đoán tháng trả cước không đúng hạn của các khách hàng trả cước không
đúng hạn.


1.2.

Dữ liệu đầu vào để giải quyết bài toán.
Các công ty viễn thông lưu trữ một khối lượng dữ liệu khổng lồ, bao gồm:
• Các thông tin cá nhân của khách hàng
• Các thông tin về dịch vụ của khách hàng
Trang 8



SVTH: Lê Tuấn Khang, Lớp D10HTTT2



Các thông tin về quá trình trả cước dịch vụ của khách hàng .

Đây chính là dữ liệu được sử dụng để giải quyết bài toán phỏng đoán thói quen trả
cước của khách hàng viễm thông. Trong nội dung của đồ án này, dữ liệu được thu thập từ
một trung tâm kinh doanh dịch vụ viễn thông, dữ liệu được lưu ở định dạng file excel,
bao gồm 3 loại thông tin như đã nêu ở trên. Các thông tin được lưu trữ trong vòng một
năm (2013), các dữ liệu này đã không còn giá trị sử dụng và được chia sẻ miễn phí để hỗ
trợ quá trình tiến hành thực hiện đồ án. Tuy nhiên vẫn có một vài thông tin bị loại bỏ do
yêu cầu bảo mật của khách hàng.
1.3.

Các nghiên cứu trước đây.

Vấn đề phân loại khách hàng viễn thông, phỏng đoán thói quen trả cước của
khách hàng đã được tiến hành đối với nhiều công ty viễn thông lớn trên thế giới, tuy
nhiên ở Việt Nam thì vấn đề này mới được chú ý trong thời gian gần đây do sự phát triển
và cạnh tranh của các công ty viễn thông trong nước.
Ở góc độ giải quyết vấn đề thì bài toán mới chỉ được giải quyết theo những
phương pháp truyền thống, bằng các biện pháp thống kê , kế toán chứ chưa áp dụng công
nghệ khai phá dữ liệu.
Một vài đề tài trong nước (bổ sung phần chú thích) đã có áp dụng giải pháp
khai phá dữ liệu tuy nhiên hiệu quả chưa được cao, khó có khả năng áp dụng trong thực
tiễn.Mục tiêu chính của đề tài này đó là ứng dụng có thể áp dụng vào trong thực tiễn,
điều mà các đề tài trước đây chưa làm được.

1.4.

Phương pháp tiếp cận.

Như đã nói ở phần đặt vấn đề, bài toán ở đây là phỏng đoán, phân loại khách
hàng viễn thông do đó phương pháp tiếp cận ở trong đề tài này đó là dùng ứng dụng của
khai phá dữ liệu để giải quyết bài toán. Trong đó, kĩ thuật khai phá dữ liệu được sử dụng
đó là phương pháp phân loại (classification)[1]. Các bước của quá trình khai phá dữ liệu
gồm 2 quá trình:
1.4.1. Quá trình huấn luyện mô hình phân loại.
• Tiền xử lý dữ liệu: Dữ liệu thô (các thông tin về khách hàng, dịch vụ, trả cước) thu

thập được không thể tiến hành khai phá được ngay mà phải được xử lý và tinh
chỉnh trước tiên, ta sẽ tiến hành một vài bước nhỏ hơn trong quá trình tiền xử lý
dữ liệu nhằm đưa tập dữ liệu thô trở thành tập dữ liệu mới ở dạng có thể khai phá,
áp dụng thuật toán được.

Trang 9


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Xây dựng mô hình phân loại: Sau quá trình tiền xử lý dữ liệu,ta tiến hành xây
dựng mô hình từ tập dữ liệu đã qua tiền xử lý dựa vào thuật toán phân loại SVM.
Kết quả của quá trình này là một bộ mô hình đã qua huấn luyện, có thể áp dụng
vào quá trình phân loại
• Đánh giá hiệu quả của mô hình phân loại: Sau quá trình xây dựng mô hình phân
loại, không phải kết quả thu được đã có thể sử dụng ngay bởi ngay trong quá trình
tiền xử lý cũng như huấn luyện mô hình, ta thường gặp phải nhiều vấn đề như
nhiễu dữ liệu (noise) hay dữ liệu quá vừa (overfiting).Bộ mô hình thu được có thể

không chính xác hoặc không hiệu quả khi tiến hành phân loại . Do đó phải tiến
hành đánh giá hiệu quả của mô hình để lựa chọn mô hình tốt nhất


Có thể tóm gọn quá trình huấn luyện mô hình phân loại như trong hình dưới.

Hình 1.4.1. Mô tả các bước của quá trình huấn luyện mô hình phân loại.
1.4.2.


Quá trình phân loại dữ liệudựa vào bộ mô hình phân loại.

Tiền xử lý dữ liệu: Dữ liệu dùng để phân loại trước khi tiến hành phân loại cũng
cần kiểm tra, xử lý, đưa về đúng định dạng có thể tiến hành phân loại.
• Phân loại dựa vào bộ mô hình:Bước thứ hai đó là sử dụng mô hình tối ưu đã qua
huấn luyện (1.4.1) để tiến hành phân loại bộ dữ liệu dùng để phân loại, phỏng
đoán thói quen trả cước của khách hàng, tức là giải quyết mục tiêu của bài
toán.Kết quả thu được đó là bộ dữ liệu ban đầu đã qua phân loại và được gán nhãn
phân loại.
• Đánh giá hiệu quả của quá trình phân loại: Sau khi tiến hành phân loại, ta tiến
hành đánh giá hiệu quả của quá trình phân loại.Dữ liệu phân loại thu được cần
phải được đánh giá dựa trên các tiêu chí khác nhau để đánh giá được mức độ hiệu
Trang 10


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

quả của quá trình tiền xử lý dữ liệu và khai phá, nếu thông tin thu được chưa đạt
như yêu cầu mong muốn thì quá trình khai phá tri thức có thể được lặp lại hoặc
quá trình tiền xử lý và khai phá phải được kiểm tra, đánh giá lại.

Ta tóm gọn quá trình phân loại dữ liệu như trong hình dưới .

Hình 1.4.2. Mô tả các bước của quá trình phân loại dữ liệu.
1.5.

Một số vấn đề cần giải quyết.
Về bộ dữ liệu: Bộ dữ liệu thô ban đầu không thể tiến hành khai phá, phân loại
được ngay do các dữ liệu này vốn không đồng nhất, rời rạc, thiếu thuộc tính…. Do
đó phải tiến hành quá trình tiền xử lý, tuy nhiên tiền xử lý thế nào để dữ liệu được
đưa về dạng chuẩn, có thể sử dụng được, đạt hiệu quả tốt khi tiên hành phân loại là
một vấn đề cần giải quyết trong đồ án.
Về phương pháp phân loại: Phương pháp phân loại dựa trên thuật toán SVM, tuy
vậy vấn đề làm thế nào để xây dựng được bộ phân loại SVM đạt hiệu quả tốt, kết
quả thu được có độ chính xác cao,có thể sử dụng được trong thực tế là một yêu
cầu quan trọng của đồ án.
Về quá trình đánh giá độ chính xác: Hiệu quả của quá trình phân loại được thể
hiện qua các độ đo chính xác, tuy nhiên ta phải lựa chọn độ đo nào phù hợp với
bài toán, phản ánh đúng hiệu quả của quá trình phân loại .

1.6.

Kết luận.
Trang 11


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Như vậy trong chương 1, đồ án đã trình bày những vấn đề như sau:
Phát biểu bài toán phân loại, phỏng đoán thói quen trả phí dịch vụ của các khách
hàng sử dụng dịch vụ của các công ty viễn thông.

• Trình bày phương pháp tiếp cận đó là áp dụng khai phá dữ liệu để giải quyết bài
toán trên.
• Nêu một số khó khăn trong việc giải quyết bài toán.


Trong chương tiếp theo, ta sẽ trình bày khái niệm bài toán phân loại phương pháp giải
quyết bài toán dựa vào phương pháp phân loại SVM,

Trang 12


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Chương 2: Xây dựng thuật toán máy Vector hỗ
trợ (Support Vector Machine) cho bài toán phân
loại.
2.1. Bài toán phân loại.
2.1.1. Định nghĩa bài toán phân loại.
Phân loại dữ liệu là một quá trình gồm hai bước, trong bước đầu tiên, một bộ phân
loại được xây dựng mô tả các luật, quy định của một tập các lớp dữ liệu [1][2]. Đây được
gọi là bước học máy(học mô hình), trong đó một thuật toán phân loại sẽ xây dựng một bộ
phân loại bằng cách phân tích hoặc “học” từ tập dữ liệu huấn luyện (được tạo thành bởi
các bộ dữ liệu và các lớp liên quan). Một bộ dữ liệu, , được đại diện bởi một vector thuộc
tính n-chiều, , trong đó mỗi được gọi là một bản ghi(hay một mẫu), được gọi là một
thuộc tính(attribute) , và giá trị nó là được gọi là giá trị của một thuộc tính(value). Ta
chọn một thuộc tính và gán nó , được gọi là lớp nhãn (class).

class

value


Hình 2.1.1.a. Mô tả các thuộc tính, lớp và giá trị

Trang 13


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Mục tiêu của bướchọc máy(học mô hình) là tìm ra một mô hình(thông qua thuật
toán học máy)thể hiện mối liên hệ, các luật giữa các thuộc tính và lớp . Mối liên hệ (hay
các luật) này được mô tả nhưng một hàm . Tức là tìm hàm sao cho:

Tập giá trị
Có thể mô tả bằng hình ảnh của quá trình học máy như sau

Hình 2.1.1.b. Mô tả quá trình học máy
Sau khi thu được mô hình, chúng ta sẽ tiến hành quá trình kiểm tra để xác định độ chính
xác của mô hình. Một tập kiểm tra bao gồm các thuộc tính và các giá trị của nó, tuy
nhiên ta chưa biết giá trị của lớp (y = ?). Ta sẽ sử dụng mô hình vừa tìm được để xác
định giá trị của thuộc tính lớp nhãn Y (xác định giá trị y) dựa vào hàm vừa tìm được.
Tóm lại ta đã có , ta đã có , ta sẽ xác định được các giá trị (y) của lớp .

Hình 2.1.1.c. Giá trị của lớp Class(y=?) chưa biết.

Trang 14


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Thông thường, tập dữ liệu có sẵn đang xét được phân của thành một tập dùng để huấn

luyện mô hình và một tập để kiểm tra và được sử dụng để xác định độ đúng đắn của mô
hình đó.
Để đánh giá được độ chính xác, tập kiểm tra phải biết được các giá trị thực tế của lớp
phân loại. Quá trình phân loại sẽ thu được các giá trị phân loại dự đoán. Các giá trị phân
loại thực tế và giá trị phân loại dự đoán là cơ sở để đánh giá hiệu quả, ta sẽ đề cập đến
trong phần dưới.
Có thể mô tả bằng hình ảnh của quá trình kiểm tra như sau.

Hình 2.1.1.d: Mô tả quá trình kiểm tra
Tổng quát hóa:
Cho sẵn một tập huấn luyện ta cần một phân loại mà có thể ánh xạ một đối tượng
vào nhãn phân loại của nó. Ví dụ nhưng trong đề tài thì là một biểu diễn nào đó cho thói
quen trả cước của khách hàng thì là “trả đúng hạn” hoặc “không đúng hạn”.
Mô hình tổng quát của quá trình phân loại như sau:

Trang 15


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Hình 2.1.1.e: Mô hình tổng quan của quá trình phân loại.

2.1.2. Đánh giá hiệu quả của mô hình phân loại.
2.1.2.1. Các độ đo đánh giá hiệu quả.
Để đánh giá hiệu quả của một mô hình, chúng ta cần xác định độ đo tính hiệu quả
của mô hình.
Độ đo thường được sử dụng rộng rãi đó là độ chính xác accuracy, là đơn vị độ
chính xác tổng thể của mô hình .
Cách tính độ chính xác accuracy như sau:
Tức là độ chính xácaccuracy sẽ được tính bằng cách lấy số giá trị phỏng đoán

đúng chia cho tổng số giá trị phỏng đoán. Tương tự ta cũng có độ đo lỗi phân loại được
tính theo công thức.

Tuy nhiên vấn đề gặp phải với độ chính xác accuracyđó là nó chỉ thể hiện mức độ phỏng
đoán đúng chứ không thể hiện mức độ phân loại chính xác, do đó ta sẽ xây dựng thêm 2
công thức đánh giá độ chính xác khác đó là precision và recall.

Trang 16


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Ta sử dụng ma trận lôn xôn (Confusion Matrix) [3] để đo hiệu quả của việc phân loại như
sau:

Lớp

Lớp dự đoán
Thuộc

Lớp thực tế

Không thuộc

Thuộc
Không thuộc

Trong đó:
TPi:(True positive) Số các giá trị thuộc lớp ci được phân loại chính xác vào lớp ci.Kí hiệu
là a.

FPi:(False positive) Số các giá trị không thuộc lớp cibị phân loại nhầm vào lớp ci.Kí hiệu
là b.
FNi: (False negative)Số các giá trị thuộc lớp ci bị phân loại nhầm (vào các lớp khác ci).
Kí hiệu là c.
TNi: (True negative) Số các giá trị không thuộc lớp ciđược phân loại (chính xác). Kí hiệu
là d.
Theo ma trận trên thì độ chính xác được tính theo công thức.

Ta xây dựng công thức cho độ chính xác precison,đo độ chính xác của một lớp cụ thể đã
được phỏng đoán, thể hiện mối tương quan giữa True posivetive và false positive.

Độ đo recall,là đơn vị đo khả năng phỏng đoán của một mô hình để chọn ra các trường
hợp của một lớp nào đó từ tập dữ liệu, thể hiện mối tương quan giữa True positive và
False positive.

2.1.2.2. Các phương pháp đánh giá số bản ghi hiệu quả.
Ngoài các chỉ số đánh giá, mức độ hiệu quả của mô hình còn được kiểm tra bằng
số lượng bản ghi và các cách phân chia bản ghi, mẫu khác nhau. Bởi với mỗi số lượng

Trang 17


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

bản ghi khác nhau, ta thu được độ chính xác khác nhau.Với số lượng bản ghi đủ lớn thì
kết quả chạy trong mô hình huấn luyện mới đủ khách quan để tin cậy. Ta sẽ áp dụng hai
phương pháp chính trong đề tài này.
• Phương pháp giữ lại một phần (holdout): Dùng 2/3 số bản ghi của tập dữ liệu cho
việc huấn luyện, 1/3 còn lại cho việc kiểm tra, việc chọn 2/3 lượng bản ghi nào là
ngẫu nhiên. Ngoài ra ta có thể thay đổi tỉ lệ phân chia , không nhất thiết phải là

theo tỉ lệ 2/3.
• Phương pháp xác nhận chéo (cross-validation): Theo phương pháp này, tập dữ
liệu được phân (ngẫu nhiên) thành N phần; ta sử dụng N-1 phần để huấn luyện
(training) và một phần còn lại để thử nghiệm (testing); quá trình này lặp lại cho
đến khi tất cả các phần đều được thử nghiệm. Kết quả cuối cùng là trung bình
cộng của cả N phần.Phương pháp houldoutlà trường hợp đặc biệt với N = 1. Trong
đồ án này chúng ta sử dụng N =10 để đảm bảo tính khách quan.

2.2. Thuật toán máy vector hỗ trợ SVM (Support vector machine).
2.2.1.Khái niệm và cơ sở của thuật toán SVM dựa trên bài toán phân loại
tuyến tính.
Phương pháp máy véc tơ hỗ trợ SVM (Support Vector Machine) ra đời từ lý
thuyết học thống kê do Vapnik và Chervonekis xây dựng năm 1995 [7], và có nhiều tiềm
năng phát triển về mặt lý thuyết cũng như ứng dụng trong thực tế.Phương pháp SVM có
khả năng phân loại khá tốt đối với bài toán phân lớp cũng như trong nhiều ứng dụng thực
tế.SVM là một phương pháp phân loại xuất phát từ lý thuyết thống kê, dựa trên nguyên
tắc tối thiểu rủi ro cấu trúc. SVM sẽ cố gắng tìm cách phân loại dữ liệu sao cho lỗi xảy ra
trên tập kiểm tra là thấp nhất.
Đầu tiên xét trường hợp đơn giản nhất đó là phân loại hai lớp tuyến tính. Tức là
phân loại hai lớp dựa trên phương trình bậc nhất.Tập dữ liệu D được định nghĩa bởi ,
trong đó là tập dữ liệu huấn luyện với lớp phân loại có giá trị là , có thể nhận 2 giá trị là
+1 và -1 (hay ). Đây được coi như bài toán phân loại hai lớp.

Trang 18


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Hình 2.2.1.a. Mô tả bài toán
Hình thức đơn giản của việc phân lớp là phân lớp nhị phân: phân biệt giữa các đối

tượng thuộc về một trong hai lớp: dương (+1) hoặc âm (-1). SVM sử dụng hai khái niệm
để giải quyết vấn đề này: phân lớp biên rộng và hàm kernel. Ý tưởng của phân lớp biên
rộng có thể được minh họa bởi sự phân lớp của các điểm trong không gian hai
chiều(Hình 2.2.1.a).
Ta phân loại các giá trị trên bằng cách xây dựng một đường biên(margin), mà độ
rộng của nó có thể tăng đến khi nó chạm vào một điểm dữ liệu (Hình 2.2.1.b). Như vậy ta
đã phân tách được các điểm (+1) và (-1) về hai phía.

Hình 2.2.1.b. Mô tả đường biênmargin.

Trang 19


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Đây là một cách phân chia các điểm dữ liệu đơn giản.Tuy nhiên vấn đề nằm ở chỗ
chúng ta muốn tìm một đường chia tốt nhất,nhằm tăng độ chính xác cũng như tối thiểu
hóa số lỗi khi phân loại.
Hình minh họa trang bên.

Hình 2.2.1.c.Phân loại hai lớp với đường biên có độ rộng nhỏ và đường chia có độ
rộng lớn.

Trang 20


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Điều này được thực hiện bằng cách tăng tối đa độ rộng của đường biêncho đến
khi nó chạm vào một điểm dữ liệu gần nhất, ta thu được đường biên cực đại ( maximum

margin).

Hình 2.2.1.d. Đường biên cực đại

Các điểm mà đường biên này chạm phải được gọi là các vector hỗ trợ (support
vectors). Đường biên cực đại này còn được gọi là siêu phẳng phân chia hai lớp với
khoảng cách từ nó tới điểm gần nhất là cực đại (maximum marginal hyperplane). Đây
chính là dạng đơn giản nhất của thuật toán SVM, còn được gọi là dạng SVM tuyến tính
(LSVM).
Như vậy, mục tiêu của thuật toán SVM là xây dựng một siêu phẳng giữa hai lớp
sao cho khoảng cách từ nó tới các điểm gần siêu phằng nhất của hai lớp là cực đại. Siêu
phẳng có thể được mô tả bởi phương trình:
(1)
Trong đó:
là vector trọng số (hay vector pháp tuyến).
- .
là một đại lượng vô hướng, thường liên quan đến độ nghiêng.
được gọi là hàm quyết định (Decision function)

Trang 21


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Theo yêu cầu của bài toán phân loại tuyến tính, ta phải chia các đối tượng thành 2 lớp
đó là (+1) và (-1). Áp dụng công thức (1) và các công thức toán học khác ta thu được
điều kiện phân loại đó là:
- Nếu . Phân loại đối tượng vào lớp dương (+1).
- Nếu . Phân loại đối tượng vào lớp âm (-1).
Từ hai bất đẳng thức trên, ta cũng thu được bất đẳng thức:

Lúc đó những đối tượng nằm trên đường thẳng H1 (hình 2.1.1.e) thỏa mãn
phương trình hoặc nằm trên đường thẳng H2 thỏa mãn phương trình được
gọi là các support vector. Minh họa (hình 2.1.1.e) có 2 support vector.

Hình 2.2.1.e. Minh họa cách SVM phân chia các đối tượng về hai lớp.
Như vậy ta đã có cái nhìn tổng quát về bài toán phân lớp SVM tuyến tính, trong
phần tiếp theo ta sẽ tìm hiểu cách tối đa độ rộng của đường biên (maximum margin) hay
tăng độ rộng cực đại của siêu phẳng (maximum marginal hyperplane)

2.2.2. Vấn đề tối đa độ rộng củasiêu phẳng (maximum marginal hyperplane).

Trang 22


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Để tối đa độ rộng của đường biên, tức là chúng ta phải tối đa khoảng cách giữa hai
đường H2 và H1. Theo công thức toán học, khoảng cách từ H0 đến H1 là , tương tự
khoảng cách từ H0 đến H2 cũng là . Do đó khoảng cách từ H1 đến H2 sẽ là (Hình
2.2.2.a). Trong đó là độ dài Ơ-clide của vector .

Hình 2.2.1.a: Khoảng cách giữa hai đường thẳng H1 và H2 tính theo công thức.
Do đó để siêu phẳng có độ rộng cực đại(tức là khoảng cách từ H1 đến H2) là cực đại thì
phải là cực tiểu, tức là chúng ta phải cực tiểu hóa (phép biến đổi hàm mục tiêu, không
thay đổi kết quả).
Như vậy, vấn đề trở thành giải quyết bài toán tối ưu, tính toán và tương ứng để
với điều kiện ràng buộc đó là với .
Có thể giải quyết bài toán này bằng các kĩ thuật thông thường cho quy hoạch toàn
phương , áp dụng điều kiện Karush–Kuhn–Tucker, ta sẽ thu được kết quả của và tương
ứng. Đây cũng là lúc ta giải quyết được bài toán tối đa độ rộng của siêu phẳng, ta tìm

được các vector hỗ trợ (support vectors) như đã nêu trong phần 2.2.1. Quá trình huấn
luyện mô hình hoàn tất. Ta có thể tiến hành quá trình kiểm tra để tiến hành xác định độ
chính xác của mô hình

2.2.3. Bài toán phân loại dữ liệu tuyến tính không thể phân chia(linearly
inseparable data) bằng thuật toán SVM.
Trang 23


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Trong phần 2.2.1 và 2.2.2, ta đã tìm ra cách giải quyết bài toán phân loại tuyến
tính bằng cách tìm độ rộng cực đại của siêu phẳng. Tuy nhiên trong nhiều trường hợp, dữ
liệu tuyến tính không thể phân chia thành hai lớp theo phương pháp thông thường (hình
2.2.3.a)

Hình 2.2.3.a. Trường hợp không thể phân chia tuyến tính bằng một siêu phẳng.
Giải pháp:
• Chấp nhận huấn luyện có lỗi, tức là trong quá trình huấn luyện có một số đối
tượng bị phân loại sai lớp.
• Đồng thời phải tối thiểu hóa số đối tượng bị phân loại sai lớp.
Theo đó về mặt thuật toán:
Sử dụng một biến mềm sao cho

(*)

Bài toán tối ưu siêu phẳng trở thành:
Tối thiểu:

-


với ràng buộc(*). Tức là ta phải tính toán sao cho đạt cực tiểu. Trong đó
chỉ khoảng cách giữa vị trí đối tượng bị phân loại sai đến đến đúng mặt phẳng
phân chia của nó (Hình 2.2.3.b).
Tham số giới hạn lỗi ràng buộc, tức là C càng lớn thì mức độ lỗi trong huấn luyện
càng cao.

Trang 24


SVTH: Lê Tuấn Khang, Lớp D10HTTT2

Hình 2.2.3.b: Mô tả khoảng cách giữa đối tượng bị phân loại sai đến đường biên phân
chia nó.
Tương tự như trong phần 2.2.2,bài toán cực đại độ rộng của siêu phẳng của dữ liệu tuyến
tính không thể phân chia (linearly inseparable data) trong phần 2.2.3 cũng có thể được
giải quyết bằng các công thức toán học tương ứng.
Ngoài ra Support vector machines cũng có thể giải quyết vấn đề dữ liệu tuyến tính
không thể phân chia bằng cách quy về trường hợp dữ liệu phi tuyến (nonlinear data), ta
sẽ giải quyết trong phần 2.2.4

2.2.4. Bài toán phân loại dữ liệu phi tuyến (không tuyến tính) bằng SVM.
Trong nhiều trường hợp, không gian phân loại có thể là dạng bất kì (2 chiều, 3
chiều hay n chiều), tập dữ liệu D không thể phân chia tuyến tính ( tức là phân loại dựa
trên phương trình bậc nhất).
Giải pháp: ta sẽ ánh xạ các vector dữ liệu từ không gian n chiều vào một không
gian m chiều (m > n), sao cho trong không gian m chiều, tập dữ liệu D có thể phân chia
tuyến tính được.Tức là áp dụng phương pháp SVM tuyến tính để tìm một siêu phẳng
nhằm phân lớp trong không gian mới. Mô tả trong hình 2.2.4.a.
Trang 25



×