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

Tiểu luận môn hệ hỗ trợ quyết định SỬ DỤNG GIẢI THUẬT HỌC CÂY QUYẾT ĐỊNH ID3 ĐỂ XÂY DỰNG HỆ THỐNG TƯ VẤN SỬ DỤNG THIẾT BỊ KẾT NỐI MẠ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 (227.94 KB, 17 trang )

BÀI THU HOẠCH MÔN HỆ HỖ TRỢ QUYẾT ĐỊNH

ĐỀ TÀI: SỬ DỤNG GIẢI THUẬT HỌC CÂY QUYẾT ĐỊNH ID3 ĐỂ XÂY DỰNG
HỆ THỐNG TƯ VẤN SỬ DỤNG THIẾT BỊ KẾT NỐI MẠNG

Học viên thực hiện :
Họ tên : Lê Chí Cảnh
MSHV : CH1301081
Lớp : CH08
Giảng viên phụ trách :
Đỗ Phúc


LỜI NÓI ĐẦU

Mục tiêu của đề tài là áp dụng một thuật giải học cây quyết định vào việc phát triển một
ứng dụng thực tế là hệ thống tư vấn sử dụng thiết bị kết nối mạng. Bố cục của báo cáo này trước
hết sẽ giới thiệu cơ sở lý thuyết về cây quyết định và thuật giải xây dựng cây quyết định ID3.
Sau đó là phần đánh giá nhu cầu về một ứng dụng tư vấn sử dụng thiết bị kết nối mạng. Các phần
sau sẽ tập trung vào thu thập bộ dữ liệu học, xử lý dữ liệu và các bước triển khai ứng dụng.


MỤC LỤC

I – Giới thiệu về cây quyết định và thuật giải ID3
1. Cây quyết định [4]
Trong lĩnh vực học máy, cây quyết định là một kiểu mơ hình dự báo (predictive model),
nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị
mục tiêu của sự vật/hiện tượng. Mỗi một nút trong (internal node) tương ứng với một
biến; đường nối giữa nó với nút con của nó thể hiện một giá trị cụ thể cho biến đó. Mỗi
nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị của các biến


được biểu diễn bởi đường đi từ nút gốc tới nút lá đó.
Kỹ thuật học máy dùng trong cây quyết định được gọi là học bằng cây quyết định, hay
chỉ gọi với cái tên ngắn gọn là cây quyết định. Học bằng cây quyết định cũng là một
phương pháp thông dụng trong khai phá dữ liệu. Khi đó, cây quyết định mơ tả một cấu
trúc cây, trong đó, các lá đại diện cho các phân loại còn cành đại diện cho các kết hợp của
các thuộc tính dẫn tới phân loại đó. Một cây quyết định có thể được học bằng cách chia
tập hợp nguồn thành các tập con dựa theo một kiểm tra giá trị thuộc tính. Q trình này
được lặp lại một cách đệ qui cho mỗi tập con dẫn xuất. Q trình đệ qui hồn thành khi
khơng thể tiếp tục thực hiện việc chia tách được nữa, hay khi một phân loại đơn có thể áp
dụng cho từng phần tử của tập con dẫn xuất. Một bộ phân loại rừng ngẫu nhiên (random
forest) sử dụng một số cây quyết định để có thể cải thiện tỉ lệ phân loại.


Các thuật giải có thể dùng để sinh ra cây quyết định thường dùng như : ID3, C4.5, C5.0
2. Thuật giải ID3

Là thuật giải dùng để sinh ra cây quyết định được phát minh bởi Ross Quinlan. Thuật giải
này là tiền thân của thuật giải C4.5. Thường được sử dụng trong lĩnh vực xử lý ngôn ngữ
tự nhiên và lĩnh vực khai phá dữ liệu.
Chi tiết giải thuật ID3 [5]:
Ý tưởng
Xây dựng cây từ root đến lá, bằng cách trả lời:
– Thuộc tính nào là tốt nhất để được kiểm tra tại root ?
– Mỗi cây con được tạo ra tương ứng mỗi nhánh là trị của thuộc tính này.
Quá trình lặp lại với các cây con.
Thuộc tính nào là bộ phân loại tốt nhất ?
-

Dựa vào khái niệm : độ lợi thông tin - “information gain”
Information gian: đo lường mức độ có lợi mà thuộc tính nào đó phân chia

tập cá thể dựa theo khái niệm đích.

Giá trị ENTROPY:
Đo lường tính đồng nhất của tập huấn luyện.Với tập huấn luyện S cơng thức tính
entropy là
ENTROPY(S) = -p+.log2(p+) – p-.log2(p-)
P+ : Tỉ lệ giữa số các thể positive trên tổng số cá thể.
P-: Tỉ lệ giữa số các thể negative trên tổng số cá thể.
Ví dụ:
– Tổng số cá thể: 14
– Trong đó có:
9 cá thể positive (thuộc vào phân loại của khái niệm đích).
5 cá thể negative (khơng thuộc vào phân loại của khái niệm đích).
– Hay ghi rút gọn: [9+,5-]
 Entropy([9+,5-]) = -((9/14)log2(9/14)) – ((5/14)log2(5/14)) = 0.94


