การทำ Recursive Feature Section ง่ายๆ ใน Python Sklearn ที่ช่วยให้การเขียนโค้ดเลือก Feature ไม่ยุ่งยากอีกต่อไป [แจก Source Code]

อะไรคือ Feature Section? Feature Selection แปลเป็นไทยได้ตรงตัวเลยก็คือ “การเลือกฟีเจอร์” หรือ การเลือกคุณลักษณะของข้อมูลที่เหมาะสมสำหรับการทำงานของ Machine Learning ถ้าพูดให้ง่ายขึ้นอีกก็คือ เลือกว่าคอลัมน์ไหนในตัวข้อมูลที่เราจะเลือกใช้งานนั่นเอง จากบทความที่แล้ว ในเรื่อง “พอกันทีกับความผิดพลาดเดิมๆ ด้วยการสร้างโมเดล Machine Learning ด้วยฟีเจอร์ทั้งหมดที่มี!“ จากบทความที่แล้ว ผู้อ่านก็จะเห็นแล้วว่าการโยนฟีเจอร์ทั้งหมดเข้าไปทำงานทันทีโดยไม่ผ่านกระบวนการใดๆ เลย สามารถก่อให้เกิดปัญหาใหญ่ๆได้หลายอย่าง ดังนั้น ในบทความนี้ เราจึงขอนำเสนอหนึ่งในวิธีการพื้นฐานที่ใช้สำหรับการเลือกฟีเจอร์ที่มีชื่อว่า “Recursive Feature Selection” ซึ่งเป็นวิธีการที่ไม่ซับ สามารถนำมาประยุกต์ใช้ในการเลือกฟีเจอร์สำหรับมือใหม่ได้อย่างไม่ยากค่ะ ทำให้สามารถหลีกเลี่ยงปัญหาที่อาจจะเกิดขึ้นได้จากการมีฟีเจอร์ที่มากเกินไปได้ระดับหนึ่งค่ะ Recursive Feature Selection “Recursive Feature Selection” เป็น โมดูลนึงที่ Sklearn เตรียมเอาไว้ให้ผู้ใช้ที่ต้องการทำ Machine Learning ด้วย Python ได้เรียกใช้เพื่อการกำหนดการเลือกฟีเจอร์ที่จะนำมาใช้งานได้อย่างไม่ยาก โมดูนี้มีหลักการทำงานที่ง่ายๆ คือ การวนลูปเลือกฟีเจอร์ หรือกลุ่มของฟีเจอร์ แล้วทำการทดสอบการสร้างโมเดลด้วย Machine Learning…

พอกันทีกับความผิดพลาดเดิมๆ ด้วยการสร้างโมเดล Machine Learning ด้วยฟีเจอร์ทั้งหมดที่มี!

จริงอยู่ที่มีโลกแห่งความเป็นจริงในปัจจุบัน ข้อมูลนั้นหาได้ง่ายมาก เมื่อเราสนใจเรื่องใดเรื่องนึง ก็มักจะมีข้อมูลที่เกี่ยวข้องอยู่นับไม่ถ้วน ส่งผลให้เมื่อเราทำการเก็บข้อมูลเพื่อนำมาใช้ในการสร้างโมเดล Machine Learning ด้าต้าของเราก็จะมีจำนวน คอลัมน์ หรือ ฟิลด์ ที่เกี่ยวข้ออยู่มากมายนั่นเอง การมีคอลัมน์มาก หมายถึง เรามี information ที่ใช้ในการอธิบายข้อมูลมากขึ้น สามารถอธิบายข้อมูลได้ละเอียดขึ้น มีมิติในการมองข้อมูลมากขึ้น ลักษณะแบบนี้ ฟังดูดีกันใช่มั้ยคะ? แต่มันจะดีสำหรับเจ้า Machine Learning ในการเรียนรู้รึเปล่า? ตอบได้เลยว่า “ไม่ดี” ค่ะ การมีฟีเจอร์เยอะแยะมากมาย มีโอกาสเกิดการซ้ำซ้อนกันได้สูง (Redundant Features) หรือ ฟีเจอร์บางตัวแทบจะไม่มีความสัมพันธ์ (Irrelevant Features) กับสิ่งที่เราทำนายเลยด้วยซ้ำ เจ้าความซ้ำซ้อน และ ความไม่เกี่ยวข้อง ตัวนี้เอง ที่ก่อให้เกิดผลเสียต่อการเรียนรู้ของโมเดล Machine Learning โดยเฉพาะอย่างยิ่ง ในกรณีที่จำนวนข้อมูลมีจำกัด (มีจำนวนแถวข้อมูลน้อย ในขณะที่มีจำนวนคอลัมน์เยอะ) ดังนั้น ในการสร้างโมเดล Machine Learning นั้น เราไม่นิยมโยนฟีเจอร์ที่มีอยู่ทั้งหมดมาใช้งานตู้มเดียวเลย เนื่องด้วย…

