สอนวิเคราะห์ข้อมูล [ฉบับจับมือทำ] ตั้งแต่เบื้องต้น ถึงการสร้างโมเดล Machine Learning ผ่านข้อมูล การ ซื้อ-ขาย ผลไม้เพื่อสุขภาพยอดฮิตอย่าง Avocado {Part 3: Machine Learning}

บทความนี้เป็นบทความที่ 3 ในบทความชุด “สอนวิเคราะห์ข้อมูล [ฉบับจับมือทำ] ตั้งแต่เบื้องต้น ถึงการสร้างโมเดล Machine Learning ผ่านข้อมูล การ ซื้อ-ขาย ผลไม้เพื่อสุขภาพยอดฮิตอย่าง Avocado” ก่อนที่จะเริมบทความความนี้ ขออนุญาติรวบรวมลิงก์บทความทั้งชุดนี้ให้ก่อนนะคะ เผื่อใครยังไม่ได้อ่าน 2 บทความแรก จะได้ไปติดตามได้ เนื่องจากบทความทั้ง 3 เป็นบทความที่ต่อเนื่องกัน จึงแนะนำให้อ่านเรียงตามลำดับ ดังนี้ 1. สอนวิเคราะห์ข้อมูล [ฉบับจับมือทำ] ตั้งแต่เบื้องต้น ถึงการสร้างโมเดล Machine Learning ผ่านข้อมูล การ ซื้อ-ขาย ผลไม้เพื่อสุขภาพยอดฮิตอย่าง Avocado {Part 1: Descriptive Analysis} 2. สอนวิเคราะห์ข้อมูล [ฉบับจับมือทำ] ตั้งแต่เบื้องต้น ถึงการสร้างโมเดล Machine Learning ผ่านข้อมูล การ ซื้อ-ขาย ผลไม้เพื่อสุขภาพยอดฮิตอย่าง Avocado {Part 2:…

ผลกระทบของการไม่ Rebalance พร้อม (Python code)

“การลงทุนที่ดีที่การลงทุนที่กำไรมากที่สุด” นั่นมันสำหรับมือใหม่เค้าว่ากันครับ การลงทุนที่ได้กำไรมากๆ อาจจะเป็นการลงทุนที่ห่วยแตกก็ได้ และเราไปสนใจกับแค่ช่วงเวลาหนึ่งๆ (one point in time) แล้วพบว่าระบบลงทุนของเรานี่มันดี เพราะทำกำไรได้มาก แต่จริงๆ อาจจจะฟลุ๊กก็ได้ ในการลงทุนที่ดี สิ่งที่ต้องสนใจไม่แพ้ผลกำไร ก็คือ “ความเสี่ยง” ครับ portfolio ที่ดีจะต้องให้น้ำหนักกับเรื่องนี้ให้มาก วันนี้เราเลยจะมาดูเรื่องผลกระทบของการ “Rebalance Portfolio” กันครับ โดยตัวอย่างที่ผมเลือกมาเพื่อให้เราเห็นว่า การลงทุนที่ดีที่สุดไม่จำเป็นต้องทำกำไรมากที่สุด และทำไมต้อง Rebalanced Portfolio กันครับ ก่อนอื่นดึง library ที่ต้องใช้มาก่อน ก็ตัวเดิมๆทั้งนั้น ดึงข้อมูลหุ้น สองตัว Google และ 3M อันนี้เราจะเลือกสุ่มๆนะครับ และเพื่อความเรียบง่าย ผมจะใช้แค่หุ้น 2 ตัวในพอร์ตเป็นตัวอย่าง เราจะสมมุติว่าการถือหุ้นสองตัวนี้จะแบบ equal weight จะดีกับ risk profile ก็แล้วกันครับ หา return ของหุ้นทั้ง 2…

จัดการข้อมูลอย่าง Quants [Part2: จัดการ Missing Value และ คำนวณ Statistics สำหรับข้อมูลทั้งตลาด]

บทความชุดนี้เราจะมาเอาใจสายลงทุนกัน ด้วยบทความชุด “จัดการข้อมูลอย่าง Quants” ซึ่งจะประกอบไปด้วย 3 บทความด้วยกัน ดังนี้ 1.จัดการข้อมูลอย่าง Quants [Part 1: ดึงข้อมูลหุ้น S&P500 ทั้ง 500 ตัว] 2. หลากหลายวิธีกับการจัดการกับ “Missing Value” 3. จัดการข้อมูลอย่าง Quant [Part2: จัดการ Missing Value และ คำนวณ Statistics สำหรับข้อมูลทั้งตลาด บทความทั้งหมดจะเป็น Tutorial สำหรับผู้ที่สนใจการดึงข้อมูลหุ้นเพื่อการลงทุนแบบไม่เสียค่าใช้จ่าย! อ่านไปด้วย Coding ไปด้วยได้เลยครับ บทความที่ 3 นี้ นี้เป็นตัวต่อจากบทความที่แล้ว ฉะนั้นเราคาดหวังว่าผู้อ่านจะมีไฟล์ “sp500_data.xlsx” ที่เราทำกันมาในบทความที่ 1 กันแล้วนะครับ ถ้าท่านใดยังไม่มีไฟล์ สามารถอ่านวิธีการจัดการดาวน์โหลดข้อมูล และสร้างไฟล์ได้ที่ บทความที่ 1 “จัดการข้อมูลอย่าง Quants [Part…

จัดการข้อมูลอย่าง Quants [Part 1: ดึงข้อมูลหุ้น S&P500 ทั้ง 500 ตัว!]

บทความชุดนี้เราจะมาเอาใจสายลงทุนกัน ด้วยบทความชุด “จัดการข้อมูลอย่าง Quants” ซึ่งจะประกอบไปด้วย 3 บทความด้วยกัน ดังนี้ บทความทั้งหมดจะเป็น Tutorial สำหรับผู้ที่สนใจการดึงข้อมูลหุ้นเพื่อการลงทุนแบบไม่เสียค่าใช้จ่าย! ซึ่งจะสอนตั้งแต่การหาข้อมูล การเขียนโปรแกรมทุกขั้นตอนจนกระทั่งได้ข้อมูล .CSV พร้อมใช้งาน ไม่เพียงแค่นี้ นอกจากสอนดึงข้อมูลแล้ว เรายังสอนการจัดการกับข้อมูลเบื้องต้น การทำความสะอาดข้อมูล (Data Cleaning) เพื่อเตรียมข้อมูลให้พร้อมสำหรับการวิเคราะห์ในขั้นตอนต่อไปอีกด้วย ไปเริ่มกันเลยครับ อ่านไปด้วย Coding ไปด้วยได้เลยครับ ดึงข้อมูลหุ้นทั้ง 500 ตัวจาก S&P500 Import ไลบารี่ที่จำเป็นกันก่อน เริ่มด้วยไปที่ Wikipedia ที่ List รายชื่อหุ้นในกลุ่ม S&P500 ไว้ทั้งหมด เราใช้ฟังก์ชั่น pd.read_html เพื่ออ่านหน้าเพจจากเว็ปไซต์ https://en.wikipedia.org/wiki/List_of_S%26P_500_companies เราจะได้ list ที่ใส่ ข้อมูลในเว็ปไซต์หลายตัว แต่เราสนใจเฉพาะตารางที่บรรจุชื่อ ที่ตารางแรกเราสนใจ columns ที่ชื่อ Symbol ที่จะให้ชื่อของหุ้นทุกตัว จากนั้นเราทำด้านบนให้เป็นฟังก์ชั่น เรียกใช้ฟังก์ชั่นเก็บชื่อหุ้นใส่ตัวแปรชื่อ…

ไขข้อข้องใจ “ChatGPT” เก่งขนาดนั้นจริงหรือ?

Q: “ChatGPT คือจุดเริ่มต้นของจุดจบ! โลกยังไม่พร้อมกับมัน! มันจะแย่งงานเรา! มันจะเขียนโค้ดแทนเรา! มันจะมาแทน StackOverflowหรือไม่ในการช่วยเราตอบคำถามเรื่องการเขียนโค้ด? ช่วยเราเขียนโค้ดลงทุนเก่งกว่าเราแล้ว?” A : ไม่!!! ChatGPT ไม่ใช่จุดเริ่มต้นของจุดจบอะไรทั้งนั้น เหมือนกับที่ Alpha Go ไม่ใช่ จุดเริ่มต้นของ Reinforcement Learning ฉันใด ChatGPT ก็ไม่ใช่จุดเริ่มต้นของ NLP ฉันนั้น หากแต่เป็นโมเดลต่อยอดขนาดใหญ่(GPT3)ที่น่าสนใจทั้งฉลาดมาก แต่ในขณะเดียวกันก็สามารถทำตัวโง่อวดฉลาดมากในเวลาเดียวกันเช่นครับ ถ้า ChatGPT เป็นคนซักคนหนึ่ง จินตนาการว่าเค้าจะเหมือนอะไร? ลองนึกถึงคนซักคน ที่พยายามทำตัวเป็นพหูสูตรเก่งไปทุกเรื่องซึ่งบางเรื่องก็เก่งจริง บางเรื่องไม่รู้ก็มั่วออกมาเละเทะ และสามารถพูดเรื่องที่ตัวไม่มีความเข้าใจจริงๆ ออกมาได้อย่างมั่นใจ ดูดีมีความรู้ จนใครๆต่างพากันหลงเชื่อดูซักคนครับ ผมไม่ได้มาแซะใครนะ แต่คนๆนั้นมันคือ ChatGPT เนี่ยแหละครับ ฮา ภาษาชาวบ้าน ก็คือ … “ChatGPT มันก็เหมือนคนอ่านหนังสือเล่มใหญ่ๆมา จากนั้นฟังเราถาม พยายามแปลคำถามเราเป็นภาษาตัวเอง ละก็ตอบจากหนังสือที่เค้าอ่านมาครับ“ ตั้งแต่ ChatGPT เปิดตัวออกมาเมื่อไม่นานมานี้…

สอนวิเคราะห์ข้อมูล [ฉบับจับมือทำ] ตั้งแต่เบื้องต้น ถึงการสร้างโมเดล Machine Learning ผ่านข้อมูล การ ซื้อ-ขาย ผลไม้เพื่อสุขภาพยอดฮิตอย่าง Avocado {Part 2: EDA}

บทความนี้เป็นบทความที่ 2 ของบทความชุด “สอนวิเคราะห์ข้อมูล [ฉบับจับมือทำ] ตั้งแต่เบื้องต้นถึงการสร้างโมเดล Machine Learning ผ่านข้อมูลการซื้อขายผลไม้เพื่อสุขภาพยอดฮิตอย่าง Avocado” เนื่องจากบทความชุดนี้เป็นบทความที่มีเนื้อหาต่อเนื่องกัน! ดังนั้น เพื่อให้เกิดความเข้าใจ และเป็นประโยชน์สูงสุด ขอแนะนำให้ผู้อ่านเริ่มจากบทความแรกก่อน โดยสามาถอ่านได้ที่ลิงก์ด้านล่างค่ะ บทความที่ 1 อ่านบทความแรกกันไปแล้ว ก็พร้อมแล้วสำหรับเนื้อหาของบทความที่ 2 นี้ ไปเริ่มกันเลยค่ะ อะไรคือ EDA EDA หรือ Exploratory Data Analysis คือ กระบวนการสำรวจข้อมูลเบื้องต้นที่จำเป็น ก่อนที่จะเริ่มการวิเคราะห์ข้อมูลในเชิงลึกแบบอื่นๆ เช่น การทำนายข้อมูล (Predictive) การทำ EDA จะทำการสำรวจข้อมูลในหลายๆ แง่มุม ทั้งในรูปแบบการสำรวจโดยแยกเป็นแต่ละประเภทของข้อมูล และ นำไปสู่การสำรวจความสัมพันธ์ระหว่างตัวแปรที่เกี่ยวข้องในข้อมูลนั้นๆ โดยประโยชน์ของ EDA คือ การมีความเข้าใจข้อมูล และความสำพันธ์ของตัวแปรที่เกี่ยวข้องมากขึ้น หรือ เรียกว่าการหา Insights ของข้อมูล นั่นเอง การทำ EDA…

สอนวิเคราะห์ข้อมูล [ฉบับจับมือทำ] ตั้งแต่เบื้องต้น ถึงการสร้างโมเดล Machine Learning ผ่านข้อมูล การ ซื้อ-ขาย ผลไม้เพื่อสุขภาพยอดฮิตอย่าง Avocado {Part 1: Descriptive Analysis}

อะโวคาโด้ (Avocado) เป็นผลไม้เพื่อสุขภาพที่กำลังได้รับความนิยมเป็นอย่างมาก ทานก็อร่อย เอาข้อมูลมาวิเคราะห์ก็สนุก 🙂 จากการที่เป็นหนึ่งในผลไม้ยอดฮิต ที่มีราคาสูงเป็นอันดับต้นๆ จึงมีการเก็บข้อมูลผลผลิต ข้อมูลราคา และการซื้อขาย อย่างแพร่หลาย เพื่อให้ได้ประโยชน์จากการค้าอะโวคาโด้มากที่สุด เราจึงจับเอาข้อมูลราคา และการซื้อขายเจ้าอะโวคาโด้มาเป็นตัวแทน เพื่อสอนการวิเคราะห์ข้อมูลตั้งแต่เบื้องต้น ไปจนถึงสามารถสร้างโมเดลเพื่อทำนายข้อมูลด้วย Machine Learning ได้ เนื่องจากการวิเคราะห์ข้อมูลมีรายละเอียดค่อนข้างมาก จึงจัดแบ่งหัวข้อ และ บทความออกเป็นส่วนๆ ดังนี้ Part 1: การอ่านข้อมูล ทำความสะอาดเบื้องต้น และการวิเคราะห์ข้อมูลเชิงบรรยาย (Descriptive Analysis) Part 2: การวิเคราะห์ข้อมูลเพื่อสำรวจข้อมูลในเชิงความสัมพันธ์ EDA (Exploratory data analysis) เพื่อค้นหาลักษณะเฉพาะของข้อมูล และทดสอบสมมุติฐานเบื้องต้น Part 3: การวิเคราะห์ข้อมูลเชิงลึก และการสร้างโมเดลในการทำนายข้อมูลด้วย Machine Learning มาเริ่มกันเลยดีกว่าค่ะ 1. โหลด Library ที่จำเป็น General libraries ไลบรารี่พื้นฐานต่างๆ…

ยาวไป ไม่อ่าน! มาใช้ “Transformer Model” ย่อข่าวสารการลงทุนให้เรากันดีกว่า

ในยุคของข้อมูลข่าวสารที่กว้างใหญ่และมีการเชื่อมต่อกันมากมายขนาดนี้ สิ่งที่เราหลีกหนีไม่ได้เลยก็คือ “ข้อมูลท่วม” ครับ ไม่ว่าเราอยากจะศึกษาอะไรซักอย่างหนึง เราไปหาในกูเกิลก็จะเห็นว่า ผลการค้นหามันเยอะเหลือเกิน เช่น ถ้าเราอยากจะตามดราม่าในทวิตเตอร์ มันก็เยอะเหลือเกิน เราอยากจะประเมินข่าวเกี่ยวกับบริษัทที่เราสนใจ ข่าวมันก็ท่วมหัว สุดวิสัยที่เราจะมานั่งอ่านมันให้หมดได้จริงๆ สุดท้ายข้อมูลที่เราอุส่าไปค้นหามารวมกัน ก็มากองทับกับเป็น “กองดอง” อันเป็นที่รู้กันของคนชอบอ่านหนังสือ มันจะดีกว่าไหม ถ้าเราสามารถตัดสินใจได้ว่า อะไรกันแน่ที่สำคัญต่อเราจริงๆ ทำให้ข้อมูลมันสั้นๆ กระชับ แต่ได้ใจความ เพื่อให้เราได้นำไปใช้ตัดสินใจในเรื่องที่เราสนใจต่อไป วันนี้เราเลยอยากแนะนำโมเดล Deep Learning Model ตัวหนึงที่ใช้ Mechanic ของ “Self-Attention model” มาช่วยเราสรุปย่อข้อความที่มันสำคัญจริงๆกันครับ Import Library ที่จำเป็นตัวใหม่ที่เพิ่มขึ้นมาคือ transformers ซึ่งเป็นโมเดล attention model ซึ่งเป็น deep learning model ที่ใช้งานได้ดีในข้อมูลภาษา ดึงข้อมูล GE_news.csv ซึ่งเป็นข้อมูลรวมข่าวของบริษัท General Electric: GE จำนวน 335 ข่าว…

รายละเอียดคอร์ส AI for Investment: from AI to Fundamental Investing

คอร์สนี้เป็นคอร์ส “ประยุกต์ใช้ศาสตร์ Artificial Intelligence ในการลงทุน” ภายในคอร์ส เราจะเขียนโปรแกรมที่สามารถ “เลือกหุ้น” ที่จะลงทุนในระยาว ตั้งแต่ 1 ปีขึ้นไป โดยการใช้เทคนิค Machine learning เพื่อคัดแยกหุ้นที่น่าลงทุนมาให้เรา เป้าหมายของคอร์ส สร้างโปรเจคเพื่อ“คัดแยกหุ้นที่น่าสนใจด้วย Machine Learning” เราจะพาทุกท่านมาสร้าง ตะแกรงร่อนหุ้น เพื่อเฟ้นหาหุ้นที่น่าสนใจท่ามกลางหุ้นนับพันตัว!!! รายละเอียดหัวข้อต่างๆ ที่เราจะได้เรียนรู้จากการเรียนคอร์สนี้ เรียนรู้วิธีการหาข้อมูลหุ้น ข้อมูลงบการเงิน ประเภทข้อมูล ข้อมูลสูงระดับล้านแถว เรียนรู้วิธีการจัดการข้อมูลงบการเงิน และการสร้าง Financial Feature ที่ส่งผลต่อการทำนายด้วย โมเดล Machine Learning การทำความสะอาดข้อมูล (Data Cleaning) เพื่อเตรียมพร้อมสำหรับการสร้างโมเดล AI ความรู้เบื้องต้นเกี่ยวกับ Machine Learning เช่น การแบ่งข้อมูล Train-Test Set ปัญหา Overfittingการหาจุดสมดุลของโมเดล (Bias Variance Tradeoff) Machine…

มาลองใช้ Random Forest ช่วยในการลงทุนกันดีกว่า

บทความนี้ เราจะมาลองใช้ Machine Learning ตัวที่ขึ้นชื่อว่าดีมากอีกตัวหนึ่งคือ Random Forest มาช่วยในการทำนายการเปลี่ยนแปลงของราคาหุ้นกัน ระหว่างที่เรากำลังจัดทำเนื้อหาคอร์สใหม่ ที่ปัจจุบันเสร็จไปแล้วกำลังอยู่ในขั้นตอนการอัดวีดีโอนะครับ และในคอร์สนั้นเราก็มีการใช้ Random Forest ในการทำนายราคาหลักทรัพย์เช่นกัน วันนี้เราเลยเอามาแปะให้เห็นภาพแบบคร่าวๆก่อนนะครับ (เนื้อหาในคอร์สลึกว่านี้เยอะมาก) ทำไมต้อง Random Forest Random Forest เป็นอีกหนึ่งอัลกอริทึ่มที่ได้รับการยอมรับกันอย่างแพร่หลาย และทำผลงานได้ค่อนข้างดี ในขณะที่ตัวโมเดลเองก็ไม่ได้ซับซ้อนจนเกินไป Random Forest เป็นอัลกอริทึ่มที่พัฒนาต่อยอดจากอัลกอริทึ่มพื้นฐานอย่าง Decision Tree ที่มีการใช้ต้นไม้ในการตัดสินใจ โดยในการสร้างต้นไม้ที่ใช้ในการตัดสินใจขึ้นนั้น จะอาศัยหลักการสร้างกฏสำหรับการแบ่งต้นไม้ออกเป็นกิ่งๆ และจัดให้ข้อมูลที่มีเงื่อนไขตรงตามที่กำหนดถูกจัดอยู่ในใบของแต่ละกิ่งที่ได้รับการแบ่งข้างต้น Decision Tree ถือเป็นอัลกอริทึ่มที่พยายามจัดการกับข้อมูลด้วยการสร้างต้นไม้เพียงแต่ 1 ต้น เท่านั้น ทำไม่ยังไม่สามารถจัดการกับข้อมูลที่ซับซ้อนได้อย่างมีประสิทธิภาพ ดังนั้น จึงมีการคิดค้นอัลกอริทึ่มที่ประกอบไปด้วยต้นไม้มากกว่า 1 ต้นในการตัดสินใจ คือ Random Forest หรือ “ป่า” ที่ใช้ในการตัดสินใจ ขึ้นมา ซึ่งในการทำงานของ Random Forest นี้…

การทำ 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 สร้าง 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…