1. Mô tả tập dữ liệu a. Nguôn gốc Poker hand dataset được tạo ra bởi : Robert Cattral (cattral@gmail.com) và Franz Oppacher (oppacher@scs.carleton.ca) Đại học Carleton, Sở Khoa học Máy tính, Đơn vị Nghiên cứu Hệ thống thông minh Tại: 1125 Colonel By Drive, Ottawa, Ontario, Canada, K1S5B6. Ngày bắt đầu triển khai là tháng 1 năm 2007. b. Cấu trúc - Mỗi bản ghi dữ liệu của poker hàn là một ví dụ của người chơi. Thẻ được rút ra từ một bộ bài tiêu chuẩn 52 quân bài. - Mỗi thẻ được mô tả bằng cách sử dụng hai thuộc tính suit and rank, với tổng là 10 thuộc tính - Thứ tự của mỗi thẻ rất quan trọng, đó là lý do tại sao có 480 lựa chọn tromg bước đi 2. Các thuôc tính của data @relation Poker_Hand @attribute Suit-of-card#1 {1, 2, 3, 4} @attribute Rank-of-card#1 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} @attribute Suit-of-card#2 {1, 2, 3, 4} @attribute Rank-of-card#2 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} @attribute Suit-of-card#3 {1, 2, 3, 4} @attribute Rank-of-card#3 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} @attribute Suit-of-card#4 {1, 2, 3, 4} @attribute Rank-of-card#4 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} @attribute Suit-of-card#5 {1, 2, 3, 4} @attribute Rank-of-card#5 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} @attribute class {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Với : 0: người chơi không được coi là tay chơi poker 1: Một đôi; một đôi bình đẳng cấp bậc trong năm thẻ 2: Hai cặp; hai cặp bình đẳng cấp bậc trong năm thẻ 3: Ba của một loại; ba cấp bậc tương đương trong năm thẻ 4: Straight; năm thẻ, tuần tự được xếp hạng với không có khoảng trống 5: đưa ra năm thẻ với cùng chất Hoa 6: Có đầy đủ cặp + đánh giá khác nhau của một loại 7: Bốn của một loại, bốn cấp bậc tương đương trong năm thẻ 8: Thẳng đưa ra 9: Royal đưa ra; {Ace, vua, Queen, Jack, Ten} 3. Bài toán phân lớp - Bài toán phân lớp theo các rút lá bài trong đó có 2 trạng thái là suit và rank
Trang 1Khai phá dữ liệu poker hand dataset
1 Mô tả tập dữ liệu
a Nguôn gốc
Poker hand dataset được tạo ra bởi : Robert Cattral (cattral@gmail.com) và Franz Oppacher (oppacher@scs.carleton.ca)
Đại học Carleton, Sở Khoa học Máy tính, Đơn vị Nghiên cứu Hệ thống thông minh
Tại: 1125 Colonel By Drive, Ottawa, Ontario, Canada, K1S5B6
Ngày bắt đầu triển khai là tháng 1 năm 2007
b Cấu trúc
Mỗi bản ghi dữ liệu của poker hàn là một ví dụ của người chơi Thẻ được rút ra từ một
bộ bài tiêu chuẩn 52 quân bài
Mỗi thẻ được mô tả bằng cách sử dụng hai thuộc tính suit and rank, với tổng là 10 thuộc tính
Thứ tự của mỗi thẻ rất quan trọng, đó là lý do tại sao có 480 lựa chọn tromg bước đi
2 Các thuôc tính của data
@relation Poker_Hand
@attribute Suit-of-card#1 {1, 2, 3, 4}
@attribute Rank-of-card#1 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
@attribute Suit-of-card#2 {1, 2, 3, 4}
@attribute Rank-of-card#2 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
@attribute Suit-of-card#3 {1, 2, 3, 4}
@attribute Rank-of-card#3 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
@attribute Suit-of-card#4 {1, 2, 3, 4}
@attribute Rank-of-card#4 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
@attribute Suit-of-card#5 {1, 2, 3, 4}
@attribute Rank-of-card#5 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
@attribute class {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Với :
0: người chơi không được coi là tay chơi poker
1: Một đôi; một đôi bình đẳng cấp bậc trong năm thẻ
2: Hai cặp; hai cặp bình đẳng cấp bậc trong năm thẻ
3: Ba của một loại; ba cấp bậc tương đương trong năm thẻ
4: Straight; năm thẻ, tuần tự được xếp hạng với không có khoảng trống
5: đưa ra năm thẻ với cùng chất Hoa
6: Có đầy đủ cặp + đánh giá khác nhau của một loại
7: Bốn của một loại, bốn cấp bậc tương đương trong năm thẻ
8: Thẳng đưa ra
9: Royal đưa ra; {Ace, vua, Queen, Jack, Ten}
Trang 23 Bài toán phân lớp
Bài toán phân lớp theo các rút lá bài trong đó có 2 trạng thái là suit và rank
a Giải quyết bài toán sử dụng các bộ phân lớp
Xử lý dữ liệu đầu vào: Tất cả các thuộc tính đầu vào này là thuộc tính rời rạc do vậy nó phù hợp với hầu hết các thuật toán liên quan đến việc phân lớp
b Các mô hình huấn luyện cho bài toán phân lớp
Trong lĩnh vực máy học (machine Learning) và nhận dạng mẫu (pattern recognition), bài toán phân lớp (classification) đề cập đến các thuật toán (algorithms) nhằm xác định lớp (class) của đối tượng đã cho sẽ thuộc về lớp nào trong các lớp đã cho trước (given categories) Khác với bài toán phân cụm (clustering), dữ liệu dùng để xây dựng mô hình (Training Data) trong bài toán phân lớp phải được xác định lớp trước (pre-Labeled)
Ví dụ, xác định một email thuộc “spam” hoặc “non-spam”, hay xác định loại bệnh của bệnh nhân dựa vào các triệu chứng của họ
Training set Learn classifier
Test set Model
Một thuật toán thực hiện việc phân lớp được gọi là một bộ phân lớp (classifier) Hình sau mô
tả qui trình xây dựng mô hình phân lớp các đối tượng
Trang 3c Quy trình thực hiện huấn luyện bộ phân lớp với mẫu dữ liệu poker hand
Dữ liệu đầu vào : poker hand.arff
Dữ liệu để xây dựng mô hình: dữ liệu gốc (original dataset), dữ liệu này phải có thuộc tính phân lớp (categorical attribute) Dữ liệu gốc sẽ được chia thành 2 phần là Training Set (để xây dựng model) và Test Set (để kiểm định mẫu - Model)
Cuối cùng là tính toán lỗi để đánh giá mô hình phân lớp (classification model)
Chia nhỏ tập dữ liệu theo phương pháp CV (Cross-Validation) trong quá trình huấn luyện
và kiểm lỗi mô hình phân lớp
Đây là kỹ thuật chủ yếu được sử dụng trong xây dựng predictive Model Trong đó dữ liệu gốc
sẽ được chia thành n phần bằng nhau (n-fold), và quá trình Train/Test Model thực hiện lặp lại n lần Tại mỗi lần Train/Test Model, 1 phần dữ liệu dùng để Test và (n-1) phần còn lại dùng để Train
(Người ta đã chứng minh 10-fold Cross –Validation là giá trị tối ưu - theo GJ, McLachlan; K.A Do, C Ambroise (2004) Analyzing microarray gene expression data Wiley)
Trang 4 Tính toán lỗi cho bộ phân lớp
Kết quả nhận được là những bộ phân lớp
Các bộ phân lớp được weka hỗ trợ :
Bayes:
NavieBayes
NavieBayesMiltinominal
NavieBayesUpdateable
Trang 5 Logistic
MultilayerProceptron
SimpleLogistic
Lazy:
IBk
Kstar
Meta:
AdaBoostM1
Bagging
FilteredClassifier
LogitBoots
Misc
InputmappedClassifier
SerialzedClassifier
Rules
DecisionTable
JRip
OneR
ZeroR
Trees
J48
DecisionStump
RandomTree
REPTree
RandomForest
a. Thực hiện
Dữ liệu sẽ được chia làm 10 Folds và quá trình Train/Test Model thực hiện lặp lại 10 lần Tại mỗi lần Train/Test Model, 1 phần dữ liệu dùng để Test và 9 phần còn lại dùng để Train
Sử dụng công cụ KnowledgeFlow
Xác định nguồn và định dạng dữ liệu (DataSources): chọn ArffLoader để load nạp dữ liệu
từ file poker-hand.arff
Trang 6 Chọn tab Evaluation và chọn ClassAssigner để xác định thuộc tính phân lớp (Category variable) của mô hình Để nạp dữ kiệu từ dataset vào mô hình bấm phải chuột vào Poker hand Dataset và chọn dataset rồi kéo và thẻ đến ClassAssigner
Chọn kỹ thuật Train và Test Mô hình (ở đây sử dụng kỹ thuật CV – CrossValidation) Trong Tab Evaluation chọn CrossValidation FoldMaker Nạp dữ liệu vào CV giống như nạp dữ liệu
từ Poker hand Dataset vào ClassAssigner
Trang 7Chọn Tab Classifiers và chọn các thuật toán để xây dựng mô hình (trước tiên chọn thuật toán J48) Sau đó nạp dữ liệu để train và Test mô hình, bấm phải chuột vào CrossValidation
FoldMaker chọn TrainingSet nối với J48, sau đó chọn TestSet (chú ý là phải chọn TraningSet
trước)
Hiệu chỉnh tham số của thuật toán bằng cách double click và thuật toán
Trang 8Chọn Tab Evaluation chọn ClassifierPerformanceEvaluator để đánh giá hiệu quả của mô hình
phân lớp
Trang 9Chọn Tab: Visualization và chọn Text Viewer hoặc GraphViewer để xem kết quả của mô hình
dưới dạng Text hay dưới dạng trực quan quan bằng hình ảnh
Với cách làm trên ta có mô hình của thuật toán Naviebayes:
Trang 10d Kết quả thực hiện khai phá dữ liệu poker hand data set bằng 2 thuật toán trên ta có kết quả như sau:
• Thuật toán Naviebase:
Correctly Classified Instances 12274 49.0764 %
Incorrectly Classified Instances 12736 50.9236 %
Kappa statistic -0.0061
Mean absolute error 0.1136
Root mean squared error 0.2387
Relative absolute error 99.9803 %
Root relative squared error 100.1553 %
Total Number of Instances 25010
• Thuật toán J48
Correctly Classified Instances 14390 57.537 %
Incorrectly Classified Instances 10620 42.463 %
Kappa statistic 0.1954
Mean absolute error 0.0986
Root mean squared error 0.2463
Relative absolute error 86.7951 %
Root relative squared error 103.345 %
Total Number of Instances 25010