โมเดลไหนเหมาะกับการลงทุนที่สุด? ต้องใช้โมเดลที่ซับซ้อนขนาดไหนถึงจะมีประสิทธิภาพเพียงพอ? โมเดลยิ่งยากยิ่งดีจริงหรือไม่?

พักหลังมานี้ผมได้รับคำถามหลังไมค์มาค่อนข้างบ่อย ว่าโมเดลไหนกันแน่ที่ลงทุนได้ผลดีที่สุด ผมจะสอนถึงไป deep learning หรือเปล่า คำตอบคือทำแน่ครับ แต่มันเป็นควรจะแยกไว้ต่างหากอีกเรื่องหนึงเลย แต่เอาเถอะ มาที่คำถามกันว่าโมเดลไหนดีที่สุดกันก่อน ในความคิดของผมอันที่จริง ปัญหานี้นับเป็นปัญหาของมือใหม่อย่างหนึ่งครับ คือความคิดที่เป็น myth ที่ว่า machine learning model ยิ่งลึกซึ้ง ยิ่งซับซ้อนมากๆ จะยิ่งดี ความคิดที่ว่า โมเดลพื้นฐานอย่าง linear หรือ logistic regression เป็นโมเดลที่แย่ เพราะง่ายเกินไป! ถ้าเพิ่มความละเอียดไปเป็น support vector machine มันก็จะยิ่งได้ผลลัพธ์ที่ดียิ่งขึ้น หรือ เพิ่มรายละเอียดไปถึงโมเดลที่ลึกซึ่งมากขึ้นอย่างโมเดลที่โด่งดังในช่วง 4 -5 ปีมานี้่อย่าง neural network deep learning ก็จะยิ่งดีขึ้นไปอีก โมเดลยิ่งซับซ้อนยิ่งดีจริงหรือเปล่า? คำตอบของผมคือ ไม่ครับ ไม่จริงซะทีเดียว ML หลายๆโมเดลมันก็เป็นแค่การแก้ปัญหาเชิง geometric เท่านั้น แล้วโมเดลไหนเหมาะกับปัญหาของเราทีสุด? คำตอบสั้นๆ ก็คือ…

8 เทคนิคง่ายๆ ป้องกัน Overfitting เพื่อโมเดล Machine Learning ที่มีประสิทธิภาพ

