By
Group 10 (DTM#2)
• เปิ ดตัว
Version
แรกของ WEKA
คือ version
2.1
WEKA ย่อมาจาก Waikato Environment for
Knowledge Analysis
WEKA เป็ น Software free ท่ีสามารถ download
ภายใต้ GNU General Public License
เขียนโดยใช้ภาษา Java ทัง ้ หมด
สร้างขึน
้ มาโดยเน้นกับ การเรียนรู้ดว้ ยเคร่ ือง (Machine
Learning) กับการทำาเหมืองข้อมูล
มีโมดูลย่อยสำาหรับจัดการข้อมูล
สรุปค่าสถิติ
ของลักษณะ
กราฟหน่ ึงตัวแปรขอ ประจำาท่ถ
ี ูกเ
งลักษณะประจำาท่ถี ูก ลือก
เลือกไว้
จำานวนลักษณะประจำาท่ีมีทัง้หมด 5
ตัวเรียงตามลำาดับดังนี้
outlook, temperature, humidity, windy,
play
มีจำานวนระเบียนทัง ้ หมด 14 ระเบียน
สำาหรับลักษณะประจำา outlook
เป็ นลักษณะประจำาประเภท Nominal
ท่ีพิจารณาไม่มีข้อมูลในระเบียนท่ีขาดหายไป
มีค่าท่ีแตกต่างกันทัง้หมด 3 ค่า
ซ่ึงแต่ละค่าไม่มีเพียงค่าเดียวเลย
ค่าของลักษณะประจำาคือ sunny มี 5 ระเบียน
overcast มี 4 ระเบียน rainy มี 5 ระเบียน
ใช้โปรแกรมในการสร้าง text file ใดก็ได้ เช่น notepad
บรรทัดแรกให้ใส่ @relation relation_name
บรรทัดถัดมาให้ใส่ลักษณะประจำาเรียงตามลำาดับ
ในลักษณะประจำาไม่มีข้อมูลท่ีขาดหายไป
โดยทัว ่ ไปใช้กับฐานข้อมูลเชิงสัมพันธ์ท่ีบันทึกเป็ น
Transaction
โดยท่ีแต่ละระเบียนคือการซ้อ ื สินค้าในหน่ึงครัง้
ผลลัพธ์ท่ีต้องการได้คือ
กฏแสดงความสัมพันธ์ของการซ้ือสินค้าต่างชนิดกันโดยไม่ขึ้
นอยู่กับลูกค้าคนใดคนหน่ึง
การเตรียมแฟ้ มข้อมูล
ลักษณะประจำาของสินค้าคือช่ ือสินค้าท่ีพิจารณา
ลักษณะประจำาตัวแรกคือรหัสการซ้ือสินค้า TID
ท่ีไม่นำามาใช้ในการวิเคราะห์
ใช้เพ่ ือการเช่ ือมโยงกลับไปยังฐานข้อมูลเร่ิมต้นเท่านัน้
ค่าในลักษณะประจำาเป็ น Boolean
ข้อมูล ที ่นำำ มำ ใช
เช่นกำาหนดค่าท่ีเป็ นไปได้คือ y แทนการใช้ตัวเลข 1
้
ตัวอย่าง การซ้อ ื T100,I1,I2 เขียนเป็ น T100, 1, 1, ?,
?, ?
ในซอฟต์แวร์ Weka สัญลักษณ์ ? แทนค่าท่ีหายไป
(missing value)
o ปรับค่ำ min support ในกล่อง lowerBoundMinSuport เช่น 0.2
(หมำยถึงค่ำสนับสนุนตำ่ำสุด 20%)
oปรับค่ำ min confidence ในกล่อง minMetric โดย metricType เป็น
Confidence เช่น 0.5 (หมำยถึงค่ำควำมเชื่อมัน่ ตำ่ำสุด 50%)
ตัวแบบ
o ปรับจำำนวนกฎที่แสดงผลในกล่อง numRules เช่น 100
ความหมายของกฎท่ี 1:การซ้อ ื สินค้าของลูกค้าท่ีมีสินค้า
I5 แล้วจะมีสินค้า I1 เสมอ
ความหมายของกฎท่ี 2:การซ้อ ื สินค้าของลูกค้าท่ีมีสินค้า
I4 แล้วจะมีสินค้า I2 เสมอ
การทำาเหมืองข้อมูลแบบกฎเช่ ือมโยงสามารถนำาไปใช้กบ
ั ข้
อมูลท่ีไม่ใช่ transaction ได้
โดยใช้การเข้ารหัสของลักษณะประจำาเป็ นชนิด
Nominal หรือ Ordinal
ซอฟต์แวร์ Weka ใช้การเข้ารหัส dummy coding
คือซอฟต์แวร์จะแปลงค่าของ Nominal หรือ Ordinal
หน่ึงค่าแทนด้วยตัวแปรทวิภาค เช่น
ลักษณะประจำา outlook มีค่าท่ีเป็ นไปได้คือ
overcast, sunny, rainy
แล้วตัวแปรทวิภาคเขียนได้เป็ น outlook =
overcast, outlook = sunny, outlook =
rainy
ผลลัพธ์ท่ีได้จาก
weather.nominal.ar
ff
ความหมายของกฎท่ี 1:ถ้าสภาพอากาศเป็ น overcast
แล้ว play = yes เสมอ
ความหมายของกฎท่ี 2:ถ้าอุณหภูมิเป็ น cool
แล้วความช้ืนจะปรกติ (narmal) เสมอ
ความหมายของกฎท่ี 3:ถ้าความช้น
ื ปรกติและไม่มีลม
windy = FALSE แล้ว play = yes เสมอ
แฟ้ มข้อมูลท่ีถูกนำามาใช้ในการวิเคราะห์ต้องประกอบด้วย
ลักษณะประจำาท่ีเป็ น Nominal หรือ Ordinal เท่านัน ้
ข้อมูลในลักษณะ transaction เป็ นข้อมูล Nominal
และการไม่ซ้ือใช้? (missing value) แทน
TID, atri_1, attri_2,…, attri_n
ตัวอย่างมีทัง้หมด 14
ตัวอย่าง
และมีลักษณะประจำาท่ีไม่ใ
ช่ลักษณะประจำาเป้าหมาย
4 ตัว
กำาหนดลักษณะประจำาเป้ าหมายให้เป็ นลักษณะประจำาสุด
ท้าย
เลือกวิธีการสร้างตัวแบบโดยใช้ต้นไม้
ดังนัน
้ ต้องเปล่ียนลักษณะประจำาท่ีมีค่าต่อเน่ ืองให้เป็ นลัก
ษณะประจำาท่ีมีค่าไม่ต่อเน่ ือง
กรณีท่ีมีระเบียนน้อย อาจใช้ k-fold cross
validation หรือ leave-one-out
กรณีท่ีมีระเบียนมาก ควรแบ่งกัน ้ ระเบียนบางส่วนเป็ น
validation, test data และท่ีเหลือนำามาใช้เป็ น
training data สัดส่วนท่ีใช้อาจเป็ น 3/10 กับ 4/10
เร่ิมการทำางานของ WEKA โดยเปิ ด โมดูล Explorer
เปิ ดแฟ้ ม weather.nominal.arff
แปลงลักษณะประจำาท่ีมีค่าต่อเน่ ืองเป็ น
ลักษณะประจำาท่ีมีค่าไม่ต่อเน่ ืองโดย
ใช้ filter ก่อนเลือกแถบ Classify
Outlook
มีค่าต่างกัน 3 ค่า
temperature
มีค่าต่างกัน 3 ค่า
humidity
มีค่าต่างกัน 2 ค่า
windy มีค่าต่างกัน
2 ค่า
ผู้ใช้เลือกปุ่ม choose ใต้
classifiers
เลือกปุ่ม classifiers
เลือกต้นไม้ trees
เลือกขัน
้ ตอนวิธี Id3
ผู้ใช้กำาหนดเลือก use training
set
เพ่ อ
ื ใช้ทุกตัวอย่างในการสร้างต้นไม้
ผู้ใช้เลือกลักษณะปประจำาเป้าหมาย
ท่ีต้องการ
โดยปกติลักษณะประจำาสุดท้ายจะถู
กเลือก
ผู้ใช้กดปุ่ม Start
เพ่ ือเร่ิมสร้างต้นไม้
รายงานผลลัพธ์ของตัวแ
บบ กับข้อมูล
training
Confusion
matrix แสด
งค่าท่ีได้จากตัวแบบ
(ด้านบน) กับค่าจริง
(ด้านล่าง)
ผลลัพธ์ท่ีดีต้องไม่มีค่าน
อก diagonal
@data
แฟ้ ม weather.arff sunny,85,85,FALSE,no
@relation weather sunny,80,90,TRUE,no
@attribute outlook overcast,83,86,FALSE,yes
{sunny, overcast, rainy,70,96,FALSE,yes
rainy} rainy,68,80,FALSE,yes
@attribute temperature rainy,65,70,TRUE,no
real overcast,64,65,TRUE,yes
@attribute humidity real sunny,72,95,FALSE,no
@attribute windy sunny,69,70,FALSE,yes
{TRUE, FALSE} rainy,75,80,FALSE,yes
@attribute play {yes, sunny,75,70,TRUE,yes
no} overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
การเปล่ียนลักษณะประจำาให้เป็ น
ค่าไม่ต่อเน่ ือง
เลือก Discretize ในกล่อง
Filter โดยเลือก filter
unsupervised
attribute
ปรับค่าในกล่อง bins
ให้เหมาะสม เช่นกำาหนดให้เป็ น
3 กล่อง
กดป่ ุม OK
แล้วกด Apply
ผลท่ีได้จากแปลงเป็ นค่าไม่ต่อเน่ ือง
เลือก Id3 ในกล่อง Classify
ใต้แถบ Classify โดย
classifiers trees Id3
เลือก Use Training set
ในกล่อง Test option
กดป่ ุม Start
จะได้ผลลัพธ์ดังรูปด้านซ้าย
เลือก J48 ในกล่อง
Classify ใต้แถบ
Classify โดย
classifiers trees
J48
เราไม่จำาเป็ นต้องเปล่ียนลักษ
ณะประจำาให้เป็ นชนิดท่ีมีค่าไ
ม่ต่อเน่ ือง
เลือก Use Training set
ในกล่อง Test option
กดป่ ุม Start
จะได้ผลลัพธ์ดง ั รูปด้านซ้าย
ต้นไม้การตัดสินใจดังกล่าวสามารถจำาแนก play
ถูกต้อง 100%
=== Confusion Matrix ===
a b <-- classified as
9 0 | a = yes
0 5 | b = no
ตัวแบบการทำาเหมืองข้อมูลแบบจำาแนกประเภท
Bayes ใช้หลักของเบย์หรือตัวแบบเชิงความน่าจะเป็ น
Functions ตัวแบบในรูปของฟั งก์ชัน
Lazy ตัวแบบท่ีการตัดสินใจเกิดเม่ ือตัวอย่างใหม่ถูกนำาเข้า
Meta ตัวแบบเมตา
Misc วิธกี ารสร้างตัวแบบวิธีอ่น
ื
Trees ตัวแบบในรูปต้นไม้
Rules ตัวแบบในรูปกฎ
เร่ิมการทำางานของซอฟต์แวร์ Weka เปิ ดโมดูล Explorer
เปิ ดแฟ้ ม Weather.nominal.arff
เลือกขัน ้ ตอนวิธี
NaïveBayesSim
ple
ผู้ใช้กำาหนดเลือก use training
set
เพ่ ือใช้ทก ุ ตัวอย่างในการสร้างตัวแบ
ผู้ใช้เลือกลักษณะปประจำ
บของเบย์ าเป้าหมาย
ท่ีต้องการ
โดยปกติลักษณะประจำาสุดท้ายจะถู
กเลือก
ผู้ใช้กดป่ ุม Start
เพ่ ือเร่ิมสร้างตัวแบบของเบย์
รายงานผลลัพธ์ของตัวแ
บบ กับข้อมูล
training
Confusion
matrix แสด
งค่าท่ีได้จากตัวแบบ
(ด้านบน) กับค่าจริง
(ด้านล่าง)
ผลลัพธ์ท่ีดีต้องไม่มีค่าน
อก diagonal
ตัวแบบของเบย์ท่ีได้สามารถจำา === Confusion Matrix
แนก play ได้ถูกต้อง ===
92.8571% a b <-- classified as
มีการจำาแนกผิดเพียง 1 9 0 | a = yes
ตัวอย่าง 1 4 | b = no
สมมติว่าเราพบข้อมูล (outlook=sunny,
temperature=mild,humidity=normal,
windy=TRUE)
Pr(X|play=yes)·Pr(play=yes) =
Pr(outlook=sunny|
play=yes)·Pr(temperature=mild|play=yes)·
Pr(humidity=normal|play=yes)
·Pr(windy=TRUE|play=yes)· Pr(play=yes) =
0.25·0.41667·0.63636·0.3636·0.625 =
0.015064
Pr(X|play=no)·Pr(play=no) =
Pr(outlook=sunny|
play=no)·Pr(temperature=mild|play=no)·
ในกรณีค่าความน่าจะเป็ นบางช่วงเป็ นศูนย์
เราพบว่าหลักการของเบย์อาจไม่สามารถเลือกค่าของคลาสเป้
าหมายท่ีต้องการได้
เพราะเม่ ือนำาความน่าจะเป็ นศูนย์คูณด้วยตัวเลขใดๆ
ก็จะได้ค่าศูนย์
วิธีการแก้ปัญหาใช้ Laplace Estimator กล่าวคือ
การบวกหน่ึงหน่วยเข้าในทุกค่าของตารางความถ่ี
ก่อนการประมาณความน่าจะเป็ น
หลักการดังกล่าวถูกใช้ใน NaiveBayes
Class yes: P(C) = 0.63
outlook: Discrete Estimator. Counts = 3 5 4 (Total
= 12)
temperature: Discrete Estimator. Counts = 3 5 4
(Total = 12)
humidity: Discrete Estimator. Counts = 4 7 (Total
= 11)
windy: Discrete Estimator. Counts = 4 7 (Total =
11)
Class no: P(C) = 0.38
outlook: Discrete Estimator. Counts = 4 1 3 (Total
= 8)
temperature: Discrete Estimator. Counts = 3 3 2
(Total = 8)
humidity: Discrete Estimator. Counts = 5 2 (Total
= 7)
windy: Discrete Estimator. Counts = 4 3 (Total =
7)
การทำาเหมืองข้อมูลแบบจำาแนกประเภทใช้หลักของเบย์
ใข้การสร้างตารางความถ่ี
แล้วประมาณเป็ นความน่าจะเป็ นแบบมีเง่ ือนไข
NaiveBayesSimple
คือการใช้ความน่าจะเป็ นแบบมีเง่ ือนไข
โดยท่ีสมมุติว่าลักษณะประจำาแต่ละลักษณะประจำาเป็ นอิสระ
ต่อกัน
NaiveBayes
เป็ นการคำานวณหาค่าความน่าจะเป็ นแบบมีเง่ ือนไขโดยใช้
Laplace estimator (เติมหน่ึงหน่วยในตารางความถ่)ี
การกำาหนดคลาสของตัวอย่างจากตัวแบบ NaiveBayes
คำานวณโดยหาค่าความน่าจะเป็ นของคลาสท่ีมากท่ีสด ุ
เร่ิมการทำางานของซอฟต์แวร์ WEKA เปิ ดโมดูล Explorer
เปิ ดแฟ้ ม weather.arff
ตัวแบบเครือข่ายประสาทสามารถรับลักษณะประจำาท่ีมีค่าต่อ
เน่ ืองและค่าไม่ต่อเน่ ืองได้เลือกแถบ Classify
o จากผลลัพธ์ของตัวแบบเครือข่ายประสาท
เราพบว่าผลลัพธ์ท่ีได้คือค่าถ่วงน้ำาหนัก
การใช้งานผู้ใช้ต้องเปล่ียนค่าของตัวแปรนำาเข้าทัง้หมดเป็
นจำานวน
แล้วคำานวณค่าผลรวมของค่าถ่วงน้ำาหนักท่ีได้กบ ั ค่าของตั
วแปรนำาเข้า ผ่านฟั งก์ชันขอบแล้ว ส่งต่อไปจนถึง
Output node
o การคำานวณดังกล่าวมักมีความยุ่งยาก
เพ่ ือให้ผู้ใช้ซอฟต์แวร์ WEKA สามารถนำาตัวแบบไปใช้ได้
ผู้ใช้ต้องบันทึกตัวแบบ
แล้วใช้ตัวแบบกับแฟ้ มตัวอย่างกำาหนด
o หลังจากบันทึกตัวแบบเครือข่ายประสาท
ผู้ใช้ต้องการทดสอบโดยเตรียมข้อมูล Test data
o ขัน้ ตอนในการทดสอบข้อมูล Test data
• ใช้ซอฟต์แวร์ WEKA เปิ ด Test data
• เลือก classify
• กดเมาส์ขวาท่ีกล่อง Result list เลือก Load
model
• เลือก Supplied test set เปิ ดแฟ้ ม Test
data
•กดเมาส์ขวา เลือก Re-evaluate model on
current test set
o
ผู้ใช้สามารถดูผลลัพธ์ท่ีทำานายเปรียบเทียบกับคลาสเป้ าหมาย
โดยใช้ ArffViewer
o ลักษณะประจำาท่ีได้จากการทำานายจะขึ้นด้วยคำาว่า
Predicted แล้วตามด้วยช่ ือคลาสเป้ าหมาย เช่น
คลาสเป้ าหมายช่ ือ class ได้คลาสทำานายช่ ือ
predictedclass
o
ขัน
้ ตอนวิธีการทำาเหมืองข้อมูลแบบจำาแนกประเภทโดยใช้เครือ
ข่ายประสาทในซอฟต์แวร์ WEKA คือ
MultiLayerPerceptron
oการเรียนรูท ้ ่ีเกิดขึ้นคือ
การหาค่าถ่วงน้ำาหนักของเครือข่ายประสาทท่ีเช่ ือมจาก Input
Layer ไป Hidden Layer ไป Output Layer
oปรกติผลลัพธ์ท่ีได้ของเครือข่ายประสาทจะมีประสิทธิภาพดี
ผู้ใช้ต้องมีการเลือกพารามิเตอร์ท่ีเหมาะสม เช่น Hidden
nodes, learning rate, momentum, training
time
New Layout
สร้างผังการไหลใหม่
Save Layout เก็บผังท่ีสร้างไว้ใน
Knowledge Flow Layout บันทึกลง
แฟ้ มข้อมูลเพ่ อ
ื นำากลับมาใช้ใหม่
Open Layout
เปิ ดแฟ้ มข้อมูลท่ีเก็บผังท่ส
ี ร้างไว้แล้ว
เพ่ อ
ื นำากลับมาใช้ใหม่
Selection เปล่ย ี นเมาส์ให้เป็ นตัวชี้
เพ่ อื เลือกภาพสัญลักษณ์หรือเส้นเช่ ือม
Display help
แสดงข้อความอธิบายการใช้เคร่ ืองมือของผังการไหลข
องความรู้
o Filter ใช้ในการเตรียมข้อมูล
o Classifier/Clusterers/Association
ใช้ในการสร้างตัวแบบในการทำาเหมืองข้อมูล
o Evaluation ใช้ในการเลือกตัวแบบ
o Visualization
ใช้ในการแสดงผลลัพธ์ของการทำาเหมืองข้อมูล
o DataSinks ใช้ในการเก็บผลลัพธ์