SMOTE with AzureML

บทที่ 13-SMOTE with AzureML วิธีการจัดการกับ Dataset ที่ไม่สมดุลกันด้วย SMOTE โดยใช้ AzureML ในกระบวนการเตรียมข้อมูลปัญหาที่เราสามารถพบได้และเราควรทำการแก้ไขมันคือ การที่ dataset มีจำนวนไม่สมดุลกัน เช่น ข้อมูลแรกมี 99 % และอีกข้อมูลมี 1%  ซึ่งการที่จำนวนข้อมูล  2 class ทำให้ผลจากการ classify เกิดการทำนายที่ลำเอียด และความแม่นยำที่อาจทำให้เราเข้าใจผิดได้ ซึ่งข้อมูลที่เป็นแบบนี้ตัวอย่างเช่น การฉ้อโกงบัตรเครดิต ข้อบกพร่องในการผลิต การวินิจฉัยโรคที่หาอยาก ภัยพิบัติทางธรรมชาติ  การลงทะเบียนกับสถาบันชั้นนำ ซึ่งวิธีการแก้ปัญหาเล่านี้เราจะทำได้โดยการเพิ่มเสียงส่วนน้อยหรือลดเสียงส่วนใหญ่ซึ่งวิธีการเพิ่มเสียงส่วนน้อยเราสามารถทำได้โดยการใช้วิธีที่เรียกว่า Synthetic Minority  Oversampling Technique (SMOTE) ซึ่งมีวิธีการคือ ระบุ feature vector และ จุดที่ใกล้ที่สุด ใช้ความแตกต่างระหว่างทั้งสอง คูณความแตกต่างด้วยตัวเลขสุ่มระหว่าง 0 ถึง 1 ระบุจุดใหม่บนส่วนของเส้นตรงโดยการเพิ่มหมายเลขสุ่มลงใน feature vector ทำซ้ำขั้นตอนสำหรับ feature…

Outliers

บทที่ 12-Outliers วิธีการจัดการกับ Outliers ด้วย AzureML เมื่อเราต้องการวิเคราะห์หรือสร้างโมเดลเพื่อใช้ในการทำนายนั้น เรามักจะมีปัญหาที่พบบ่อย ๆ และต้องจัดการกับมัน คือ Outliers คือข้อมูลที่มีระยะห่างจากข้อมูลตัวอื่น ๆ มากและส่งผลต่อผลการทำนายของเรา ซึ่งทำให้ผลการทำนายของเรามีความคาดเคลื่อนมาก โดยวิธีการแก้ปัญหานี้ คือ การ visualize เพื่อดูข้อมูลจากกราฟ การกำหนดไม่ให้มีค่าเกิน Percentile ที่เราต้องการ ซึ่งวิธีการเหล่านี้สามารถทำได้โดยใช้ module ที่ชื่อว่า Clip Values โดยตัวอย่างที่เราจะแสดงให้เห็นการจัดการกับ outliers คือ Employee Dataset เมื่อเรา visualize ดู  ข้อมูลคอลัมน์ Years of Experience กับ Monthly Income เราจะได้กราฟดังนี้ จากกราฟข้างต้นเราจะพบว่ามี จำนวน 4 ข้อมูลในวงกลมสีแดง ซึ่งเป็นข้อมูลที่เราต้องการจะจัดการโดยในข้อมูลนี้วิธีการดังนี้ นำข้อมูล Employee Dataset มาวางบน workspace…

How to join data

บทที่ 11-How to join data วิธีการ ง่าย ๆ ด้วย AzureML เมื่อเราต้องการนำข้อมูลของเรามารวมกันทั้งรวมกัน 2 dataset หรือการรวมกันมากกว่านั้นเราคงหนีไม่พ้นที่จะต้องค้นหาวิธีการ join data หรือการเอาข้อมูลมารวมกันตามอินเทอร์เน็ตใช่ไหมล่ะคะ ในบทความนี้จึงมานำเสนอวิธีการ join data ที่สามารถทำได้ง่าย ๆ ผ่าน AzureML ค่ะ ก่อนที่เราจะไปถึงวิธีการ เราต้องมาทำความเข้าใจในรูปแบบต่าง ๆ กันก่อนค่ะ Dataset ที่เราจะนำมาเชื่อมต่อกันได้นั้นต้องมีคอลัมน์ key ที่เกี่ยวข้องกัน เช่นมีเลข ID เดียวกันเป็นต้นค่ะ โดยวิธีการ join ใน AzureML สามารถทำได้จะมีด้วยกัน 4 แบบ ดังนี้ค่ะ Inner Join : เป็นการ join เฉพาะตัวที่มี key เหมือนกัน Left Outer Join…