II – Giới thiệu và phân tích yêu cầu ứng dụng
Hiện nay, hai loại hình kết nối Internet ở nước ta được sử dụng nhiều nhất là sử dụng
mạng kết nối dây ADSL và mạng không dây 3G . ADSL có lịch sử lâu đời hơn, được cung cấp
bởi các ISPs (Internet Service Provider) như VNPT, FPT, Netnam … trong khi đó 3G (Third
Generation) mới xuất hiện tại Việt Nam trong những năm gần đây – là bước cải tiến lớn của 2G
và tiền đề của 4G, được cung cấp bởi các công ty viễn thông như Viettel, VinaFone và
Mobiphone .
Số lượng người dùng Internet tăng không ngừng, làm nảy sinh yêu cầu lựa chọn giữa 2
loại hình kết nối mạng này. Đối với người dùng thơng thường (khơng có nhiều kinh nghiệm sử
dụng máy tính và hiểu biết về mạng) thì việc lựa chọn trở nên khó khăn hơn. Đó chính là mục
đích của đồ án này : Giúp hỗ trợ tư vấn người dùng trong việc lựa chọn loại hình kết nối mạng
ADSL hay 3G .
Để đưa ra một lời khun chính xác, thì có 2 yếu tố cần quan tâm :

1/ Đặc điểm của 3G và ADSL

-

-

3G
3G là mạng không dây nên rất tiện lợi
khi di chuyển .
3G đã bỏ gói cước trọn gói, vì vậy việc
sử dụng để tải dữ liệu dung lượng lớn
là rất tốn kém, chỉ thích hợp cho việc
duyệt mail, đọc báo, và tài liệu nhỏ .
3G sóng vẫn cịn khá yếu ở những khu
vực không phải thành thị : miền núi,
nông thôn, duyên hải … thường xuyên
rớt mạng. Ở thành thị tốc độ tốt hơn,
nhưng vẫn có những khoảng thời gian
mạng khơng ổn định. Trong tương lai
điều này sẽ được cải thiện khi các nhà
mạng triển khai thêm trạm thu phát
sóng.

-

-

ADSL
ADSL chỉ thích hợp với kết nối cố
định .

ADSL cung cấp cả gói cước theo lưu
lượng rẻ hơn 3G và cả trọn gói nữa .
ADSL đảm bảo đường truyền hơn 3G
rất nhiều, nhược điểm duy nhất là
đường dây có vấn đề thì mạng khơng
thể truy cập được. Hư hỏng thường
mang tính cục bộ (ảnh hưởng đến từng
khu vực)

2/ Nhu cầu sử dụng của người dùng
Nhu cầu sử dụng của người dùng chủ yếu tập trung vào việc người đó ở đâu, có hay
di chuyển khơng và lưu lượng sử dụng Internet ít hay nhiều . Từ đó có thể suy ra một số
thông tin cần nắm về người dùng ảnh hưởng đến việc tư vấn như sau :


-

Nơi ở : phụ thuộc sóng 3G mạnh hay yếu
Chỗ ở : Nếu ở nhà riêng thì việc thuê hợp đồng với mạng có dây là dễ dàng hơn nhiều .
Loại máy tính : Laptop thích hợp với 3G hơn Desktop vì tính lưu động .
Mục đích chính để sử dụng : dùng để phân loại theo lưu lượng .
Điều kiện tài chính, giá thành 1 USB 3G khoảng vài trăm ngàn (khi hạ giá có thể xuống
khoảng 350 ngàn/USB) – khơng hề đắt . Dựa vào đó mà lời khuyên tốt nhất thường là
dùng cả 2 loại kết nối mạng .

III – Mô tả và thống kê cho dữ liệu thu thập được
1/ Mô tả dữ liệu
Gồm các trường khảo sát sau và các tùy chọn cho từng trường:
1.
2.

3.
4.
5.

6.

7.

8.

9.

10.

Họ và Tên
Số điện thoại hoặc email
Độ tuổi
Nghề nghiệp
Nơi bạn sinh sống:
a. Thành thị
b. Nông thôn
c. Miền núi
d. Trung du
e. Ven biển
f. Hải đảo
Nơi bạn ở :
a. Nhà riêng
b. Phòng trọ tập thể
c. Nhà người quen, họ hàng
Loại máy tính bạn đang sử dụng

