Post on 17-Mar-2018
Data Mining – 1
Why Mine Data?
- เอาขอมลมาวเคราะห ท านายอนาคต
- Mine อะไรจาก Data? – เพราะวา Data เยอะ เกบอยใน warehouse มขอมลหลายแบบ เยอะแยะ
- เมอกอนคอมพแพง เดยวนคอมพถกเมมโมรถกลง Data กเกบพอ แตเราใช Algorithm มาชวยดวย เพอใหเกบขอมลขนาด
ใหญไดดขน ประหยด ใช Data Structure ทเหมาะสม
- เกดการแขงขนกน ท าใหเราตองพยายามเอาขอมลมาวเคราะห เพอใหเกงกวาคแขง
Mining Large Data Set – Motivation
- มกจะมอะไรใหมๆ อยใน data ทเรามองไมเหน (hidden) ท าใหเราตองดงมนออกมา
- Uncover hidden knowledge
What is Data Mining?
- ขดจาก Data ขนาดใหญ แลวเอาไปตดสนใจ
- คนขอมลเพอไปหาความสมพนธ รปแบบของขอมล
- เราไมจ าเปนตองวเคราะหดวย stat เลยในครงแรก เราท า explore ดกอนกได วามนมอะไร แลวคอยเอาไปตดสนใจ เชน เรา
อยากดการใชโทรศพทของคนไทย แตขอมลทเราม มแตขอมลของคนกรงเทพ เพราะงนแปลวาขอมลเราไมเวรค ท าใหมค าวา
Exploration & Analysis จาก large quantity of data เพอคนหารปแบบทมความหมายและเปนประโยชน
- แตถาเราไปคนเจออะไรทรอยแลว เปน fact อยแลวกไมนบวาเปน knowledge
KDD
- selection > preprocessing > transformation > data mining > interpretation/evaluation
- เชนเวลาขายของ บนเนต เราซออยางนง อกอยางจะโผลมาใหกดซอดวย
Evaluate of Database Technology
- เกดมานานแลวจา
- เดยวนกไปท า warehouse, mining
Database VS Data Mining
- Database จะเปนพวกการ search เชน คนท าบตรเครดต ใครชอ Smith บาง เดอนทแลวใครยอดซอสงกวา 100 บาท
บาง?
- Data Mining จะเปนการดวา ใครบางทมาท าบตรเครดต แลวจะสรางปญหา, ใครลงเรยนวชานแลวจะไดเอบาง? เอา
ลกษณะ เอาโมเดลมาวเคราะห ,ถามฐานขอมลลกคา แบงลกคาไดเปนกกลมทมพฤตกรรมผบรโภคทใกลเคยงกน
- การท า Mining ไมใชการดจาก group by เหมอนพวก Database โจทยของสองแบบตางกน
- Mining จะเปนการทขอมลพาเราไปเจอความรขอมลใหมอะไรบางอยาง
Data, Information, Knowledge
- Data เปนขอมลดบทสรางมาจากระบบตางๆ เชน เวบ ระบบเกบขอมลตางๆ
- Information เปนพวกรายงาน ทไดมาจาก Warehouse เชน กราฟตางๆ
- Knowledge เปนการสกดขอมลมาจาก Information ทเปนความรใหมๆ Guide ส าหรบการตดสนใจ
Database VS Data Warehousing
- Warehouse อยากรวายอดขายของจงหวดนเปนเทาไหร ทอ าเภอนเปนยงไงบาง ,hierarchy มาเกยวของ
- Database อยากรวายอดขายเดอนทแลวเปนเทาไหร
- Mining เปนการดวา เดอนหนายอดขายจะเปนเทาไหร แลวท าไมมนถงเปนแบบนน จะขนหรอจะลง ดแนวโนม ใช
Algorithm ใชคอมพวเตอรทมสมรรถนะเขามาชวย
Search VS Discovery
- Mining จะเปนการ Discover ไมใชการคนหาธรรมดา ถามโครงสรางจะเปนแบบ graph-mining, sequence-mining
ถาไมมโครงสรางจะเปน text-mining, web-mining, image-mining
- Search จะเปนพวกคนหาเฉยๆ เชน ถามโครงสราง จะเปน Data querying, warehousing ถาไมมโครงสรางกจะเปน
information retrieval
KDD Process
- Selection: เปนการเลอกขอมล มาจากขอมลทงหมดเพอเอามาท า mining เชน จะดเกรดนกเรยน กไมตองเอาอาชพของพอ
แมมาดกได เดยวนมวธในการเลอกทงายๆ โดยเปนการเลอก attribute ทสงผลตอ target (Feature Selection
Algorithm) เพราะบางท เปนพนๆ Attribute จะเลอกยงไง ขอมลทเปน text จะเลอกค ายงไง
- Preprocess: Data quality, sampling, clean data,… เยอะ เปนสวนทกนเวลามากทสด
- Transform: Algorithm จะตองการ specific format เรากตองเปลยนใหมนตรงกบทตองการ เชน อลกอตองการขอมล
ทมคาไมเกน 1 เรากตองท า normalization กอน
- Data mining: เลอกวธทจะใช ตองเลอกเทคนคทเหมาะสม ท า clustering? classification? มเทคนคใหเลอกเยอะ เรา
ตองจนพารามเตอรของเทคนคทจะใชใหด เพอใหไดโมเดลทดทสด
- Interpretation: เปนการตความ เพอใหได output pattern ทถกตองและนาสนใจ ถงจะได knowledge ออกมา
Data Mining
- เกดจากไอเดยของพวก ML / AI / pattern recognition / statistic / database system เพราะพวกนมเทคนคท
ตางกนไป รองรบตางกนไป
- วธเฉพาะตวบางอยาง อาจจะไมเหมาะเชน ขอมลขนาดใหญ ม dimension เยอะ ขอมลมาจากหลาย source ท าให
mining จะเอาวธพวกน มาท าใหเหมาะกบสเกลใหญๆ
Statistics -> KDD
- Stat เขาใจยาก ดงมาสวนนงแลวบอกวาอธบายไดทงหมด แต Mining เนนความแมนย า มากกวา ท าใหกระบวนการ Stat
สามารถตความไดงายขน แลวนกstat กมนอย (สมยกอน) ใชคนท า Mining กท าได
Basic Data Mining Task
- Prediction modeling เปนการท านาย ทไมใชตวเลข เชน ท านายวา จะอยหรอไป หนขนหรอลง(classification) แตถา
เปนตวเลขกจะเปนพวก ท านายเกรด (prediction)
- Clustering แบงขอมลเปนกลมๆ ทแตละกลมม record ทเหมอนกนหรอคลายกน แบงกลมอตโนมต ลกษณะวธการดวา
ของสองอยางเหมอนกน ดยงไง เชน โมเดล K-mean
- Link Analysis หา pattern ทเกดขนดวยกนบอยๆ เชนพวก ซอAจะซอBดวย
- Summarization ใหเอกสารไปแลวท าการยอ เปนการอธบาย Data สราง abstract
- Time Series Analysis เชน ดพวกหนตามเวลา
Classification: Application
- Direct Marketing เชน การดวา เวลาจะสงบตรเชญไปหาใคร ทมแนวโนมวาจะท าการซอ ท าใหไมตองสงไปหาทกคน
- Churn Prediction เปนการดวา ลกคาคนไหนจะหนจากเราไป เรากสงโปรโมชนไปใหลกคากอนทสายเกนไป
Clustering Definition
- แบงกลมใหแลว เอามา visualize ใหเราดไดดวยวา ขอมลแตละกลมเปนยงไง เรามความสนใจในกลมไหน
Sequential Pattern Discovery: Examples
- เชน ซอหนงสอเลมน ตอดวยเลมน …
www.kdnuggets.com
หนงสอใชแคครงเทอม แคบางบท ซลอกเอากได
Data Mining -2 - จากควซ คาบางคา correlate กนเกนไป ท าใหไมจ าเปนตองท า Data mining กได เพราะฉะนน คานนเลยไมเหมาะสม
Supervised Learning
- การเรยนรแบบมตวอยาง
- มตวอยาง ม target ทชดเจน ใช training เปน input ทมค าตอบระบไวอยแลว
- คาทระบ อาจจะเปน Mathematical หรอ Categorical เชนพวก เพศ คาสงหรอต า แลวกเปนคา predict ทระบตวอยาง
ค าตอบไวแลว
- ท า supervised เพราะเราตองการท านาย input ทเขามาใหม วาจะไดค าตอบเปนอะไร
- ถาเราไมม objective ชดเจนเราจะไมรวาอะไรจะเปน target ของการท านายน ท าใหไมสามารถท าไดหรอ รแตวาไมมคาค าตอบ
ของขอมลตวอยาง
- เพราะฉะนนปญหาคอ ไมมค าตอบ(เฉลย) ไมรวาจะใชอะไรเปน feature ในการท านาย
- Classification/prediction
Supervised: Classification
- ท านาย categorical target เชน ซอหรอไมซอ
- การพจารณา case เชน การท านายลกคาหนงคน ตองพจารณาจากการโทรศพทมากกวาหนงครง ไมใชแค transaction การโทร
ครงเดยว เพราะฉะนน grain ของการท านายนคอ ลกคา (Customer ID)
- ตวแปรทเอามาใชในการท านาย เรยกวา predictor, feature, attribute สวนคาทตองการคอ outcome (สวนใหญจะเปน
คา binary ใชหรอไมใช แต multiclass กม target มากกวา2)
Supervised: Prediction
- จะเปนการท านายตวเลข
Unsupervised Learning
- ตองการแบงขอมล ไมม target
- ใชการท า clustering, association rules, data exploration, data visualization
- อยางเวลา clustering จะแบงเปนกลมของขอมล แลวแสดงรายละเอยดใหเราเหนเลยวาแตละกลมของขอมลเปนแบบไหน
- Association Rule จะสรางกฎออกมาวา อะไรจะเกนขนกบอะไร เชน ลกคาซอนมจะซอโคกดวย
- Data Exploration จะแสดงขอมลเยอะๆ ดวยเทคนค visualization แบงขอมลเปนหนวยๆ ไมเหมอนเปนกลมแบบ
clustering
- Data Visualization
Steps in Data Mining
- ก าหนด purpose ทชดเจนของการท า mining ท า supervised, unsupervised
- ไปเอา Data มา ถามนเยอะมาก จะท า sampling กอนมย โดย sampling ตองท าแบบมหลกการ ใหไมเสยการกระจายของ
ขอมล ถาขอมลนอย อาจจะตอ งgenเพมเองดวย
- Explore, clean, pre-process
- Reduce attribute บางอนอาจจะเยอะไป เกด correlation มากเกนไป ตองเอาออก และถาเกดวาเราท า Supervised เรา
ตองแบงขอมลเปนสวนๆ ทจะเอาไวท า training, testing, validation
- เลอกเทคนคทใชวาจะท าอะไร classification, clustering, ….
- เลอกเทคนคทใช อลกอรทมของการท างาน เพอใหไดโมเดลทดทสด
- ถาเกดวายงไมด กตองกลบไปท าใหม ขอมลยงไมดกแกเพม ท าการจนระบบ
- ตองมการท าการ compare model เชน F-measure ,Precision , Recall หรออาจจะเลอกหลายๆ อลกอรทม
- โมเดลทดทสด คอ โมเดลทแมนทสด แมนกบ Unseen ไมใชแมนกบ data ทมาเทรน
Obtain Data: Sampling
- ปกตแลวท ากบขอมลขนาดใหญ ท าใหบาง tools อาจจะไมรองรบ
- ขอมลบางอยางอาจจะไมไดสนใจจรงๆ เชน อยางคนเปนมะเรง จ านวนปรมาณขอมลจะนอยมากๆ สวนใหญจะเปนคนทไมเปน ท า
ใหขอมลมนนอยเกนไป ตองท า oversampling ท าใหคลาสของคนทเปนมะเรงมจ านวนมากขน ท าใหขอมลสองสวน balance
กน แตการ oversampling กตองท าใหเหมาะสมดวย ไมใหมนเวอรเกนไป
- แลวเวลามการท า sampling เรากตองท าการ adjust result ดวย
Preprocessing
- กนเวลามาก 60-70% ทงหมด เพราะเวลาใชเทคนค มนมอลกออยแลวแคท าการปรบใหมนแมน
- แตขอมลทเราเอามา สวนใหญจะไมด ตองเอามาแกไข แปลง ไมงนโมเดลเราจะออกมาไมมประสทธภาพ
- หลกๆ เชน
- แปลงขอมลจากตวเลข เปนประเภท หรออยางอน บางอลกอเหมาะกบขอมลตวเลข บางอนเหมาะกบแบบประเภท บางอนตองการ
คา 0-1 เทานน
Variable Handling
- ส าหรบแบบ Numerical บาง tool ไมรองรบขอมลแบบละเอยด เราตองท า discretize ใหเปนชวงกอน
- ถาเปน categorical กเชน Naïve Bayes หรอบาง tool เปน binary วาใชหรอไม แทนทจะใสคาไดวา ยหอ A B C เราตองแก
เปน ใช A,ไมใชA ใชB,ไมใชB
Detecting Outlier
- บางขอมลเปนคาทแตกตางจากคาอนๆ มากๆ ซงจะเปนคาทสงผลท าใหโมเดลเพยนไป เชน คนอนเงนเดอนประมาณสามหมน แตม
สองสามคนสามลาน ท าใหโมเดลมนเพยน
- อาจจะตองใช domain knowledge เพอชวยเอามนออกไป
Handling Missing Data
- บางอนจะถกดรอปไปเพราะอลกอรทมเหนวาคาหลายๆคา หายไป
- แบบแรก omission เราอาจจะตดทงไปเลยได ถาเกดวาจ านวน row มนไมเยอะมาก แตถาเกดวามนมจ านวนมากๆ เรากไมควร
จะเอามนทง
- แบบทสอง ถาเกดวามจ านวน row มาก เราก replace อาจจะ replace โดยการเดาคาจาก mining กอนกได หรอจะแทนดวย
คา min/max
Data Reduction
- ลดจ านวนขอมลใหนอยลง
- ลด column ลดจ านวนตวแปรใหนอยลง
- ลดจ านวน record ดวยการ clustering ท าใหเราไดตวแทนของขอมลมา มาใชแทนขอมลทงหมดในกลม
Normalization
- การท าใหขอมลอยในสเกลเดยวกน
Partitioning the Data
- แบงขอมลเปนสองสวน คอ Training , Validation
- Training คอเอาไวเทรน มค าตอบอยแลว
- Validation คอขอมลทมค าตอบเหมอนกน เอาไวสงใหอลกอเพอปรบแตงโมเดล วาจะท างานกบ Unseen ไดมย ใชในการ
แกปญหาเรอง Overfitting (ขอมล fit กบโมเดลมากเกนไป ท าใหเวลาท างานกบ Unseen จะตอบไมได)
- สวนการ Testing คอขอมลทเอาไวใชตรวจสอบดเลยวาจรงๆ แลวโมเดลเราแมนมากนอยแคไหน มเฉลยเหมอนกน
- การ Test จะเปนสวนส าคญทใชในการเลอกโมเดล เราตองดวาทดสอบแลวไดความแมนมากทสด กจะเลอกอนนน
Problem of Overfitting
- อยางพวก stat จะเนนการหาโมเดลทตรงกบขอมลมากทสด ซง Data Mining จะไมตองการแบบนน เพราะตองการโมเดลท
เหมาะกบ unseen
- เราตองลองกบหลายๆ โมเดลดวาแบบไหนจะด เหมาะกบขอมลใหม อยาง decision tree ถาเกดวา tree มนลกมากๆ แปลวา
มนเกาะตดกบขอมลทเอามาเทรนมากๆ ท าใหไมเหมาะกบขอมลใหมๆ ซงถาเราตดกงมนทงไป กจะท าใหโมเดลเรา General มาก
ขน
Association Rules – Lecture 3
Association Rules
- เปน unsupervised learning
- ศกษาวา อะไรจะไปคกบอะไร เชน ซอของ A แลวจะซอของ B , เปนอาการ A แลวจะเปนโรค B
- บางทเรยกวา Marker Basket Analysis, Affinity Analysis
- ขอมลน าเขาจะเปน set ของขอมล ในแตละ transaction อาจจะไมตองเปนขอมลระดบ นมยหอxxx เราแคจบมนเปนกลมวา
นม กพอ
- k-item set คอ itemset ทมขอมล k ตว
- Support count ( ) เปนความถของการเกดของ itemset
- Support คอ คาทบอกวาเกดเทาไหร เชน {milk,bread} = 2/5
- Frequent itemset คอ itemset ทม support มากกวาหรอเทากบคา minsup threshold
Definition: Association Rule
- Association Rule จะเรยกตางกนเชน {Milk, Diaper} -> {Beer} อาจจะเรยกวา head, body/ antecedent,
consequence/ left-hand, right-hand
- ปกตเราไดกฎออกมาเยอะมาก แตจรงๆ เราอยากไดแคกฎทนาสนใจ strong rules/ interesting rules
- Rule evaluation metrics
Support (s): วาจ านวนการเกดมความถเทาไหร
Confident (c): วดใน transaction ทม Y มจ านวนเทาไหรทเกด X ดวย
- เชน กฎวา {x, y} -> {z}
- c= ({ })
({ })
- บางท การวดวามนเกดรวมกน เกอบ 100% กอาจจะไมมประโยชน เพราะวาจ านวนการเกดมนนอย แมวาจะเกดรวมกนมาก กไม
นาสนใจ
- เราเลยตองใชคา support เขามาชวย เลยตองใชทงคา confident และ support ในการพจารณา
Association Rule Mining Task
- วธถาเกดวาเราจะท าเอง จะท ายงไง -> Brute Force? แลวตองมานงค านวณคา support/confidence
- เกดวธชวยใหหากฎไดเรวขน กฎทนาสนใจ จะมาจาก Frequent itemset นบคา support มากอน (Rule ทมาจาก itemset
เดยวกน เชน {milk, diaper} -> {beer} กบ {milk, beer} -> {diaper} จะมคา support เทากน แตคา c ของกฏจะ
ตางกน)
Generating Association Rules
- ขนแรกไปหา frequent itemset กอน (ไดคา support) >> กนเวลามากกวา เพราะวาตองหาหลาย combination แลวนบ
ตองไปอาน HDD มา ตองหาวธ optimize
- ตอไปเอาแตละ itemset เอาออกมากระจายหากฎ ดคา confident แลวเลอกอนทผาน threshold ออกมา เรวกวาเพราะนบ
จาก Memory เลย
Frequent Itemset Generation Strategies
- ลดจ านวน candidates โดยใชการ pruning เพราะบางทยงไงมนกอาจจะไมผานคา support อยแลว
- ลดจ านวน transaction แทนทจะมอง database เปน transaction เรากมองกลบกน เชน จากมองวา transaction 1 ->
bread, milk เรากมองเปน bread อยใน transaction ไหนบาง
- ลดจ านวนของการเปรยบเทยบ ใช data structure ไมตองแมพทกๆ candidate กบ ทกๆ transaction
Mining Association Rules
- Apriori เปนอลกอรทม คอ
- ถา superset มน frequent subset กจะ frequent ดวย เชน BCE ใช BE กตองใชดวย
- ถา subset ไม frequent superset กจะไมดวย
Multi-dimension association rules
- ถาเกดวาขอมลน าเขาไมไดเปน binary database แตเปน relational database กจะสรางกฎไดเหมอนกน
Lift
- เปนคา ratio ทแสดงคาความขนตอกนของทางซายของกฎและขวาของกฎ วาแปรผนตอกนจรงๆ หรอเปลา
- ถา lift >1 ทางซายสงผลทางบวกตอทางขวา
- ถา lift =0 ไมขนตอกน
- lift <0 ทางซายสงผลตอทางขวาเชงลบ
- คอคา correlation นนเอง correlation = Confident/Expected Confident (support ของ ทางขวา)
K-nearest neighbor - Lecture 4
(Supervised Learning)
Data Classification
- ตองม training data set
- training data set จะม set ของ attribute ตองมสวนทบอกประเภทดวย
- เราตองการหาโมเดลส าหรบ attribute ตางๆ และคลาส
- เพอท านาย, ก าหนดคลาสใหกบ unseen record
- data ทจะเทรน กตองมครบแบบ เชน ท านายวาลกคาจะอยหรอไป กตอง อย/ไป
- ตองม validation set (เอาไวปรบโมเดล) , test set (ประเมน accuracy)
- confusion matrix จะเกดจากการ train / test กได แตผลจะออกมาตางกน
- ขอเสยของงานแบบนคอ ตองมคลาสมากอน คลาสอาจจะไมชดเจนดวย
- คลาสยงมาก ความแมนจะนอยลง
- ไดกฎออกมา ทางซายจะเปนคลาสเสมอ ได classification rules
- ถา attribute ขอมลเยอะ กอาจจะตองลดลง
- ลกษณะการใชขอมลเทรน พวก validation มาชวยปรบโมเดล โดยสรางโมเดลไวกอน เรยกวา eager learner
- ถาเปน แบบไมสรางโมเดล เราเอา unseen มาเทยบเลย จะเรยกวา lazy learning (instant base)
- แบบ lazy เวลามขอมลใหมเขามาเสยเวลา cost เพราะไมมโมเดลไวกอน
- k-nearest จะเปนแบบ lazy
K-nearest
- เวลาม data ใหมเขามา จะไปดวา ในขอมลเดม มอนไหนคลายมนมากๆ บาง (เรยกวา neighbor)
- neighbor สวนใหญอยคลาสไหน เรากจะตอบคลาสนน
- k คอ เลขจ านวน neighbor ทจะไปดงมาพจารณา
- เวลาจะหาความเหมอน กตองใช distance metric อยางครงกอนๆ กพวก Euclidean distance หรอจะเลอกแบบอน แลวก
ก าหนดคา k แลวเวลาม data ใหมมา กไปค านวณทกๆ distance แลวกเลอก record มาจ านวน k
- การทท านายออกมาไมด อาจจะเปนเพราะเลอก distance function ไมด คา k ไมเหมาะสม หรอวาเปนเรองของจ านวน
attribute
- k นอย เชน k =1 -> overfitting เพราะวา record นนอาจจะเปน noise ไมใชขอมลจรงๆ กได แคมนบงเอญตรง, k=n เยอะ
มาก กไมตองท าแลว มนจะ error เยอะมาก เลอกเอาจากคลาสทเยอะทสดเลยงายกวา
- เราจะพยายามเลอก k ต าทสดทได accuracy สงสด
- k มากพอ จะท าใหเราก าจดสวน error เพราะ noise ไดK
K-NN for prediction (numerical outcome)
- เอาพวก weight เอา average ออกมา ค านวณไดคาทเปนตวเลขออกมา
K- nearest problem
- scale problem
- การกระจายของหนวยวดทมชวงทตางกนมากๆ เชน salary , age, height
- จ านวนตวแปรเยอะ training set ใหญ กจะใชเวลา เสยเวลาเพมเปน expo
- ยงตวแปรมาก distance ยงใกล (curse of dimension)
K-nearest advantage
- งาย
- ไมตองมการก าหนดวาจะตองมการกระจายขอมลเทาไหร (เวรคทกกรณ)
- ใชงานได ไมตองสนใจเรองสถต วาตวแปรขนตอกนไมขนตอกน ไมสนใจ
Evaluation
- Error คอ แยกประเภทออกมาไดไมตรงกบคลาสทถกตองจรงๆ
- Error rate คอวดเปอรเซนตทแยกออกมาถกตอง
Naïve Rule
- คลายกบ majority vote สวนใหญเราจะใช most prevalent class มาตอบ
- สวนใหญจะใชเปน benchmark แลวออกกราฟมาเทยบกบกราฟของโมเดล
Separation of Records
- ถาเกดวาเราเลอก feature ทดจะท าใหเราแยกไดด -> high separation of records ซง record แตละคลาส แยกกนไดด
ท าให low error
- แตถาเราเลอกใช feature ทไมด -> low separation of records แตละ record แยกกนไมด ท าให error มากกวา อาจจะ
ไมคอย improve จาก naïve rule เทาไหร
- อยาง decision tree มนจะเลอก feature ใหเราเองเลยใน algorithm
Confusion Matrix
- สวนใหญเราจะเอา precision/recall มาพจารณา วาทงสองอยางตองสง
- ด F-measure คอดทง precision/recall ไปพรอมกน
- บางทจะดเปน TP: true positive, TN: true negative, FP: false positive, FN: false negative (true,false คอ
ท านายถกผด) True Positive: ท านายถก วามนตอบใช FP: ท านายผดวามนตอบใช
- สวนใหญเราจะตองการลด FN
Cutoff for classification
- สวนใหญโมเดลจะใช prob ในการตดสนใจวาจะเลอกโมเดลไหน
- default = 50% เราอาจจะก าหนดเพม/ลดได แตทวดมา เคาบอกวา 50% ดทสดแลว
- นอยเกนมากเกนอาจจะท าใหความถกตองมนลดลง
When one class is more important
- บางทเราตองการคลาสบางคลาสมากๆ เราอาจจะตองยอมให error rate โดยรวมมนเพมขน แตวาคนคา TP มามากขน
Alternate Accuracy Measure
- Sensitivity: % of C1 class correctly classified
- Specificity: % of C0 class correctly classified
- ROC curve: กราฟพลอตระหวาง ความแมนคลาส positive – ความแมนคลาส negative ตองการกราฟทมพท.ใตกราฟมาก
Lift and Decile Charts: Goal
- เชน เวลาเราจะตองการค าตอบลกคา สงจม.ไป แลวลกคาจะตอบ เราอยากใหโมเดลชวยเราลด cost คอ สงไปนอยๆ แตตอบ
กลบมา yes เยอะ
- Lift chart: cumulative performance
Decision & Regression Trees
Trees and Rules
- Rule base
- Classification rule คอ ดานซายจะเปน condition ดานขวาจะเปน class attribute
- Decision Tree: Categorical
- Regression Tree: Numerical
- Tree จะเปนกฎวา ถาม condition เปนแบบน จะไดผลเปนแบบไหน
- ยง attribute มคาไดเยอะ กจะท าให กง ของ tree มจ านวนเยอะดวย
- leave node จะเปน class label
- Training หนงอน สามารถสรางไดหลาย tree, model ทเขาไดกบ data
- เรากเอาแตละ tree ไปวด เชน confusion matrix, ROC curve แลวเลอกอนทมนแมนกบ unseen
- 1 node กคอ subset ของ training
Key Ideas
- ขนแรกในการสราง คอ recursive partitioning แบงๆ ไปเรอยๆ จนทายสด จะประกอบไปดวย record ทเปนคลาส 0 ทงหมด
/ 1 ทงหมด
Hunt’s Algorithm
Pre Pruning
- ถาเกดวาเราเจอจดทมนจะ overfit กหยดกอน
Data Clustering- Lecture 5 - Clustering = a set of Clusters
Cluster Analysis
- หากลมของ object ทไมตองม label กได ดวาแบงออกมาไดยงไง
- ภายในแตละกลม distance จะใกลกน (intra-cluster distance) ถาเปนระหวางกลม จะเรยกวา inter-cluster distance
- เวลามขอมลมา กลองเอามาท า clustering กอน กจะรวาขอมลมกลมไหนบาง
- บางคนบอกวาเปนการท า preprocessing ไมใช mining เพราะบางทท า clustering เสรจ กเอาแตละกลมไปท า
Association rule ส าหรบกลมนนๆ ตอ
- ตวใหมทวงเขามา จะพจารณาดวย distance วาใกลไกลกลมไหน แตละกลมจะมตวแทนอยตวหนง (centroid)
Classification vs. Clustering
- อาจจะเอา classification data ทม label เขาไปท า clustering
- ถา clustering ไดดจรงๆ มนกนาจะแบงได label ทดจรง (ด = pure)
Examples of Clustering Application
- Marketing: แบงกลมลกคา
- Astronomy: กลมดาว
- อยางเวลาการคนหาเอกสาร เราอาจจะคนคาใหเปนกลมของเอกสารไปเลยกได
- หรอท า visualization กได
Note:
- ถาขอมลทเอาไปท า clustering มขอมลเปนตวเลข จะท าใหสามารถวด error rate ได วด distance ไดงายกวา
- ถาเปน categorical กจะมวธการค านวณทตางออกไป
- เราจะตองม visualization ทด จะท าใหเราสามารถแบงขอมลไดด อานขอมลไดงาย ถามองจากกราฟ x,y กจะเหนแคสองมต
เทานน พอเรามองแลว กจะได label ออกมา (เพราะตอนแรกยงไมม label มาให)
- เพราะฉะนนตองใช software ทมกราฟฟกดๆ
Algorithm
- มหลายอน บางอนกจะเหมาะกบขอมลทเปนตวเลข บางอนกเหมาะกบทเปนประเภท
- การทเราถามวา unseen นจะไปอยใน cluster กจะไดคา prob มาดวยวา มโอกาสจะอยในกลมนแคไหน แตบางอนกไมบอก
- บาง clustering อาจจะท าแบบทง exclusive/overlap อยไดแค cluster เดยว หรอวาอยในหลาย cluster กได
- มทงแบบ flat/hierarchical คอ แบงไปเลยชนเดยวหรอ ม cluster ใหญครอบอยอกท เปนล าดบชนลงไป (partitional
clustering – hierarchical clustering
- top down คอ มองวาทงหมดเปนกลมใหญกอน แลวคอยแยกออกมา - bottom up มองวาแตละอนเปนคนละกลมกอน แลว
คอยๆ รวมกนขนไป (สวนใหญจะเปน hierarchical ดวย)
Distance
- มวธค านวณหลายแบบ เชนเอามาบวกลบกนเลย ใช weight ใช Euclidean distance
- ถาเปน nominal attribute กจะใช 1 = ตาง 0 = เหมอน
- Euclidean Distance ฮตทสด
Normalizing
- อาจจะมปญหาถาเกดวาม measurement เยอะมากๆ ท าใหคาระยะทางมนไกลเกนไป
- กใช z-score กได
K-means Z (partitioning)
- ใชเฉพาะกบ numerical data เทานน
- k คอจ านวน cluster
- เรมดวยการเลอก k ทด วาจะใหมก center แลวหยบมาเปน center
- แลวระบขอมลอนๆ ใหไปอยใกลๆ ตวทหยบมาแลว
- จากนนค านวณ centroid ใหม จนกวาจะหยด
- หยดเมอ centroid ไมขยบแลว หรอขยบนอยมากๆ
Problem
- ไมรวาจะเลอก k ยงไง (อาจจะเปนวาเรารลวงหนาวามกกลม ซงไมเสมอไป เราอาจจะตองคอยๆ เปลยนคา k ไปเรอยๆ แลวคอยด
วาแบบไหนด)
- ตอนเรมจะเลอกแรนดอมมายงไง จะใชอะไรตดสน (เราอาจจะบอก software ไดวาจะเลอกแบบไหน แลวแต domain
knowledge)
- k-means เลยมขอเสยในกรณเรมตนแบบน
- การแบง cluster เราอาจจะดจากระยะหางระหวาง cluster-cluster วามนหางกนดรเปลา
- อาจจะมปญหาเรองกลมกราฟหนาตาแปลกๆ มนจะตดกลมออกมาไดไมด (วธแก บางคนบอกวาใหแยก เยอะๆ แลวพอแยกเสรจ ก
คอยเอามารวมกนใหเปนกลม)
K-mediods
- โดยอลกอรทม คา center กคอคา mean
- แตบางท mean กไมเหมาะ ถาขอมลมนโดดมากๆ กควรจะใชคา median
- เปนการหา representative ของ cluster
- ถาเกดวาขอมลใหญมากๆ จะใชการ sampling
Preprocess
- กอนท าให normalize , eliminate outlier
Post-process
- ถาเรารวมมนเปนกลมใหญไป อาจจะตองเขยนการแยกใหมนแยกออกจากกนเพมเตม
- ถาตอนแรกเราแยกไวเยอะ อาจจะตองท าใหมนมารวมกน merge กน
Problem with centroid problem
- เราอาจจะไปหาเทคนคอนๆ เพอหาคา k มากอน แลวคอยเอามาท า k-means
Hierarchical Method
- Agglomerative Methods (bottom-up) แยกเดยวกอน
- Divisive( top-down) รวมใหญกอน
- ดกวา k-mean ตรงทไมตองก าหนดคา k
- แตวาถาตอนแรกๆ แยก แลวเรารวมกนขนไป กจะ backtrack กลบมาไมได รวมแลวรวมเลย
How to Find K
- อาจจะท า hierarchical แลวดวาจะแบงยงไงด แลวคอยเลอก k
DBSCAN (density base –solved K-means)
- ท า clustering โดยใชความหนาแนน
- Core point: เปนจดทม neighbor เยอะๆ ถา core มนรวมกนได กจะ merge เปนกลมเดยวกน
- Border point:
- Noise point:
- ใชความหนาแนน ท าใหสามารถใชไดกบ shape ทแปลกๆ ขนาดตางๆ
Clustering Validation
- Cluster interpretation: วดกนดวยความหมายของ cluster วาสามารถตความไดดหรอไม จะใช visualization tools
ชวย
- Cluster Stability:
- Cluster Separation ด distance ของ cluster
Interpretation
- ใช stat มาชวยอธบาย
- เวลาท า clustering แลว อาจจะเอาตวแปรทไมไดใชท า clustering มาเปนตว visualize
Evaluating K-means Cluster
- ใช SSE ด เปนการดความหางของobject แตละ cluster โดยเราอยากไดอนทม SSE ต าๆ
- k มาก SSE จะต าลง
- แตวา good clustering > k นอย SSE ต าดวย
Cluster Evaluating
- ท าแบบตอนแรก คอเราร label แลวเอามาแยกโดยใช clustering วดดวาตรงมากตรงนอยแคไหน
Cluster Validation
- วดดวย F-measure เลยกได
- แตวธทดทสด คอดดวยตาคน