DR. UREERAT SUKSAWATCHON 321641 DATA MINING Weka Introducing DR. UREERAT SUKSAWATCHON 321641 DATA MINING
What is Weka? Waikato Environment for Knowledge Analysis Since 1997 by Waikato University, New Zealand Opensource software used for data analysis by data mining techniques The 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/weka Free Weka tutorial on Web and book
Starting Weka Weka’s GUI
Weka Explorer Tab สำหรับการเรียกใช้งาน Workspace Status Bar
Weka Explorer Preprocess Classify Cluster Associate Select Attributes Visualize
Preparing the data ข้อมูล การโหลดข้อมูลเข้าไปในโปรแกรม Weka Instance Attribute การโหลดข้อมูลเข้าไปในโปรแกรม Weka ไฟล์ CSV (Comma-Separated Value) ไฟล์ ARFF (Attribute-Relation File Format) ฐานข้อมูล Data Preprocessing with Weka แปลงข้อมูลที่เป็นตัวเลขให้เป็นช่วง เพิ่มข้อมูลที่ขาดหาย ค้นหาข้อมูล Outliers
Ex: Customer Data ใช้ข้อมูลเกี่ยวกับลูกค้าซึ่งประกอบไปด้วยข้อมูลดังต่อไปนี้ หมายเลขสมาชิก ชื่อสมาชิก เพศ อายุ รายได้ 1 สมชัย ชาย 25 12,000 2 สมพร หญิง 18 7,000 3 สมอารี 35 35,000 4 สมสุภาพ เด็ก 15 4,000 5 สมศรี 300 20,000 Instance : ใช้สำหรับแสดงข้อมูลแต่ละคน Attribute : ใช้สำหรับคุณลักษณะต่าง ๆ ของข้อมูล
Ex: Customer Data ประเภทข้อมูลในแต่ละ Attribute Numeric ข้อมูลที่เป็นตัวเลข ค่าวัดเชิงปริมาณ ได้แก่ attribute หมายเลขสมาชิก อายุ และรายได้ Non-numeric หรือ Categorical ข้อมูลประเภทต่าง ๆ ไม่มีลำดับก่อนหลัง ได้แก่ attribute ชื่อสมาชิก และเพศ
Ex: Customer Data การนำเข้าข้อมูลในโปรแกรม Weka Open file :นำเข้าไฟล์ CSV หรือ ARFF ที่ได้จัดเตรียมไว้แล้ว Open URL : นำเข้าไฟล์ CSV หรือ ARFF ผ่านเครือข่าย Open DB : ดึงข้อมูลจากฐานข้อมูล Generate : สร้างข้อมูลตัวอย่าง เพื่อใช้ในการทดสอบ โดยการระบุจำนวน instances และจำนวน attributes
Ex: Customer Data รู้จักไฟล์ CSV (Comma-Separated Value) ใช้เครื่องหมาย Comma (,) แบ่งระหว่าง attribute สามารถใช้ Excel ในการสร้างไฟล์ CSV (เลือก Save เป็น CSV Format) ไฟล์ข้อมูลในรูปแบบ CSV ไฟล์ข้อมูลใน Excel ***ทดลองสร้าง CSV ตามตัวอย่าง
Ex: Customer Data รู้จักไฟล์ ARFF (Attribute-Relation File Format) เป็นไฟล์ที่ Weka กำหนดขึ้นเอง แบ่งเป็น 2 ส่วน ส่วน Header: เป็นส่วนแสดงรายละเอียดต่าง ๆ ชื่อของชุดข้อมูล (relation) ชื่อของแต่ละ attribute ประเภทของข้อมูลในแต่ละ attribute (data type) ส่วน Data: เป็นส่วนของข้อมูลในแต่ละ attribute ที่ต้องการใช้ในการวิเคราะห์
Ex: Customer Data Tag พิเศษที่มีในส่วน header ในไฟล์ ARFF @relation <relation-name> ใช้ในการบอกชื่อเรียกของชุดข้อมูล @attribute <attribute-name> <data type> ใช้ในการบอกชื่อ attribute และชนิดของข้อมูล Tag พิเศษที่มีในส่วน Data ในไฟล์ ARFF @data หมายความว่า บรรทัดต่อไปจากนี้จะเป็นส่วนของข้อมูล โดยใช้เครื่องหมาย comma คั่นระหว่าง attribute % แทน comment หรือคำอธิบาย
Ex: Customer Data
Ex: Customer Data ประเภทข้อมูลในแต่ละ attribute ข้อมูลที่เป็นตัวเลข จำนวนเต็ม และจำนวนจริง ใช้ keyword numeric ข้อมูลที่ไม่ใช่ตัวเลข (nominal) ที่ไม่มีลำดับ เช่น ชื่อคน สิ่งของ สถานที่ เพศ มักระบุค่าที่เป็นไปได้ทั้งหมดในรูปแบบของ set เช่น sex {0,1,2} เป็นต้น ลองเปรียบเทียบความแตกต่างระหว่าง CSV และ ARFF
Ex: Weather Data ใช้ข้อมูลชื่อ weather.arff อยู่ใน C:\Program Files\Weka-3-6\data เป็นข้อมูลสภาพอากาศมีผลต่อการแข่งขันเบสบอลในอเมริกา เก็บข้อมูลสภาพอากาศย้อนหลัง 14 วัน ที่มา http://www.theweatherprediction.com/habyhints/285/
Ex: Weather Data ใช้ข้อมูลชื่อ weather.arff อยู่ใน C:\Program Files\Weka-3-6\data เป็นข้อมูลสภาพอากาศมีผลต่อการแข่งขันเบสบอลในอเมริกา เก็บข้อมูลสภาพอากาศย้อนหลัง 14 วัน เปิด weather.arff ด้วย editor ที่มา http://www.theweatherprediction.com/habyhints/285/
Ex: Weather Data เปิด Weka เลือก Explorer -> กดปุ่ม Open file -> เลือกไฟล์ weather.arff 1 6 2 4 3 5
Ex: Weather Data ส่วนที่สำคัญของ Preprocess คือเมนู Filter แปลงข้อมูล เนื่องจากบางเทคนิคทำงานได้เฉพาะข้อมูลที่เป็น nominal เท่านั้น 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 หมายเลขสมาชิก ชื่อสมาชิก เพศ อายุ ข้อมูลบางส่วนหายไป อาจเกิดจาก ความผิดพลาดในการกรอกข้อมูล ความจงใจในการให้ข้อมูลจริง ข้อมูลไม่น่าเชื่อถือในการวิเคราะห์หรือทำนาย จากตัวอย่าง Cutomer มีตัวอย่างใดไม่น่าเชือ่ถือ หมายเลขสมาชิก ชื่อสมาชิก เพศ อายุ รายได้ 1 สมชัย ชาย 25 12,000 2 สมพร หญิง 18 7,000 3 สมอารี 35 35,000 4 สมสุภาพ เด็ก 15 4,000 5 สมศรี 300 20,000
Ex: Weather Data การ Replace missing value ถ้าข้อมูลเป็นตัวเลข แทนที่ด้วย ค่าเฉลี่ย (mean) ของค่าใน attribute นั้น ๆ ถ้าข้อมูลเป็นประเภท แทนที่ด้วย ข้อมูลที่ปรากฏบ่อยที่สุด (mode) ใน attribute นั้น ๆ
Ex: Weather Data การ Replace missing value หมายเลขสมาชิก ชื่อสมาชิก เพศ อายุ รายได้ 1 สมชัย ชาย 25 12,000 2 สมพร หญิง 18 7,000 3 สมอารี 35 35,000 4 สมสุภาพ ? 15 4,000 5 สมศรี 20,000
Ex: Weather Data การ Replace missing value หมายเลขสมาชิก ชื่อสมาชิก เพศ อายุ รายได้ 1 สมชัย ชาย 25 12,000 2 สมพร หญิง 18 7,000 3 สมอารี 35 35,000 4 สมสุภาพ 15 4,000 5 สมศรี 22.25 20,000
Ex: Weather Data ทดลองทำโดยการแก้ไฟล์ CustomerData.arff Save ไฟล์ในชื่อ CustomerData_wmissing.arff กดปุ่ม Choose -> filters->unsupervised->attribute->ReplaceMissingValues แล้วกดปุ่ม Apply
Ex: Weather Data Detect Outlier Outlier คือข้อมูลที่มีความผิดปกติที่แปลกแยกจากข้อมูลส่วนใหญ่ อาจจะถือว่าเป็นข้อมูลจริงหรือ noise ก็ได้ ใช้วิธีที่เรียกว่า Interquartile range (IQR) ทดลองการใช้ outlier จากไฟล์ customer_outlier.arff Edit ดูข้อมูลก่อน ก่อนทำ outlier ควรลบข้อมูลที่ไม่เกี่ยวข้องออก ในที่คือ attribute Customer_ID และ Name กดปุ่ม Choose -> filters->unsupervised->attribute->InterquartileRange แล้วกดปุ่ม Apply
Memory Error ซอฟต์แวร์ Weka จะทำการอ่านข้อมูลทั้งหมดเข้าไปเก็บไว้ในหน่วยความจำ (memory) ภายในเครื่องก่อน แล้วจึงนำข้อมูลเหล่านี้ไปประมวลผลต่อไป อาจเกิด error ได้ เนื่องจากหน่วยความจำไม่พอ การคำนวณขนาดของหน่วยความจำที่ต้องใช้ คำนวณได้จาก Approx_mem = number of attributes * number of instances * 8 ตัวอย่างเช่น ข้อมูล 10,000,000 instances มี 10 attributes จะต้องใช้หน่วยความจำ = 10,000,000*10*8 = 800,000,000 = 800 MB
Memory Error ให้ทำการสร้างข้อมูลตัวอย่าง โดยการกดปุ่ม Gernerate… เลือก numExamples เป็น 1,000,000 แล้วกดปุ่ม Gernerate เม้าส์ Click เพื่อแก้ไข parameters
Memory Error จะปรากฎหน้าต่างดังนี้
Memory Error ทำการเพิ่มขนาดโดยการแก้ไขในไฟล์ C:\Program Files\Weka-3-6\RunWeka.ini ทำการเปลี่ยน maxheap ให้มากขึ้น แต่ไม่เกินขนาดของหน่วยความจำภายในเครื่อง