how to reduce dimension with PCA

บทที่ 10-how to reduce dimension with PCA การลด Dimension ของข้อมูลด้วยการทำ PCA ใน AzureML ในการจัดการกับข้อมูลขนาดใหญ่มาก ๆ นั้นสิ่งที่เกิดขึ้นเป็นประจำคือข้อมูลเหล่านั้นมีจำนวน Feature หรือจำนวน dimension เป็นจำนวนมากอาจจะมีจำนวนเป็นหลักร้อยหรือหลักพัน ซึ่งหากเรานำข้อมูลที่มีจำนวน dimension มาวิเคราะห์อาจทำให้ผลลัพธ์ที่ได้มีความแม่นยำน้อยลง ใช้เวลาในการ RUN ข้อมูลที่นานและอาจทำให้เกิดการ Overfitting ได้ ดังนั้นเราจึงต้องทำการลด dimension ของข้อมูลก่อนที่จะนำข้อมูลของเราไปวิเคราะห์หรือสร้างโมเดลโดยการใช้วิธีที่ชื่อว่า Principal Component Analysis (PCA) สร้าง coordinates สำหรับข้อมูลใหม่ แสดงโครงสร้างภายในของข้อมูลที่อธิบาย variance ของข้อมูลได้ดีที่สุด ลดจำนวน dimension ของข้อมูล ซึ่งการทำ PCA ใน AzureML เราจะใช้ module ที่ชื่อว่า Principal Component Analysis ซึ่งมาวิธีการดังนี้…

How to clean missing data by AzureML

บทที่ 9-How to clean missing data by AzureML วิธีการ Clean Missing Data โดยใช้ AzureML เมื่อเราทำงานกับข้อมูลปัญหาที่เรามักพบบ่อย ๆ ในกระบวนการจัดการกับข้อมูลคือ มีข้อมูลบางส่วนขาดหายไปนั้นคือ missing data นั้นเอง แล้วเราจะมีวิธีจัดการกับปัญหานี้อย่างไร บทความนี้จะมาไขข้อสงสัยนี้ค่ะ การที่เราจะทำการ clean missing data นั้นเราต้องรู้ก่อนว่าข้อมูลอะไรที่หายไปบ้าง หายไปจำนวนเท่าไหร่ และชนิดของข้อมูลที่หายไปคือข้อมูลชนิดไหน สามารถทำได้ง่าย ๆ ดังนี้เลยค่ะ ลากข้อมูลที่เราต้องการ Clean หรือต้องการสร้างโมเดลมาไว้บน Workspace โดยนำข้อมูลที่เรานำเข้ามาจาก Saved Dataset เลือก My Datasets จากนั้นลากชุดข้อมูลที่เราต้องการมาไว้บน Workspace และหากเราต้องการนำเข้าข้อมูลในรูปแบบอื่น เช่น นำเข้าข้อมูลจากเว็บ เราก็เลือก module นั้นมาวางได้เลย จากนั้นเราจะดูรายละเอียดของจำนวน Missing และชนิดของแต่ละคอลัมน์โดยการคลิกขวาที่วงกลมเล็ก ๆ…

How to remove duplicate by AzureML