บทความที่แล้ว เราได้คุยกันถึงเรื่อง Overfitting ของโมเดล Machine Learning (ML) และ ความสำคัญระดับสุดยอดของมันกันไปแล้ว วันนี้เราจะมาคุยกันถึงเรื่องวิธีการป้องกันการเกิด Overfitting อย่างง่ายๆ กันค่ะ ขอให้ผู้อ่านใส่ใจในเรื่องนี้ให้มาก ท่องไว้เลยค่ะ โมเดล ML ไม่ว่าจะเป็นโมเดลพื้นฐาน หรือ โมเดลระดับที่มีความซับซ้อนสูง ถ้าเกิด Overfitting ขึ้นแล้วก็พังไม่เป็นท่าได้เหมือนกันค่ะ แถมเป็นการพังพินาศแบบที่ผู้สร้างไม่ทันตั้งตัวด้วย เกริ่นนำกันไปพอสมควรแล้ว เรามาดูกันดีกว่า ว่าวิธีการง่ายๆ ที่สามารถนำมาใช้ในการป้องกันปัญหาการ Overfitting นี้มีอะไรบ้าง แต่ก่อนอื่น ถ้าผู้อ่านท่านใด ยังไม่แน่ใจว่า Overfitting คืออะไร และ เกิดขึ้นได้อย่างไร สามารถกลับไปอ่านบทความก่อนหน้าที่เราเขียนไว้ก่อนได้ที่ Overfitting vs. Underfitting อธิบายด้วยตัวอย่าง ฉบับเข้าใจง่ายที่สุดในโลก 1. Hold Out วิธีการแรกในการป้องกันการเกิด Overfitting วิธีแรกเลยก็คือ การแบ่งข้อมูลออกเป็น ชุดข้อมูลสอน (Train set) และ ชุดข้อมูลทดสอบ…

Overfitting vs. Underfitting อธิบายด้วยตัวอย่าง ฉบับเข้าใจง่ายที่สุดในโลก

การเกิด Overfitting หรือ Underfitting เป็นปัญหาที่มองข้ามไม่ได้เลยสำหรับการใช้ Machine Learning (ML)ในการแก้ปัญหาต่างๆ การพัฒนาโมเดล ML ทุกครั้ง ผู้พัฒนาจะต้องคำนึงถึงการ Overfitting และ Underfitting เสมอ บทความนี้ เราจะมาดูกันว่า เจ้า Overfitting และ Underfitting นี้คืออะไร และ จะมีวิธีใดบ้างในการจัดการกับมัน อะไรคือ Overfitting? บทความนี้เราจะมาทำความเข้าใจ Overfitting ด้วยตัวอย่างกันค่ะ ลองนึกตามนะคะ มีชาวต่างชาติชื่อนายจอนนี่ ต้องการเรียนภาษาไทย โดยไม่เคยเรียนมาก่อนหน้านี้เลย แต่ดันเคยได้ยินว่ามีคนไทยคนหนึ่ง ชื่อว่าคุณสุนทรภู่ เป็นนักเขียนชาวไทยที่ยิ่งใหญ่ที่สุด มีผลงานออกมานับไม่ถ้วน ได้รับการยกย่องด้านการใช้ภาษาไทยเป็นอย่างมากในประเทศไทย ถ้าต้องการเชี่ยวชาญภาษาไทยให้ได้แบบไทยแท้ๆ ก็ต้องศึกษาผลงานของคุณสุนทรภู่นี่แหละ จอนนี่จึงตัดสินใจเลยว่า 1 ปีจากนี้ เขาจะศึกษาผลงานของคุณสุนทรภู่ แบบ Non-stop เลย เรียกว่าตื่นนอนก็ขังตัวเองอยู่ในห้องสมุด และอ่านๆๆๆๆๆๆ จำๆๆๆๆๆๆ เฉพาะงานเขียนของคุณสุนทรภู่เท่านั้น หนึ่งปีผ่านไป จอนนี่มั่นใจแล้วว่า เค้ารู้จักงานเขียนของคุณสุนทรภู่…

Machine Learning สร้าง Color Codes ทำเองได้ ง่ายนิดเดียว ไม่เกิน 10 นาทีเสร็จ [แจกโค้ด]