a. Máy bàn (Desktop)
b. Máy xách tay (Laptop)
c. Chưa có máy tính
Hiện bạn kết nối Internet bằng
a. ADSL
b. USB 3G
c. Cả hai
d. Chưa kết nối Internet tại nhà
Mục đích chính bạn dùng Internet để
a. Học tập, làm việc (gửi mail, đọc tài liệu, ...)
b. Giải trí (đọc báo, nghe nhạc, xem phim ...)
Bạn sẵn sàng dành ra bao nhiêu tiền 1 tháng cho Internet
a. 100 ngàn trở xuống
b. Từ 100 ngàn – 200 ngàn
c. Trên 200 ngàn


11. Bạn có cần dùng Internet trong lúc di chuyển khơng
a. Có
b. Khơng
c. Có, nhưng nơi tơi đến đã có sẵn Internet
12. Theo bạn, loại kết nối Internet nào sẽ phù hợp với bạn nhất
1. 3G
2. ADSL
3. Cả hai

Trong đó các thuộc tính như Họ và tên, độ tuổi, nghề nghiệp, số điện thoại hay email
không bắt buộc phải điền vì khơng ảnh hưởng đến mục đích khảo sát . Đồng thời không giúp
người dùng cảm thấy thoải mái hơn khi không phải nhập các thông tin cá nhân .
Thuộc tính nơi bạn sinh sống chủ yếu phân thành 2 nhóm là gần thành thị và xa thành thị, bởi tốc

độ của 3G phụ thuộc nhiều vào các trạm thu phát của các mạng điện thoại .
Thuộc tính nơi ở, ADSL cần hợp đồng với địa chỉ nhà cụ thể, do đó việc ở nhà riêng sẽ
thuận lợi hơn trong khi 3G chiếm ưu thế lúc nơi ở không cố định .
Loại máy tính đang sử dụng cũng ảnh hướng đến việc lựa chọn dịch vụ mạng, bởi vì
người dùng Laptop thường có xu hướng di chuyển nhiều, nên phù hợp với 3G hơn .
Sự khác nhau giữa 2 thuộc tính “Bạn kết nối Internet bằng ” và “Theo bạn, loại kết nối
Internet nào sẽ phù hợp với bạn nhất đây là thuộc tính phân loại bộ dữ liệu thể hiện xu
hướng của người sử dụng khi muốn thay đổi cách thức kết nối Internet . Mục đích sử dụng
Internet chỉ được chia ra làm 2 loại là ít tải dữ liệu và tải dữ liệu nhiều, về mặt này 3G hồn tồn
thua kém ADSL (với các loại hình trọn gói hoặc trả theo dung lượng rất linh động)
Nhu cầu sử dụng Internet trong lúc di chuyển thể hiện ưu thế của mạng không dây 3G .

2/ Thống kê dữ liệu đã thu thập được
Nhóm đã thu thập được 539 mẫu dữ liệu. Các bảng sau là thống lê chi tiết từng
trường dữ liệu chính dùng trong hệ thống:
Khu vực sống:

Loại hình máy tính sử dụng:


Loại hình Internet đang sử dụng:

Mục đích sử dụng:

Có di chuyển:

Nơi ở:

Số tiền sẽ chi trả mong muốn:


Loại hình Internet phù hợp nhất:


IV - Phương pháp được sử dụng để huấn luyện
1/ Giới thiệu thư viện WEKA
Bộ thư viện mã nguồn mở WEKA được phát triển bởi nhóm Meachine Leraning
của trường đại học Waikto phát triển bằng ngôn ngữ Java. WEKA xây dựng sẵn các thuật giải
học thông dụng trong máy học để phục vụ trong lĩnh vực máy học. Ngoài ra WEKA cịn cung
cấp các bộ cơng cụ để phục vụ cho các tác vụ khai thác dữ liệu như tiền xử lý dữ liệu, phân lớp
dữ liệu, phân nhóm và khai thác luật kết hợp trên dữ liệu. Chúng ta có thể sử dụng WEKA trực
tiếp bằng giao diện trực quan người dùng hoặc sử dụng trong Java code thuận lợi cho phát triển
các dụng.
Có thể tải WEKA trực tiếp tại trang: />
2/ Tiền xử lý dữ liệu
Dữ liệu sau khi thu thập được sẽ qua bước tiền xử lý, các thuộc tính khơng dùng trong mơ
hình học sẽ loại bỏ và không ẳn hưởng đến kết quả phân lớp dữ liệu:
Họ và tên, độ tuổi, nghề nghiệp, số điện thoại hay email
Các thuộc tính cịn lại sẽ được sử dụng trong mơ hình là : Khu vực sống, Loại máy tính,
Internet đang sử dụng, mục đích sử dụng, có di chuyển hay không, nơi ở, số tiền sẽ chi trả,
loại hình Internet phù hợp. Do dữ liệu trong các thuộc tính này đều ở dạng rời rạc hóa nên
chúng ta khơng cần phải rời rạc hóa trong bước tiền xử lý dữ liệu này.
Đến đây thì dữ liệu đã hồn thành, có thể bắt đầu cho việc training dữ liệu. Dữ liệu sẽ
được lưu trong file train.arff
3/ Sử dụng thư viện WEKA vào chương trình
Em xây dựng chương trình sử dụng mơ hình học bằng cây quyết định với thuật
giải ID3 đề xây dựng cây quyết định sử dụng bộ thư viện WEKA .Thư viện này đã xây dựng sẵn
thuật giải ID3 trong gói weka.classifiers.trees. Chúng ta có thể sử dụng trực tiếp lớp ID3 hoặc
thông qua lớp FilteredClassifier chứa trong gói weka.classifiers.meta để xây dựng cây . Em sẽ
sử dụng cách phân lớp thông qua lớp FilteredClassifier.
Đầu tiên đối tượng của lớp FilteredClassifier sẽ cài đặt sử dụng thuật tốn ID3 thơng qua