บทที่ 8-How to remove duplicate by AzureML วิธีการลบข้อมูลที่ซ้ำกันง่าย ๆ ด้วย AzureML กระบวนการเตรียมข้อมูลก่อนนำไปสร้างโมเดลนั้นเป็นกระบวนการที่ใช้เวลานานที่สุดเนื่องจากชุดข้อมูลที่เราได้มานั้นไม่ได้อยู่ในรูปแบบที่สมบูรณ์และหนึ่งในปัญหาของกระบวนการเตรียมข้อมูลคือ การที่มีข้อมูลซ้ำกันหรือที่เรียกว่า Duplication ซึ่งมีส่งผลกับกระบวนการผลของ Train ของโมเดล ทำให้เราต้องจัดการกับข้อมูลที่ซ้ำกันหล่านี้ก่อนการสร้างโมเดลนั้นเองค่ะ โดยมีตัวอย่างของข้อมูลที่ซ้ำกัน ดังรูป โดยเราสามารถจัดการกับข้อมูลที่ Duplication ได้ง่าย ๆ โดยใช้ AzureML  ดังนี้ ลากข้อมูลที่เราต้องการลบแถวที่ซ้ำกันหรือต้องการสร้างโมเดลมาไว้บน Workspace โดยนำข้อมูลที่เรานำเข้ามาจาก Saved Dataset เลือก My Datasets หรือจากนั้นลากชุดข้อมูลที่เราต้องการมาไว้บน Workspace และหากเราต้องการนำเข้าข้อมูลในรูปแบบอื่น เช่น นำเข้าข้อมูลจากเว็บ เราก็เลือก module นั้นมาวางได้เลย หา Module ที่ชื่อว่า Remove Duplicate row แล้วลากมาวางบน Workspace จากนั้นลากเส้นเชื่อม Module กับชุดข้อมูลของเรา กด…

How to change data type and change columns name

บทที่ 7-How to change data type and change columns name วิธีการเปลี่ยนชนิดของข้อมูลและชื่อคอลัมน์โดยใช้ AzureML ในกระบวนการเตรียมข้อมูล (Preprocess) นั้นปัญหาที่เรามักพบและต้องทำการแก้ไขในกระบวนการการเตรียมข้อมูลนี้คือชนิดของข้อมูลในแต่ละคอลัมน์ไม่ตรงกับที่เราต้องการเช่น เราต้องการข้อมูลแบบ category แต่ข้อมูลของเราดันเป็น numeric  หรือการที่เรานำเข้าข้อมูลมา หรือมีการเปลี่ยนแปลข้อมูลในกระบวนการก่อนหน้าทำให้เราต้องแก้ไขชื่อคอลัมน์เหล่านั้นซึ่งสิ่งเหล่านี้สามารถทำได้โดยใช้ module ที่ชื่อว่า Edit Metadata ซึ่งมีขั้นตอนใน AzureML ดังนี้ ลากข้อมูลที่เราต้องการเปลี่ยนชนิดของข้อมูลหรือเปลี่ยนชื่อคอลัมน์มาไว้บน Workspace โดยนำข้อมูลที่เรานำเข้ามาจาก Saved Dataset เลือก My Datasets จากนั้นลากชุดข้อมูลที่เราต้องการมาไว้บน Workspace  และหากเราต้องการนำเข้าข้อมูลในรูปแบบอื่น เช่น นำเข้าข้อมูลจากเว็บ เราก็เลือก module นั้นมาวางได้เลย จากนั้นเราจะดูรายละเอียดของชนิดของข้อมูลโดยการคลิกขวาที่วงกลมเล็ก ๆ ใต้ชุดข้อมูลที่เรานำมาวาง แล้วเลือก Visualize เพื่อดูว่ามีคอลัมน์ไหนที่ชนิดของข้อมูลไม่ตรงหรือมีคอลัมน์ที่ต้องการเปลี่ยนชื่อหรือไม่ เช่นในตัวอย่างเราต้องการเปลี่ยนคอลัมน์ Income จาก string เป็น…

How to add rows and columns by AzureML