เคยเห็นโพส Color Codes เจ๋งๆ บน Social Media กันมั้ยคะ? วันนี้ Algoaddict ชวนมาลองสร้าง Color Code กันเองแบบง่ายๆ ด้วยการประยุกต์ใช้ Machine Learning ที่ชื่อว่า K-mean Clustering เข้ามาช่วยในการวิเคราะห์ค่าสี ต้องลองทำแล้วจะรู้ว่า ง่ายมากๆ ไม่เกิน 10 นาที ได้ Color Codes ให้รูปสวยๆ ของเรา แน่นอนค่ะ สาย Social Media, Graphic Designers และ Web designers ห้ามพลาด! Idea เราจะมาตรวจจับค่าสีในรูปภาพที่ต้องการ และทำการคำนวณนำ้หนักของค่าสีแต่ละค่าที่ประกอบขึ้นเป็นรูปภาพนั้นๆ สุดท้ายเราจะนำข้อมูลเหล่านี้มาสร้าง Color Codes สวยๆ กันค่ะ โปรแกรมนี้เป็นโปรแกรมที่ ง่าย สะดวก และทำได้รวดเร็ว แถมยังถือเป็นโอกาสเรียนรู้การประยุกต์ใช้งาน K-mean…

เรียน 4 skills หลัก Data Science ผ่านโปรเจคคูลๆ แบบไม่น่าเบื่อ สำหรับผู้เริ่มต้น

ในปัจจุบัน ต้องยอมรับแบบไม่มีเงื่อนไขว่าการวิเคราะห์ข้อมูล ได้กลายมาเป็นปัจจัยหลักของแทบทุกธุรกิจไปเรียบร้อยแล้ว หนึ่งในทักษะที่ถูกถามหากันมากที่สุดในการสมัครงานก็คือ ทักษะการวิเคราะห์ข้อมูลแบบ Data Scientist นั่นเอง ทำให้ผู้ที่มีความสามารถในด้านนี้ได้เปรียบกันไปเต็มๆ ข่าวดีก็คือ ทักษะนี้สามารถสร้างได้เองงโดยไม่ต้องกลับเข้าไปลงทะเบียนเข้าเรียนใหม่ค่ะ โดยเฉพาะอย่างยิ่ง ในยุคเทคโนโลยีข่าวสารแบบนี้ แหล่งเรียนรู้มีมากมายนับไม่ถ้วน เพียงแต่หาให้เจอ เลือกแหล่งเรียนรู้ที่เหมาะสมเท่านั้น บทความนี้ Algoaddict จึงขออาสาพาผู้อ่านที่สนใจเริ่มต้นหาความรู้เพื่อเพิ่มพูนทักษะด้านการวิเคราะห์ข้อมูลมาเรียน Skill หรือทักษะหลักๆ ที่จำเป็นสำหรับการทำงานด้าน Data Science ผ่านโปรเจคที่หลากหลายกันค่ะ รับรองว่า เรียนสนุก ไม่น่าเบื่อ จนลืมเวลาไปแน่นอนค่ะ ไปดูกันเลยค่ะ ว่าทักษะเหล่านี้มีอะไรบ้าง และ โปรเจคไหนที่ได้รับเลือกมาในการเรียนทักษะนั้นๆ ค่ะ SKILL 1 การเก็บรวบรวมข้อมูล (Data Collection) Data collection หรือ การเก็บรวมรวมข้อมูล เป็นทักษะที่สำคัญอย่างหนึ่งของ Data Science ในช่วงการทำงาน หรือ ทำวิจัยด้าน AI / Machine Learning ที่ผ่านมาของผู้เขียน ปฏิเสธไม่ได้เลยว่า…

The more, the merrier ยิ่งคนเยอะ ยิ่งมันส์! มาดูคำกล่าวนี้ใช้กับ Machine Learning ได้มั้ย

