แบบจำลองการทำนายผลผลิตของพืชเศรษฐกิจ โดยใช้เทคนิค Machine Learning

Photo by Adele Payman on Unsplash

จากปัญหาสินค้าเกษตรล้นตลาด ทำให้ราคาตกต่ำ เกษตรกรขาดทุนทำให้เกิดหนี้สินสะสมอย่างต่อเนื่อง เป็นปัญหาที่เกิดขึ้นมาอย่างยาวนาน จากการศึกษาผลผลิตภาคเกษตรที่ครอบคลุมทั่วประเทศ แสดงให้เห็นว่าปัจจัยที่ส่งผลต่อการทำเกษตรของไทยมีความแตกต่างกันมาก ทั้งพืชที่ปลูก สภาพภูมิอากาศ ปริมาณน้ำฝน อุณหภูมิ ทำให้พืชที่เหมาะสมในพื้นที่หนึ่งจึงอาจไม่เหมาะสมในต่างพื้นที่ ดังนั้นถ้าหากสามารถคาดการณ์ทำนายผลผลิตของพืชผลในอนาคตได้ จะช่วยให้เกษตรกรสามารถตัดสินใจได้เหมาะสมว่า ในพื้นที่จังหวัดของตัวเอง สามารถปลูกพืชเศรษฐกิจชนิดใดแล้วจะได้ ราคาขายที่คุ้มค่ากับการลงทุนเพาะปลูกที่สุด

สภาพภูมิอากาศเป็นหนึ่งในปัจจัยหลักที่อยู่นอกเหนือการควบคุมของมนุษย์ ซึ่งเป็นตัวกำหนดผลผลิตพืชผลการเกษตร ดังนั้น การสร้างแบบจำลองการทำนายผลผลิตของพืชเศรษฐกิจ โดยพิจารณาจากตัวแปรสภาพภูมิอากาศ จึงเป็นหัวข้อโครงการที่น่าสนใจ ในโครงการนี้ ได้สร้างแบบจำลอง เพื่อหาความสัมพันธ์ระหว่างปริมาณน้ำฝน/อุณหภูมิและผลผลิตของพืชเศรษฐกิจ 4 ชนิด ได้แก่ ข้าว,มันสัมปะหลัง,สับปะรด,ข้าวโพด

โดยขั้นตอนการสร้างแบบจำลองและการทำนายผลผลิต เป็นดังนี้

• การสร้างแบบจำลองอนุกรมเวลา (Time Series) โดยใช้ Prophet เพื่อทำนายปริมาณน้ำฝนและอุณหภูมิในอนาคต ซึ่งผลการทำนายจะถูกใช้ในการทำนายผลผลิตในอนาคตต่อไป

• การสร้างแบบจำลอง Linear Regression เพื่อหาความสัมพันธ์ระหว่าง ปริมาณน้ำฝน/อุณหภูมิ และผลผลิต เพื่อนำมาใช้ในการทำนายผลผลิตในอนาคต

• การสร้างการระบุข้อมูลเพื่อการทำนาย โดยให้ผู้ใช้งาน ระบุจังหวัดและปีในอนาคต จากนั้นแบบจำลองจะทำนายผลผลิต และกำไรต่อไร่ที่คาดว่าจะได้รับจากการขายพืชเศรษฐกิจชนิดนั้นๆ

การสร้างแบบจำลองอนุกรมเวลา (Time Series) โดยใช้ Prophet

ข้อมูลปริมาณน้ำฝนและอุณภูมิตั้งแต่ปี 2015–2020 เป็นข้อมูลตั้งต้น และให้แบบจำลอง Prophet ทำนายปริมาณน้ำฝนและอุณหภูมิ 2 ปีในอนาคต: 2021, 2022

ข้อมูลเป็นปริมาณน้ำฝนรายเดือนในแต่ละปี และแบ่งตามจังหวัด ก่อนนำข้อมูลเข้าแบบจำลอง Prophet ทำการปรับให้มี columns: ds, y ตามที่ Prophet ต้องการ