บทที่ 6 How to add rows and columns by AzureML วิธีการเพิ่มแถวและคอลัมน์แบบชิว ๆ ได้ด้วย AzureML เมื่อเราพูดถึงกระบวนการเตรียมข้อมูล (Preprocess) หนึ่งในกระบวนการเตรียมข้อมูลที่เราต้องพูดถึงคือกระบวนการเพิ่มแถวและคอลัมน์ ซึ่งกระบวนการเหล่านี้เกิดมาจากการที่เรามีแหล่งเก็บข้อมูลหลายที่หรือการเก็บหลายรอบทำให้มีไฟล์ข้อมูลแยกกันเราจึงต้องนำข้อมูลเหล่านี้มารวมกันก่อนจะนำข้อมูลไปสร้างโมเดลของเราที่เราต้องการซึ่งการเพิ่มแถวและคอลัมน์นี้ AzureM สามารถช่วยคุณได้ โดยมีวิธีการง่าย ๆ ดังนี้ ลากข้อมูลที่เราต้องการเพิ่มแถวหรือเพิ่มคอลัมน์หรือต้องการสร้างโมเดลมาไว้บน Workspace โดยนำข้อมูลที่เรานำเข้ามาจาก Saved Dataset เลือก My Datasets จากนั้นลากชุดข้อมูลที่เราต้องการทั้งสองข้อมูลมาไว้บน Workspace และหากเราต้องการนำเข้าข้อมูลในรูปแบบอื่นเราก็เลือก module นั้นมาวางได้เลยค่ะ  โดยในตัวอย่างของเรา ไฟล์แรกมี 8 แถวและไฟล์ที่สองมี 17 แถว ดังรูป เมื่อเราต้องการจะเพิ่มแถวให้กับไฟล์แรกโดยนำแถวในไฟล์ที่สองมาต่อสามารถทำได้โดยการหา Module ที่ชื่อว่า Add Rows จากนั้นลากมาวางบน Workspace แล้วลากเส้นเชื่อมจากข้อมูลทั้งสองไฟล์มาเชื่อมกับ Module ที่เราลากมาไว้แล้ว ดังรูป กด…

How to know details of dataset by AzureML

เราสามารถดูรายละเอียดของชุดข้อมูลของเรา โดย Azure ML ได้อย่างไร             เมื่อเราต้องการที่จะสร้างโมเดลของเราเองจากชุดข้อมูลที่เรามีอยู่นั้น ก่อนที่เราจะทำการสร้างโมเดลเราจะต้องรายละเอียดของข้อมูลเบื้องต้นก่อน เพื่อที่เราจะได้เลือกวิธีการจัดการกับข้อมูลให้เหมาะสมกับข้อมูลของเรา โดยมีวิธีการดังนี้ 1. ลากข้อมูลที่เราต้องการสร้างโมเดลมาไว้ที่บน Workspace โดยนำข้อมูลที่เรานำเข้ามาจาก Saved Dataset เลือก My Datasets จากนั้นลากชุดข้อมูลที่เราต้องการมาไว้บน Workspace ได้เลย 2. จากนั้นเราจะดูรายละเอียดข้องข้อมูลข้อเราอย่างจำนวน Missing, Mean, Max, Min, SD, ชนิดของข้อมูล และกราฟของข้อมูลแต่ละคอลัมน์โดยการคลิกขวาที่วงกลมเล็ก ๆ ใต้ชุดข้อมูลที่เรานำมาวาง แล้วเลือก Visualize เมื่อเรามาที่หน้า Visualize เราจะเห็นข้อมูลจำนวนแถว จำนวนคอลัมน์ของเรา   รวมถึงข้อมูลในแต่ละคอลัมน์ และเมื่อเรากดไปที่แต่ละคอลัมน์จะปรากฏข้อมูลเบื้องต้นในแต่ละคอลัมน์ที่เราต้องการ อีกทั้งยังสามารถเปรียบเทียบกราฟของข้อมูลแต่ละคอลัมน์ได้อีกด้วย ดังรูป นอกจากนี้เรายงสามารถดูข้อมูลทางสถิติของชุดข้อมูลของเราได้มากกว่านี้ โดยการลาก Module ที่ชื่อว่า Summarize มาวางบน Workspace แล้วลากเส้นเชื่อมจากชุดข้อมูลของเราจากนั้นกด RUN แล้ว กด Visualize…

สร้าง Web App บน Microsoft azure

สร้าง Web App ใน Resource Group บน Microsoft Azure

App Service เป็นเครื่องมือในการสร้าง Web Application โดยที่ไม่จำเป็นต้องมี Server หรือเรียกว่า Serverless เราสามารถนำ Source Code ของ Application มา deploy และให้ App Service เป็นตัวจัดการให้ได้ทันที ไม่ว่าจะเป็น การ Auto Scale ที่จะทำการ Scale-Up หรือ Scale down ตามจำนวนผู้ใช้งานหรือตามช่วงเวลาที่กำหนด การสร้าง Deployment Slot ที่มาพร้อมกับคอนเซ็ปท์ Staging ที่ทำให้การ swap เป็น production นั้นง่ายขึ้น หรือการใช้งานร่วมกับ Database ได้อย่างสะดวก วิธีสร้าง Web App ใน Resource Group บน Microsoft Azure ล็อกอินที่ Azure portal. 2.…