เคยได้ยินคำกล่าวที่ว่า “The more, the merrier“ ที่แปลว่า “ยิ่งคนเยอะ ยิ่งสนุก หรือ ยิ่งดี” ที่มักถูกใช้กันบ่อยๆ ในภาพยนต์ฝรั่ง เวลามีเพื่อนจัดปาร์ตี้ แล้วมีคนอนุญาติเจ้าภาพขอพาเพื่อนมาเพิ่ม เจ้าภาพส่วนใหญ่ก็จะบอกว่า Of course, the more, the merrier … ได้แน่นอน ยิ่งคนเยอะยิ่งสนุก!! วันนี้เราจะพาไปดูกันว่า เจ้าสถานการณ์ยิ่งเยอะยิ่งดี หรือ ยิ่งเยอะยิ่งเจ๋ง จะให้กับจำนวน Machine Learning ่ที่ใช้ในการทำนายในระบบเทรดได้หรือไม่? ผ่านการทดลองง่ายๆกันค่ะ ก่อนอื่นมาดูอัลกอริทึ่ม Machine Learning ที่จะใช้กันก่อน ในที่นี้เราจะเลือกอัลกอริทึ่มที่ไม่ซับซ้อน เพื่อที่เราจะได้เห็นประสิทธิภาพของการเพิ่มจำนวน “ตัวทำนาย” ให้ชัดๆ ไม่โดนประสิทธิภาพและความซับซ้อนของอัลกอริทึ่มเข้ามาทำให้ไขว้เขว ชนิดของ Machine Learning อัลกอริทึ่มมีจำนวนมาก ถึงขนาดที่ว่าถ้าจะให้ลิสส์ออกมาก็อาจจะไม่สามารถลิสส์ออกมาให้ครบถ้วนได้ ดังนั้น ในที่นี้ เราจะทำการเลือก Machine Learning ออกมา 6 ตัว…

กรองสัญญาณเทรดง่ายๆ ด้วย K-mean clustering

สวัสดีครับ ห่างหายจากการอัพบล๊อคกันไปนานมาก เนื่องจากติดภารกิจหลายเดือน วันนี้จะกลับมาเขียนอัพบล็อคตามปรกติแล้วครับ ขอถือโอกาสมาปัดฝุ่นกันด้วยไอเดียง่ายๆ ที่ใช้ในการกรองสัญญาณเทรดด้วย Machine Learning กันก่อนก็แล้วกันครับ ข้อมูล ในที่นี้เราจะใช้ ขอมูลหุ้น MSFT(microsoft corporation) เป็นตัวอย่างในการทดลองนี้นะครับ โดยใช้ข้อมูลในการทดลองตั้งแค่ปี 2016 จนถึงปี 2018 เริ่มทำงาน โดยแรกเริ่ม เราจะใช้กลยุทธ์อย่าง Trend Following แบบธรรมดาๆ คือ ใช้ Feature หรือ indicator แค่ Simple Moving Average (SMA) 2 เส้น เท่านั้น SMA1 เส้นเร็ว xx วัน โดยผมจะปรับให้สั้นเพื่อให้เกิด noise SMA2 เส้นช้า yy วัน โดยผมจะปรับให้สั้นเพื่อให้เกิด noiseเช่นกัน จากนั้น ก็ประยุกต์ใช้ไอเดียง่ายๆ ที่ทราบกันอยู่แล้วคือ ให้ SMA1…

Startup แบบไหนที่ได้ไปต่อ! ทดสอบด้วย Machine Learning