นำข้อมูลเข้าแบบจำลองโดย group ข้อมูลตามจังหวัด เนื่องจากต้องการให้แบบจำลองทำนายปริมาณน้ำฝนในอนาคตเป็นตามจังหวัด การทำงานของแบบจำลอง Prophet ในครั้งนี้จะใช้เวลาประมาณ 3–4 นาที ดังนั้น จะมีการ export ข้อมูลไปเป็น csv file เพื่อนำไปใช้ในขั้นตอนถัดไป

ซึ่งข้อมูลอุณหภูมิ มีการนำข้อมูลเข้าแบบจำลอง Prophet และ export ข้อมูลไปเป็น csv file เพื่อนำไปใช้ในขั้นตอนถัดไป ด้วยเหมือนกัน

การสร้างแบบจำลอง Linear Regression

การสร้างแบบจำลอง Linear Regression (LR) เพื่อหาความสัมพันธ์ของปริมาณน้ำฝน/อุณหภูมิ และผลผลิตในพืชแต่ละชนิด โดยจะสร้างแบบจำลองขึ้นมา 2 แบบ ได้แก่ LR ตาม Cluster ของพืชแต่ละชนิด และ LR ตามพืชแต่ละชนิดตามจังหวัด

ก่อนนำข้อมูลเข้าแบบจำลองในแต่ละแบบ จะมีการใช้ pivot table มาจัดรูปแบบของข้อมูลขึ้นมาใหม่ และทำการรวมข้อมูลปริมาณน้ำฝนและอุณหภูมิเข้ามาอยู่ใน dataframe เดียวกัน เพื่อให้พร้อมนำเข้าแบบจำลอง LR ต่อไป

K-Means Clustering ถูกใช้จัดกลุ่มจังหวัดในพืชแต่ละชนิด โดยจัดกลุ่มจังหวัดออกเป็น 4 กลุ่ม ซึ่งจะได้ทั้งหมด 16 กลุ่ม จากพืชทั้งหมด 4 ชนิด (ข้าว,มันสัมปะหลัง,สับปะรด,ข้าวโพด) แบบจำลอง K-Means Clustering ที่สร้างขึ้นจะทำการค้นหาจำนวนสมาชิกของคลัสเตอร์ โดยใช้ข้อมูลปริมาณน้ำฝน/อุณภูมิของแต่ละจังหวัดที่มีความสัมพันธ์ที่ใกล้เคียงกันเป็นการแบ่งกลุ่ม โดยผลลัพธ์ที่ได้จากแบบจำลอง จะถูกนำไปรวมเข้าไปกับ dataframe ใน column = [‘CLUSTER’]

เมื่อแบ่งกลุ่ม cluster ในพืชแต่ละชนิดแล้ว จะมีการรวมข้อมูลทั้งหมดมาอยู่ใน dataframe เดียวกัน เพื่อนำไปใช้ในการเข้าแบบจำลอง LR ต่อไป

สร้างแบบจำลอง LR ตาม Cluster ของพืชแต่ละชนิด โดยแบ่งข้อมูลเป็น train และ test โดย train ข้อมูล 3 ปีและใช้ข้อมูลอีก 2 ปีในการ test เพื่อทดสอบแบบจำลอง

ผลลัพธ์ค่า coef และ intercept ที่ได้จากแบบจำนลองแต่ละกลุ่ม cluster จะถูกเก็บไว้ใน dictionary: final_dict_cluster เพื่อใช้ทดสอบกับข้อมูลในอีก 2ปีที่เหลือ ต่อไป

การทดสอบแบบจำลองในที่นี้ จะใช้ MAPE และ RMSE เป็น Metrics โดยใช้ข้อมูลข้าว มาเป็นตัวอย่างในการวัดผลตามผลด้านล่าง