lớp ID3(code trích từ lớp decision.tree.DecisionTree).
FilteredClassifier fc;
ID3 id3= new Id3();


fc = new FilteredClassifier();
fc.setClassifier(id3);
Phương thức buildClassifier dùng để training dữ liệu từ tập dữ liệu đã được load lên từ
file train.arff sau khi kết thúc hàm này chương trình đã thu thập được các luật từ bộ dữ liệu.
public void buildClassifier(Instances ins) throws Exception{
ins.setClassIndex(ins.numAttributes()-1);
fc.buildClassifier(ins);
//………
}
Từ dữ liệu người dùng nhập vào chúng ta sử dụng phương thức classifierInstance để áp
dụng các luật đã tìm được ở trên từ đó đạt được lời khuyên sử dụng loại hình Internet
nào.
public double classifyInstance(Instance ins) throws
Exception {
return fc.classifyInstance(ins);
}

Giá trị trả về của phương thức này là một số thực :

+ 1.0: Lời khuyên là nên dùng DCOM 3G.
+ 2.0: Lời khuyên là nên sử dụng ADSL.
+ 0.0: Lời khuyên là ADSL và DCOM 3G đều phù hợp với người dùng.
V - Kết quả thực nghiệm và đánh giá
Chúng ta sẽ sữ dụng WEKA để đánh giá, tiến hành chia dữ liệu như sau:
Tập dữ liệu học D_Train chiếm 66% ~ 355/539 mẫu dữ liệu

Tập dữ liệu test D_Test chiếm 34% ~ 184/539 mẫu dữ liệu


Kết quả đánh giá:
Chính xác khoảng 85.2% ~ 156/184 mẫu dữ liệu test
Khơng chính xác khoảng 14,8% ~ 28/184 mẫu dữ liệu test
Độ chính xác của hệ thống sau khi test là 85.2%. Do bộ dữ liệu thu thập còn chưa
nhiều(hiện thu thập được 539 bộ dữ liệu) nên kết quả chưa thực sự cao, do đó để nâng cao độ
chính xác thì cần thu thập thêm nhiều dữ liệu nữa.

VI - Hướng dẫn sử dụng chương trình
Để khởi động chương trình tìm file thực thi trong đường dẫn \tuvan_bin\Launcher.bat để
thực thi trên máy tính đã cài sẵn Java Runtime.
Sau khi khởi động xong, để bắt đầu truy vấn người dùng điền vào thông tin cá nhân và
chọn “Tư vấn” để nhận được lời khuyên về loại hình sử dụng mạng Internet.


Đối với dữ liệu đầu vào phù hợp với cả 2 phân lớp 3G và ADSL, chương trình sẽ xuất ra
thông báo “3G và ADSL đều phù hợp với bạn”:


Trường hợp chương trình đưa ra tư vấn sử dụng 3G:


Và lời tư vấn cho việc sử dụng ADSL:


VII – Lời kết
Ứng dụng đã cơ bản giải quyết được bài toán đưa ra tư vấn để giúp người dùng chọn loại
thiết bị kết nối mạng phù hợp với mình. Tuy nhiên trong một số trường hợp chương trình có thề

đưa ra một kết quả khơng phù hợp, ngun nhân chính là do bộ dữ liệu học cịn q ít và chưa đa
dạng. Do để tăng khả năng tư vấn chính xác cho chương trình, cần thu thập nhiều dữ liệu hơn
nữa.


VIII – Tài liệu tham khảo
Tài liệu tiếng anh
[1] . Wikipedia, ID3 algorithm
[2]. Mitchell, Tom M. Machine Learning. McGraw-Hill, 1997. pp. 55–58

[3]. Weka Wiki,
Tài liệu tiếng Việt
[4]. Wikipedia, cây quyết định.
[5]. Nguyễn Thị Trúc Viên, Chương 11 Học máy



×