Hathairat Ketmaneechairat336331DATA
MINING
Weka Introducing
What is Weka?
Waikato Environment for Knowledge AnalysisSince 1997 by Waikato University, New
ZealandOpensource software used for data analysis
by data mining techniquesThe system is written in JAVA and distributed
under the terms of the GNU General Public License
It runs on any platform Linux, Windows, Mac OS, PDA
How do we get?
http://www.cs.waikato.ac.nz/ml/wekaFree Weka tutorial on Web and book
Starting Weka
Weka’s GUI
Explorer เป็�นโป็รแกรมที่� ออกแบบในลั�กษณะ GUI หร�อ การป็ระมวลัผลัเหม�องข้�อม�ลัด้�วยว!ธี�การ (Method) แลัะอ�ลักอร!ที่#ม ต่%าง ๆ
Experimenter เป็�นโป็รแกรมที่� ออกแบบการที่ด้ลัองแลัะการที่ด้สอบผลั
KnowledgeFlow เป็�นโป็รแกรมออกแบบผ�งการไหลัข้องความร� � Simple CLI (Command Line Interface) เป็�นโป็รแกรมร�บค%าส� ง
การที่*างานผ%านการพิ!มพิ, ArffViewer เป็�นโป็รแกรมที่� ใช้�ส*าหร�บแก�ไข้แฟ้/มป็ระเภที่ Arff (Tool)
Log เป็�นโป็รแกรมที่� ใช้�อ%านข้�อความบ�นที่#กเก1บระหว%างการที่างาน การเป็2ด้โป็รแกรม Weka with Console จะเป็�นเป็�นการเป็2ด้หน�าจอ
Console มาเพิ! มเต่!มแลัะแสด้งการที่างานต่ามผ��ใช้�ส� งงาน
Weka Explorer
Tab ส*าหร�บการเร�ยกใช้�งาน
Workspace
Status Bar
Main menu
Weka Explorer
Preprocessing - การเต่ร�ยมข้�อม�ลัClassify – รวมโมด้�ลัการที่*าเหม�องข้�อม�ลัแบบจ�ด้แบ%ง
ป็ระเภที่ข้�อม�ลัCluster – รวมโมด้�ลัการที่*าเหม�องข้�อม�ลัแบบจ�ด้กลั4%มAssociate – รวมโมด้�ลัการที่*าเหม�องข้�อม�ลัแบบกฎความ
ส�มพิ�นธี,ข้องข้�อม�ลัSelect Attributes - รวมโมด้�ลัส*าหร�บให�ผ��ใช้�งานสามารถ
ก*าหนด้ Attribute ได้�ด้�วยต่นเองVisualization – การน*าเสนอข้�อม�ลัด้�วยภาพินามธีรรมสอง
ม!ต่!
หลั�กการใช้ Explorer ใน Weka
Knowledge Flow Application
ส%วนข้อง Knowledge Flow Application เป็�นการที่*างานที่� ม�หน�าต่าคลั�ายคลั#งก�บความส�มพิ�นธี,ระหว%างต่าราง
ในฐานข้�อม�ลั แต่% Knowledge Flow ในโป็รแกรม Weka น�9นจะแสด้ง
ภาพิข้องการเช้� อมโยงข้องข้�อม�ลัแลัะส%วนอ� น ๆ ซึ่# งที่*าให�ที่ราบถ#งข้�9นต่อนการที่*างานในแต่%ลัะข้�9นต่อน
Knowledge Flow Application
Simple CLI
การที่*างานข้อง Simple CLI หร�อ Simple Command Line น�9นเป็�นการที่*างานแบบผ��ใช้�งานจะต่�องพิ!มพิ,ค*าส� งเอง ซึ่# งเป็�นการที่*างานคลั�ายคลั#งก�บการส� งผ%าน GUI ใน Explorer ด้�งน�9นหากผ��ใช้�ที่� ไม%ที่ราบค*าส� ง (Shell) ข้อง Weka ก1สามารถใช้�งาน Explorer ได้�เช้%นก�น
Simple CLI
ข้อดี�ข้องซอฟต์�แวร�ว�กา เป็�นซึ่อฟ้ต่,แวร,เสร�ที่� สามารถด้าวน,โหลัด้ได้�ฟ้ร� สามารถที่างานได้�ที่4กระบบป็ฏิ!บ�ต่!การ เช้� อมต่%อ SQL Database โด้ยใช้� Java Database
Connectivity ม�การเต่ร�ยมข้�อม�ลัแลัะเที่คน!คในการสร�างแบบจาลัองที่� ครอบคลั4ม ม�ลั�กษณะที่� ง%ายต่%อการใช้�งาน
สร4ป็ข้�อด้�ข้องโป็รแกรม WEKA ค�อ ม�อ�ลักอร!ที่#มที่� ร� �จ�กก�นด้�ข้องการที่าด้าต่�าไมน,น! งให�เลั�อกใช้�อย%างครบถ�วน แลัะสามารถเข้�ยนฟ้=งก,ช้�นเพิ! มเข้�าไป็ในโป็รแกรมเองได้�
ความสามารถข้องซอฟต์�แวร�ว�กา สน�บสน4นเก� ยวก�บการที่าเหม�องข้�อม�ลั (Data Mining) การเต่ร�ยมข้�อม�ลั (Data Preprocessing) การที่าเหม�องข้�อม�ลัด้�วยเที่คน!คการจาแนกข้�อม�ลั
(Classification) การที่าเหม�องข้�อม�ลัด้�วยเที่คน!คการจ�ด้กลั4%ม (Clustering) การที่าเหม�องข้�อม�ลัด้�วยเที่คน!คการว!เคราะห,ความส�มพิ�นธี,
(Associating) เที่คน!คการค�ด้เลั�อกข้�อม�ลั (Selecting Attributes) เที่คน!คการน*าเสนอข้�อม�ลัด้�วยร�ป็ภาพิ (Visualization)
ส%วนป็ระกอบพิ�9นฐาน
Data set หมายถ#ง ข้�อม�ลัที่� จะนามาที่าเหม�องข้�อม�ลั อาจจะอย�%ในร�ป็แบบข้องไฟ้ลั,ข้�อความ ต่าราง ไฟ้ลั,ที่� พิร�อมจะที่า
preprocessing เช้%น .arff , csv เป็�นต่�น Relation หมายถ#ง ช้� อข้อง data set ที่� ม�อย�% ซึ่# งการใช้�งาน
โป็รแกรมม�กจะอ�างอ!งช้� อ relation ว%าเป็�นช้� อข้องแหลั%งข้�อม�ลัน�9น ๆ ลั�กษณะคลั�ายก�บช้� อข้องต่ารางในระบบฐานข้�อม�ลั Attritbute หมายถ#ง ส%วนป็ระกอบย%อยภายใน relation
หร�ออาจจะร� �จ�กก�นในช้� อ field ในระบบฐานข้�อม�ลั Instance หมายถ#ง รายการภายใน relation หร�ออาจจะ
ร� �จ�กก�นในช้� อข้อง record ในระบบฐานข้�อม�ลั
Preparing the data
ข้�อม�ลั Instance Attribute
การโหลัด้ข้�อม�ลัเข้�าไป็ในโป็รแกรม Weka ไฟ้ลั, CSV (Comma-Separated Value) ไฟ้ลั, ARFF (Attribute-Relation File Format) ฐานข้�อม�ลั
Data Preprocessing with Weka แป็ลังข้�อม�ลัที่� เป็�นต่�วเลัข้ให�เป็�นช้%วง เพิ! มข้�อม�ลัที่� ข้าด้หาย ค�นหาข้�อม�ลั Outliers
Ex: Customer Data
ใช้�ข้�อม�ลัเก� ยวก�บลั�กค�าซึ่# งป็ระกอบไป็ด้�วยข้�อม�ลัด้�งต่%อไป็น�9
หมายเลัข้สมาช้�ก
ช้��อสมาช้�ก เพศ อาย" รายไดี
1 สมช้�ย ช้าย 25 12
000
2 สมพิร หญิ!ง 18 70,00
3 สมอาร� หญิ!ง 35 35,000
4 สมส4ภาพิ เด้1ก 15 40,00
5 สมศร� หญิ!ง 300
20,000
Instance : ใช้�ส*าหร�บแสด้งข้�อม�ลัแต่%ลัะคน
Attribute : ใช้�ส*าหร�บค4ณลั�กษณะต่%าง ๆ ข้องข้�อม�ลั
Ex: Customer Data
ป็ระเภที่ข้�อม�ลัในแต่%ลัะ Attribute Numeric
ข้�อม�ลัที่� เป็�นต่�วเลัข้ ค%าว�ด้เช้!งป็ร!มาณ ได้�แก% attribute หมายเลัข้สมาช้!ก อาย4 แลัะรายได้�
Non-numeric หร�อ Categorical ข้�อม�ลัป็ระเภที่ต่%าง ๆ ไม%ม�ลั*าด้�บก%อนหลั�ง ได้�แก% attribute ช้� อสมาช้!ก แลัะเพิศ
Ex: Customer Data
การน*าเข้�าข้�อม�ลัในโป็รแกรม Weka
Open file :น*าเข้�าไฟ้ลั, CSV หร�อ ARFF ที่� ได้�จ�ด้เต่ร�ยมไว�แลั�ว
Open URL : น*าเข้�าไฟ้ลั, CSV หร�อ ARFF ผ%านเคร�อข้%าย
Open DB : ด้#งข้�อม�ลัจากฐานข้�อม�ลัGenerate : สร�างข้�อม�ลัต่�วอย%าง เพิ� อใช้�ในการ
ที่ด้สอบ โด้ยการระบ4จ*านวน instances แลัะจ*านวน attributes
Ex: Customer Data
ร� �จ�กไฟ้ลั, CSV (Comma-Separated Value) ใช้�เคร� องหมาย Comma (,) แบ%งระหว%าง attribute สามารถใช้� Excel ในการสร�างไฟ้ลั, CSV (เลั�อก Save เป็�น CSV
Format)
ไฟ้ลั,ข้�อม�ลัใน Excel
ไฟ้ลั,ข้�อม�ลัในร�ป็แบบ CSV
***ที่ด้ลัองสร�าง CSV ต่ามต่�วอย%าง
Ex: Customer Data
ร� �จ�กไฟ้ลั, ARFF (Attribute-Relation File Format) เป็�นไฟ้ลั,ที่� Weka ก*าหนด้ข้#9นเอง แบ%งเป็�น 2 ส%วน ส%วน Header: เป็�นส%วนแสด้งรายลัะเอ�ยด้ต่%าง ๆ
ช้� อข้องช้4ด้ข้�อม�ลั (relation) ช้� อข้องแต่%ลัะ attribute ป็ระเภที่ข้องข้�อม�ลัในแต่%ลัะ attribute (data type)
ส%วน Data: เป็�นส%วนข้องข้�อม�ลัในแต่%ลัะ attribute ที่� ต่�องการใช้�ในการว!เคราะห,
Ex: Customer Data
Tag พิ!เศษที่� ม�ในส%วน header ในไฟ้ลั, ARFF @relation <relation-name>
ใช้�ในการบอกช้� อเร�ยกข้องช้4ด้ข้�อม�ลั @attribute <attribute-name> <data type>
ใช้�ในการบอกช้� อ attribute แลัะช้น!ด้ข้องข้�อม�ลัTag พิ!เศษที่� ม�ในส%วน Data ในไฟ้ลั, ARFF
@data หมายความว%า บรรที่�ด้ต่%อไป็จากน�9จะเป็�นส%วนข้องข้�อม�ลั โด้ยใช้�เคร� องหมาย
comma ค� นระหว%าง attributeส%วนที่� น*าหน�าด้�วย % หมายถ#ง การคอมเมนที่,ภายในไฟ้ลั,ไม%ม�ผลัต่%อการที่างาน ส%วนที่� น*าหน�าด้�วย @ ค�อส%วนป็ระกาศ ช้� อ แลัะ Attribute
Ex: Customer Data
Ex: Customer Data
ป็ระเภที่ข้�อม�ลัในแต่%ลัะ attribute ข้�อม�ลัที่� เป็�นต่�วเลัข้
จ*านวนเต่1ม แลัะจ*านวนจร!ง ใช้� keyword numeric
ข้�อม�ลัที่� ไม%ใช้%ต่�วเลัข้ (nominal) ที่� ไม%ม�ลั*าด้�บ หร�อไม%สามารถบอกป็ร!มาณได้� เช้%น ช้� อคน ส! งข้อง สถานที่� เพิศ ม�กระบ4ค%าที่� เป็�นไป็ได้�ที่�9งหมด้ในร�ป็แบบข้อง set เช้%น set {0,1,2}
เป็�นต่�น
ลัองเป็ร�ยบเที่�ยบความแต่กต่%างระหว%าง CSV แลัะ ARFF
Ex: Weather Data
ใช้�ข้�อม�ลัช้� อ weather.arff อย�%ใน C:\Program Files\Weka-3-6\data
เป็�นข้�อม�ลัสภาพิอากาศม�ผลัต่%อการแข้%งข้�นเบสบอลัในอเมร!กา
เก1บข้�อม�ลัสภาพิอากาศย�อนหลั�ง 14 ว�น
ที่� มา http://www.theweatherprediction.com/habyhints/285/
Ex: Weather Data
ใช้�ข้�อม�ลัช้� อ weather.arff อย�%ใน C:\Program Files\Weka-3-6\data
เป็�นข้�อม�ลัสภาพิอากาศม�ผลัต่%อการแข้%งข้�นเบสบอลัในอเมร!กา
เก1บข้�อม�ลัสภาพิอากาศย�อนหลั�ง 14 ว�น
เป็2ด้ weather.arff ด้�วย editorที่� มา
http://www.theweatherprediction.com/habyhints/285/
Ex: Weather Data
เป็2ด้ Weka เลั�อก Explorer -> กด้ป็4@ม Open file -> เลั�อกไฟ้ลั, weather.arff
แถบเมน� ป็4@มโหลัด้
ฟ้2ลัเต่อร,Relation ที่� โหลัด้เข้�ามา
Attribute ข้อง relationก*าหนด้ class
กราฟ้
สถานะการที่*างาน
Ex: Weather Data
ส%วนที่� ส*าค�ญิข้อง Preprocess ค�อเมน� Filter แป็ลังข้�อม�ลั เน� องจากบางเที่คน!คที่*างานได้�เฉพิาะข้�อม�ลัที่� เป็�น
nominal เที่%าน�9น Discretize: แป็ลังข้�อม�ลัต่�วเลัข้ (numeric or real) ให�เป็�น
ข้�อม�ลัป็ระเภที่ (nominal) StringToNominal: แป็ลังข้�อม�ลัที่� เป็�นลั�กษณะข้�อความ (string )
ให�เป็�นข้�อม�ลัลั�กษณะป็ระเภที่ (nominal) แก�ไข้ข้�อม�ลัที่� ผ!ด้พิลัาด้ แก�ไข้ข้�อม�ลัที่� ผ!ด้พิลัาด้
ReplaceMissingValue: เพิ! มข้�อม�ลัที่� ข้าด้หายไป็ การค�นหา Outliers
InterquartileRange: พิ!จารณาจากการกระจายต่�วข้องข้�อม�ลั
Ex: Weather Data
Discretization : แป็ลังข้�อม�ลัต่�วเลัข้ (numeric or real) ใหเป็�นข้�อม�ลัป็ระเภที่ (nominal)
Discretize
Ex: Weather Data
Missing Value ข้�อม�ลับางส%วนหายไป็ อาจ
เก!ด้จาก ความผ!ด้พิลัาด้ในการก
รอกข้�อม�ลั ความจงใจในการให�
ข้�อม�ลัจร!ง ข้�อม�ลัไม%น%าเช้� อถ�อในการ
ว!เคราะห,หร�อที่*านาย จากต่�วอย%าง Customer
ม�ต่�วอย%างใด้ไม%น%าเช้�อ%ถ�อ
หมายเลัข้
สมาช้�ก
ช้��อสมาช้�ก
เพศ อาย" รายไดี
1 สมช้�ย ช้าย 2
5
12
00
0
2 สมพิร หญิ!ง1
8
70,00
3 สมอาร� หญิ!ง3
5
35,00
0
4 สมส4ภาพิ เด้1ก 1
5
40,00
5 สมศร� หญิ!ง3
0
0
20,00
0
Ex: Weather Data
การ Replace missing valueใช้�เคร� องหมาย ? แที่นข้�อม�ลัที่� หายไป็หร�อข้�อม�ลัที่�
ต่�องการให�ม�การ replaceถ�าข้�อม�ลัเป็�นต่�วเลัข้ แที่นที่� ด้�วย ค%าเฉลั� ย (mean)
ข้องค%าใน attribute น�9น ๆถ�าข้�อม�ลัเป็�นป็ระเภที่ แที่นที่� ด้�วย ข้�อม�ลัที่� ป็รากฏิ
บ%อยที่� ส4ด้ (mode) ใน attribute น�9น ๆ
Ex: Weather Data
การ Replace missing valueหมายเลั
ข้สมาช้�ก
ช้��อสมาช้�ก
เพศ อาย" รายไดี
1 สมช้�ย ช้าย 2
5
12
00
0
2 สมพิร หญิ!ง 1
8
70,00
3 สมอาร� หญิ!ง 3
5
35,00
0
4 สมส4ภาพิ ? 1
5
40,00
5 สมศร� หญิ!ง ? 20,00
0
Ex: Weather Data
การ Replace missing value
หมายเลัข้
สมาช้�ก
ช้��อสมาช้�ก
เพศ อาย" รายไดี
1 สมช้�ย ช้าย 2
5
12
00
0
2 สมพิร หญิ!ง 1
8
70,00
3 สมอาร� หญิ!ง 3
5
35,00
0
4 สมส4ภาพิ หญิ�ง 1
5
40,00
5 สมศร� หญิ!ง 22.25
20,00
0
Ex: Weather Data
ที่ด้ลัองที่*าโด้ยการแก�ไฟ้ลั, CustomerData.arff Save ไฟ้ลั,ในช้� อ CustomerData_wmissing.arffกด้ป็4@ม Choose -> filters->unsupervised-
>attribute->ReplaceMissingValues แลั�วกด้ป็4@ม Apply
Ex: Weather Data
Detect Outlier Outlier ค�อข้�อม�ลัที่� ม�ความผ!ด้ป็กต่!ที่� แป็ลักแยกจากข้�อม�ลั
ส%วนใหญิ% อาจจะถ�อว%าเป็�นข้�อม�ลัจร!งหร�อ noise ก1ได้� ใช้�ว!ธี�ที่� เร�ยกว%า Interquartile range (IQR) ที่ด้ลัองการใช้� outlier จากไฟ้ลั, customer_outlier.arff Edit ด้�ข้�อม�ลัก%อน ก%อนที่*า outlier ควรลับข้�อม�ลัที่� ไม%เก� ยวข้�องออก ในที่� น�9ค�อ
attribute Customer_ID แลัะ Name กด้ป็4@ม Choose -> filters->unsupervised-
>attribute->InterquartileRange แลั�วกด้ป็4@ม Apply
Memory Error
ซึ่อฟ้ต่,แวร, Weka จะที่*าการอ%านข้�อม�ลั ทั้�&งหมดี เข้�าไป็เก1บไว�ในหน%วยความจ*า (memory) ภายในเคร� องก%อน แลั�วจ#งน*าข้�อม�ลัเหลั%าน�9ไป็ป็ระมวลัผลัต่%อไป็
อาจเก!ด้ error ได้� เน� องจากหน%วยความจ*าไม%พิอการค*านวณข้นาด้ข้องหน%วยความจ*าที่� ต่�องใช้� ค*านวณได้�จากApprox_mem = number of attributes * number
of instances * 8ต่�วอย%างเช้%น ข้�อม�ลั 10000000, , instances ม�
10 attributes จะต่�องใช้�หน%วยความจ*า = 10,000,000*10*8 = 800,000,000 = 800 MB
Memory Error
ให�ที่*าการสร�างข้�อม�ลัต่�วอย%าง โด้ยการกด้ป็4@ม Gernerate… เลั�อก numExamples เป็�น 1000000, , แลั�วกด้ป็4@ม
Gernerateเม�าส, Click เพิ� อแก�ไข้ parameters
Memory Error
จะป็รากฎหน�าต่%างด้�งน�9
Memory Error
ที่*าการเพิ! มข้นาด้โด้ยการแก�ไข้ในไฟ้ลั, C:\Program Files\Weka-3-6\RunWeka.ini
ที่*าการเป็ลั� ยน maxheap ให�มากข้#9น แต่%ไม%เก!นข้นาด้ข้องหน%วยความจ*าภายในเคร� อง