สร้างแบบจำลอง LR ตามพืชแต่ละชนิดตามจังหวัด โดยแบ่งข้อมูลเป็น train และ test โดยจะ train ข้อมูล 3 ปีและใช้ข้อมูลอีก 2 ปีในการ test เพื่อทดสอบแบบจำลอง เหมือนที่ได้ทำกับ LR ตาม Cluster ของพืชแต่ละชนิดก่อนหน้า สิ่งที่ต่างไปจากแบบจำลองก่อนหน้า คือการ loop ข้อมูลเข้าเพื่อสร้างแบบจำลอง จะใช้การ loop ตาม [‘PROVINCE_CROP’] ซึ่งแบ่งข้อมูลออกตามแต่ละชนิดพืชของแต่ละจังหวัด

ผลของ ค่า MAPE และ RMSE ในส่วนของข้าว แบบจำลอง LR ตามพืชแต่ละชนิดตามจังหวัด มีค่าต่ำกว่า LR ตาม Cluster ของพืชแต่ละชนิด สรุปได้ว่า LR ตามพืชแต่ละชนิดตามจังหวัด มีความแม่นยำในการทำนายที่ดีกว่า อย่างไรก็ตาม ตามตารางสรุปด้านล่างจะเห็นว่า แบบจำลอง LR ตาม Cluster ของพืชแต่ละชนิด มีจำนวน 4 models ในส่วนของแบบจำลองของ LR ตามพืชแต่ละชนิดตามจังหวัด มีจำนวน 76 models ถ้าหากเราต้องการทำนายผลผลิตของพืชชนิดอื่นๆเพิ่มขึ้น ก็จะทำให้มี model เพิ่มขึ้นไปอีกจำนวนมาก

การสร้างการระบุข้อมูลเพื่อการทำนาย

จากการประเมินก่อนหน้า ใช้ LR ตามพืชแต่ละชนิดตามจังหวัดมา train อีกครั้งโดยใช้ข้อมูล 5 ปี เพื่อใช้ในการทำนายผลผลิต โดยให้ผู้ใช้งานทำการระบุ จังหวัด และ ปี ที่ต้องการทำนาย ซึ่งจะสามารถทำนายผลผลิตในปี 2021 และ 2022 ได้ ตามค่าปริมาณฝน/อุณหภูมิที่ได้ทำนายไว้ก่อนหน้า เมื่อระบุค่าจังหวัดและปี โปรแกรมจะทำการหาค่าปริมาณฝน/อุณหภูมิตามจังหวัดและปีที่ระบุ และทำนายผลผลิตโดยนำ coef*ปริมาณน้ำฝน/อุณหภูมิในแต่เดือน แล้วไปบวกกับ intersect จากนั้นนำผลผลิตที่ทำนายได้ไปหากำไรต่อไร่

สรุป

จากแบบจำลองที่ได้ออกแบบไว้ สามารถช่วยให้เกษตรกรทำนายผลผลิตได้ รู้ถึงกำไรต่อไร่ที่จะได้ในการปลูกพืชเศรษฐกิจแต่ละชนิดในอนาคต ทำให้เกษตรกรสามารถวางแผนในการเพาะปลูกได้ว่า การปลูกพืชชนิดใดคุ้มค่าในการลงทุน อย่างไรก็ตาม ปัจจัยที่ส่งผลต่อผลผลิตการเกษตรนั้น ไม่ได้มีเพียงปริมาณน้ำฝนและอุณภูมิ แต่ยังมีปัจจัยอื่นๆประกอบอีกมากมาย เช่น ค่าดิน แสงสว่าง พันธุ์พืช วิธีการปลูก เป็นต้น ในอนาคต เราสามารถต่อยอดขยายแบบจำลองที่มีอยู่ ไปทำนายหาว่า กำไรที่ได้จะเพียงพอต่อการดำรงชีพของเกษตรกรหรือไม่ และมีปัจจัยอะไรบ้างที่จะเพิ่มกำไร เพื่อให้เกษตรกรคุ้มค่าในการลงทุนเพาะปลูก ขายได้ราคาดี และทำให้เกษตรกรมีคุณภาพชีวิตที่ดีขึ้นต่อไปในอนาคต

--

--