ปัจจุบันมี Startup ใหม่ๆ เกิดขึ้นทุกวันพร้อมกับไฟแห่งความหวัง แต่ใครจะรู้ว่ามี Startup ไม่น้อยที่ไฟนั้นต้องมอดไปก่อนเวลาอันควร ไม่สามารถไปให้ถึงฝั่งฝันได้ วันนี้เราจะมาดูกันค่ะ ว่าจะมีทางไหนบ้างมั้ยที่เราจะสามารถใช้ Machine Learning เข้ามาทำนายความสำเร็จหรือความอยู่รอดของ Startup หน้าใหม่ได้ ก่อนอื่นเรามาดูแหล่งข้อมูลที่เราจะนำมาใช้กันก่อนค่ะ ข้อมูลที่เราจะนำมาใช้นี้เป็นข้อมูลฟรีจากเว็บไซต์ https://angel.co/companies ซึ่งเป็นเว็บไซต์ที่ใช้ข้อมูลต่างๆ เกี่ยวกับบริษัท Startup ในหลายๆ Sectors ณ วันที่เขียนบทความนี้ (13/5/2020) ในเว็บไซต์นี้มีข้อมูลบริษัทอยู่ถึง 556,000+ บริษัทเลยทีเดียว โดยเว็บไซต์จะให้ข้อมูลรายละเอียดต่างๆ ที่จำเป็นเกี่ยวกับบริษัทในฐานะของ Startup เช่น ชื่อบริษัท วันที่เข้าร่วมในเว็บไซต์ ตำแหน่งที่ตั้ง ประเภทธุรกิน ขนาดบริษัท สถานะ และ จำนวนเงินที่บริษัทระดมทุนถึง ณ ปัจจุบัน เนื่องจากมีจำนวน Startup อยู่เป็นจำนวนมาก เราจึงจะทำการสุ่ม Startup ออกมาใช้ในการวิเคราะห์ข้อมูลเพียงบางส่วนเท่านั้น ก่อนที่จะเริ่มต้นการวิเคราะห์ข้อมูลกัน จะขอกล่าวถึงสถานะของบริษัทกันซักเล็กน้อยก่อน เพื่อให้เข้าใจข้อมูลมากขึ้นค่ะ สถานะ (Stage) ของ…

นักลงทุนคนดัง Marcos Lopez de Prado แจก 10 ไอเดียการใช้ ML ในการลงทุน (ฉบับเต็ม)

เมื่อพูดถึงการใช้ Machine Learning ในงานด้านการลงทุนแล้ว คนส่วนใหญ่มักจะนึกถึง “การทำนาย” ราคาข้องหุ้นเป็นหลัก แต่จริงๆ แล้ว Machine Learning ไม่ได้ทำได้เพียงแค่การทำนายค่าราคาเท่านั้นในการลงทุน บทความนี้จะพาไปดู ไอเดียต่างๆ ในการนำ Machine Learning มาใช้ในการด้านการลงทุน โดยการสรุปของคุณ Marcos Lopez de Prado อดีตหัวหน้าทีมนักวิจัย Machine Learning แห่ง AQR Capital และ CIO แห่ง True Positive Technologies (TPT) CIO of True Positive Technologies (TPT) มาดูกันเลยค่ะว่า 10 ทางเลือกในการใช้ Machine Learning ในการลงทุน จะมีอะไรกันบ้าง 1. การทำนายราคา (Price Prediction) ปัญหายอดฮิตของ Machine…

Machine Learning Life Cycle: 7 ขั้นตอนง่ายๆ ในการสร้างโมเดล ML

บทความนี้ เราจะมาพูดถึงวงจรการทำงานของ Machine Learning หรือ “Machine Learning Life Cycle” กันค่ะ ว่ามีขั้นตอนอะไรเข้ามาเกี่ยวข้องบ้าง และ แต่ละขั้นตอนคืออะไร ตั้งแต่การรวบรวมข้อมูล ไปจนถึงการสร้างแอพลิเคชันกันเลย “Your Idea” หรือ สิ่งที่คุณต้องการสร้าง ก่อนอื่นมาเริ่มกันที่ “idea” หรือ แนวคิด ของสิ่งที่คุณต้องการทำกันก่อนเลยค่ะ คุณมีไอเดียจะสร้าง Application ที่ทำนายอารมณ์ของคน เช่น ถ้าทำนายว่าเศร้า ระบบอาจจะเสนอทางเลือกว่า “Call a friend?” (อยากจะโทรหาเพื่อนมั้ย?) หรือ จะ “See a cute pictures” (อยากดูรูปน่ารักๆ มั้ย?) เพื่อทำให้คนๆ นั้นมีอารมณ์ที่ดีขึ้นได้ ถ้าคุณตัดสินใจใช้ ML เข้ามาช่วยในการทำงาน เราจะพาไปดูว่า คุณจะต้องทำขั้นตอนอะไรบ้าง! มาดูกันเลยค่ะ 1. กำหนดขอบเขตของปัญหา (Problem Definition) ในที่นี้เราวิเคราะห์…