Two-Class Logistic Regression

บทที่ 16-Two-Class Logistic Regression วิธีการ Classification การอนุมัติเงินกู้ด้วยโมเดล Two-Class Logistic Regression โดยใช้ AzureML ในบทความนี้เราจะมาทำการ Classification โดยใช้โมเดลที่มีชื่อว่า Two-Class Logistic Regression ที่เราสามารถสร้างได้ง่าย ๆโดยใช้เครื่องมือที่มีชื่อว่า AzureML ค่ะ ซึ่งข้อมูลที่เราต้องการ Classify ในบทความนี้คือข้อมูลการอนุมัติเงินกู้ซึ่งมีจำนวน 614 แถว 13 คอลัมน์ โดยมี Target หรือเป้าหมายของการ Classification ของเราคือคอลัมน์ที่มีชื่อว่า Loan_Status โดยที่ Y แทนสถานะอนุมัติ และ N แทนสถานะไม่อนุมัติ ซึ่งมีวิธีการในการ Classification โดยใช้ AzureML ดังนี้ นำข้อมูลจากเครื่องเข้ามาที่ AzureML โดยกด NEW ตามด้วย DATASET คลิก From local…

Apple SQL Transformation

บทที่ 15-Apple SQL Transformation วิธีการแปลงให้ข้อมูลอยู่ในรูปที่เราต้องการโดยใช้ Apple SQL Transformation ใน AzureML เมื่อเรามีชุดข้อมูลชุดหนึ่งที่ต้องการจะเปลี่ยนข้อมูลให้มีรูปแบบตามที่เราต้องการและ module ที่มีอยู่ไม่สามารถแปลงให้อยู่ในรูปแบบที่เราต้องการได้ เช่นเรามีข้อมูลของไวน์ชนิดหนึ่งที่มีข้อมูลหลายคอลัมน์ที่ส่งผลต่อผลของคุณภาพและมีเป้าหมายที่เราต้องการ classification คุณภาพของไวน์ออกมาแต่คุณภาพของไวน์ใน target ของเรามีอยู่ได้ถูกกำหนดคุณภาพของไวน์โดยให้ค่าเป็นเลข 3-8 โดย 3 หมายถึงไวน์ที่มีคุณภาพต่ำ และ 8  หมายถึงไวน์ที่มีคุณภาพสูง ซึ่งคุณภาพเหล่านี้ถูกแบ่งเป็น 6 กลุ่ม ดังรูป เมื่อเราจะ  classification ออกเป็น 6 กลุ่มอาจทำให้ค่าความถูกต้องและผลของการ classification ไม่ดีเท่าที่ควร เราจึงต้องการจัดกลุ่มของคุณภาพไวน์ใหม่โดยกำหนดให้ 3 และ 4 คือคุณภาพต่ำ, 5 และ 6 คือมาตรฐาน, 7 และ 8 คือคุณภาพสูง สิ่งที่เราต้องการเหล่านี้สามารถทำได้โดยใช้ module ที่มีชื่อว่า Apply SQL Transformation…

How to use Tune Hyperparameter by AzureML

บทที่ 14-How to use Tune Hyperparameter by AzureML วิธีการใช้ Tune Hyperparameter ใน AzureML ในบทความนี้หลาย ๆ คนคงสงสัย  Tune Hyperparameter หรือตัว Hyperparameter นั้นคืออะไรและมีผลอะไรในการสร้างโมเดลของเรา และวิธีการใช้เป็นอย่างไร ในบทความนี้สามารถช่วยไขข้อสงสัยนี้ได้ค่ะ จากหลาย ๆ บทความที่ผ่านมาเราคงจะได้เห็นว่าทุกโมเดลที่เราใช้มีการปรับ parameter มากมายที่เราต้องกำหนดค่าให้เหมาะกับข้อมูลของเรา แล้วเราจะรู้ได้อย่างไรว่า ค่า Parameter ต่าง ๆ ต้องเป็นค่าเท่าไหร่ถึงจะเหมาะสมกับข้อมูลของเรา ปัญหาเหล่านี้สามารถแก้ไขได้ด้วยการใช้ module ที่ชื่อว่า Tune Model Hyperparameters ค่ะ Tune Model Hyperparameters ช่วยให้เราสามารถเลือกส่วนประกอบหรือเลือก parameter ที่ดีที่สุด นั่นคือช่วยในการกำหนดค่า parameter ที่หลากหลายที่สุดเท่าที่จะเป็นไปได้ หรือเราเรียกว่า Hyperparameter optimization โดย Tune…

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 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 ที่เราลากมาไว้แล้ว ดังรูป กด…