021-linear Regression
วิธีทำนายราคารถยนต์ด้วย linear Regression แบบ Ordinary Least Square (OLS) และ Online Gradient Descent โดย AzureML เมื่อเราพูดถึงโมเดลแบบ Regression ที่เราต้องการทำนายหรือคาดการณ์สิ่งต่าง ๆ เชิงตัวเลขนั้นโมเดลที่เรานึกถึงเป็นอันดับแรกคือ linear Regression ซึ่งใน AzureML สามารถทำ linear Regression ได้สองวิธีคือ Ordinary Least Square (OLS) วิธีการนี้เราต้องการที่จะ Minimum Error เพื่อให้มี error น้อยที่สุดโดยใช้วิธีกำลังสองน้อยที่สุดนั้นคือ เราต้องการจะ minimum ∑_(i=1)^n▒(Yi-Y ̂i)^2 Online Gradient Descent Gradient Descent มีความหมายคือ slopที่ลาดลง เราจะทำการวัดประสิทธิภาพของโมเดลเราด้วยค่า error นั้นก็คือ Cost Function โดยมีเป้าหมายคือหาชุด Parameter ที่ทำให้เราเสียค่าใช้จ่ายที่น้อยที่สุดนอกจากนี้ยังมี parameter ที่เราต้องกำหนดคือ Learning Rate หรือ Alpha หากเราเลือกต่ำเกินโมเดลจะใช้เวลานานในการลงมาถึงจุดต่ำสุด แต่หากเลือกสูงเกินไปโมเดลของเราอาจลงมาไม่ถึงจุดต่ำสุด ในบทความนี้เราจะมาทำนายข้อมูลราคารถยนต์หรือก็คือคอลัมน์ Priceโดยใช้ Linear Regression ทั้งสองแบบนี้ซึ่งเราสามารถทำได้ไม่อยากเลยหากเรามีตัวช่วยอย่าง Azure ML ค่ะ 1. ค้นหา dataset ที่ชื่อว่า Automobile price data (Raw) ซึ่งเป็น dataset ตัวอย่างของ AzureML จากนั้นลาก dataset นี้มาวางไว้บน Workspace 2. ทำการ Clean missing data ที่มีชนิดของข้อมูลเป็น String ทุกคอลัมน์โดยการค้นหา [...]
022-Cluster Analysis
วิธีการทำ Clustering หรือ Cluster Analysis ของข้อมูล Call Center ด้วย AzureML Clustering เป็นโมเดลประเภท Unsupervised Learning โดยเป็นโมเดลที่ใช้ในการจัดกลุ่ม ซึ่งสามารถจัดกลุ่มลูกค้า หรือกลุ่มของสิ่งต่าง ๆ ที่เราต้องการเพื่อสร้างกลยุทธ์ที่จะนำมาใช้กับกลุ่มต่าง ๆ หรือแม้แต่การค้นหากลุ่มที่มีความแตกต่างในฐานข้อมูลลูกค้า โดยข้อมูลหรือ object ที่เป็นกลุ่มเดียวกันเราจะเรียกว่า cluster ซึ่งข้อมูลอยู่ในกลุ่มเดียวกันจะมีลักษณะที่เหมือนกัน ซึ่งข้อมูลที่เรานำมาทำ Clustering ในวันนี้คือข้อมูล Call Center ที่เราต้องการแบ่งกลุ่มของ data set นี้ออกเป็น 4 กลุ่มเพื่อจะได้นำไปสร้างกลยุทธ์ให้เหมาะสมกับลูกค้าในแต่ละกลุ่ม ข้อมูลเราจะมีทั้งหมด 111 แถว 2 คอลัมน์คือ Experience in months และ Call Attended in a day โดยวิธีการ Clustering ที่เราจะใช้คือ K-means Clustering ซึ่งมีวิธีการดังนี้ 1. ลากข้อมูล Call Center ที่เราต้องการมาไว้บน Workspace 2. จากนั้นค้นหา module ที่ชื่อว่า K-means Clustering ซึ่งค่า Parameter แต่ละตัวมีความหมายดังนี้ Create trainer mode Single Parameter : ระบุ set ของค่าเฉพาะ Parameter Range : ระบุค่าเฉพาะหลายค่าและรับ set ที่เหมาะสมที่สุดสำหรับกำหนดค่า Number of Centroids: จำนวนกลุ่มที่เราต้องการจะแบ่ง Initialization Random : สุ่มจุดข้อมูลแบบ placement ลงใน clusters [...]
023-Recommendation
วิธีการทำ Recommendation ด้วย AzureML หลาย ๆ คนอาจสงสัยว่าทำไมเวลาเราดูหนังใน Netflix หรือแม้แต่เมื่อเราเลือกซื้อสินค้าตามแอปพลิเคชันต่างเราจะพบว่ามีสินค้าหรือหนังที่แนวที่เราสนใจแนะนำเรามาเสมอใช่ไหมล่ะคะ แล้ววิธีการเหล่านี้สามารถทำได้อย่างไร วันนี้เราจะแนะนำวิธีการ Recommendation เหล่านี้ด้วย AzureML ค่ะ โดยการทำ Recommendation ใน AzureML จะเรียกว่า Matchbox Recommendation System ซึ่งมีพื้นฐานมาจากการทำ Recommendation แบบ Hybrid Approach ซึ่งเป็นการผสมกันระหว่างแบบ Content และแบบ Collaborative Content Based Filtering : จะแนะนำ item ที่คลายกับ item ที่เราซื้อหรือชอบในอดีต Collaborative Filtering : จะใช้พฤติกรรม กิจกรรม และสิ่งที่ชอบ ต่าง ๆ ของคนที่มีรสนิยมคล้ายกันมาแนะนำอีกคนที่ชอบเหมือนกัน เช่น เมื่อคนซื้อสินค้า x มักซื้อสินค้า y ด้วย โดย Matchbox Recommendation System มี module ที่ใช้คือ Train Matchbox Recommendation, score Matchbox Recommendation และ Evaluate Recommender ซึ่ง Train Matchbox Recommendation จะอ่าน dataset เรียง user-item-rating ข้อมูลตัวอย่างของเราในวันนี้คือ ข้อมูลร้านอาหารต่าง ๆ ที่ต้องการแนะนำร้านอาหารให้กับลูกค้าโดยแยกเป็น 3 ไฟล์ ดังนี้ Restaurant customer เป็นข้อมูลรายละเอียดของลูกค้า Restaurant Feature เป็นข้อมูลของร้านอาหาร ทั้ง ID ของร้านต่าง ๆ และรายละเอียดอื่น [...]
024-Text Analytics
วิธีการทำ Text Analytics เพื่อแยกประเภทของข้อมูลด้วย AzureML ในการวิเคราะห์หรือแยกประเภทข้อมูลเพื่อการนำไปใช้งานต่อนั้นมักจะมีข้อมูลประเภทหนึ่งที่เป็นคำอธิบาย หรือข้อคิดเห็นต่าง ๆ ที่เป็นประโยคที่มีความยาวมากหรือที่เราเรียกกว่าว่าข้อมูลแบบ text ซึ่งหารเราต้องการแยกข้อมูลเหล่านี้เราต้องใช้กระบวนการที่ชื่อว่า Natural Language Processing (NLP) ซึ่งมีความสำคัญในการใช้ข้อความเหล่านี้ในการทำ classification เรื่องราวใหม่ ๆ การแยกอารมณ์ของผู้คนใน Social ผ่านข้อความเหล่านี้ได้ รวมถึงการแยก email ที่เป็น spam ได้ เมื่อเราต้องการทำ NLP เราต้องเข้าใจในโครงสร้างของภาษา และโครงสร้างของคำเนื่องจากคอมพิวเตอร์มีความบกพร่องในเรื่องของ sense และการคิดอย่างมีเหตุผล ซึ่งหลาย ๆ คนคงคิดว่าเป็นอยากในการทำใช่ไหมล่ะคะ เนื่องจากมีรายละเอียดมากมายในกระบวนการเตรียมข้อมูล ในบทความนี้จึงอยากนำเสนอวิธีการทำ Text Analyticsได้โดยใช้ AzureML ค่ะ การทำ Text Analytics ใน AzureML มีขั้นตอนในการทำดังนี้ ในบทความนี้ตัวอย่างที่เราจะนำทำ classification คือ Complaint Modified ที่ต้องการแยกประเภทคำร้องเรียนของลูกค้าออกเป็น 2 กลุ่มคือ Pricing and Billing (การกำหนดราคาและการเรียกเก็บเงิน) และ Internet Availability and Speed (ความพร้อมในการใช้งานอินเทอร์เน็ตและความเร็ว) ซึ่งหน้าตาข้อมูลดังรูป เรามาเริ่มวิธีการ classify ข้อความเหล่านี้กันเลยค่ะ 1. นำข้อมูล Complaint Modified มาวางบน workspace 2. ค้นหา module ที่ชื่อว่า Preprocess Text มาเชื่อมกับ dataset ของเราจากนั้นเราจะเลือกคอลัมน์ Description ที่เราต้องการจัดการกับข้อความเหล่านี้ ส่วนค่า Parameter อื่นเราสามารถตั้งได้ตามที่เราต้องการ ซึ่งในตัวอย่างนี้เราจะทำการตังค่าดังรูป จากนั้นคลิก RUN เมื่อเรา visualize [...]
025-Deploy webservice
วิธีการ Deploy webservice ใน AzureML ในบทความอื่น ๆ เราได้พูดถึงวิธีการสร้างโมเดลใน Experiment กันมาแล้วในหลาย ๆ บทความ ซึ่งในการใช้งานจริง ๆ แล้วเราไม่สามารถมาสร้างและปรับค่า Parameter ทุกรอบที่มีข้อมูลใหม่เข้ามา คำถามคือเราเราสร้างโมเดลของเราแล้วเราต้องการที่จะใช้งานได้ตลอดเราจะทำอย่างไร วิธีการที่เราจะทำโมเดลใช้งานได้จริงโดยที่เราไม่ต้องมาทำ Experiment คือ เราจะ Deploy โมเดลของเราเพื่อใช้งานในรูปของ Web-Service ซึ่งทำให้เราสามารถใช้งานโมเดลของเราได้ตลอดเวลา และใช้ได้ในอุปกรณ์ที่หลายหลาย โดยมีขึ้นตอนการทำ ดังนี้ เราจะมาลงรายละเอียดของขั้นตอนเหล่านี้กันเลยค่ะ 1. โมเดลที่เราจะนำมาเป็นตัวอย่างในวันนี้คือ การ classify รายได้โดยใช้ two class decision forest ดังรูป 2. บันทึก experiment ของเราเพื่อบันทึกเป็น experiment ใหม่โดยกด SAVE AS แล้วกำหนดชื่อใหม่ตามที่เราต้องการจากนั้นคลิก Pจากนั้นกด RUN 3. คลิกคำสั่ง SET UP WEB SERVICE เลือก Predictive Web Service จะปรากฏ module 2 module คือ Web service input และ Web service Output นอกจากนั้นยังมีการเปลี่ยนแปลงอื่น ๆ อีกดังรูป จากนั้นคลิก RUN 4. จากนั้นเราจะนำ module ที่ชื่อ Select Column in dataset จากนั้นเลือก Scored Labels และ Scored Probabilities มาเชื่อมกับ Score Model [...]