ພະຍາກອນຈຳນວນນັກທ່ອງທ່ຽວໃນຫຼວງພະບາງ ດ້ວຍ Machine Learning
ການພະຍາກອນຈຳນວນນັກທ່ອງທ່ຽວໃນຫຼວງພະບາງ ດ້ວຍ Machine Learning
ຫຼວງພະບາງ, ເມືອງມໍລະດົກໂລກທີ່ເຕັມໄປດ້ວຍສະເໜ່ທາງດ້ານວັດທະນະທຳ ແລະ ສາສະໜາ, ເປັນໜຶ່ງໃນຈຸດໝາຍປາຍທາງຫຼັກທີ່ສ້າງລາຍຮັບໃຫ້ແກ່ປະເທດລາວ. ຢ່າງໃດກໍຕາມ, ຫຼັງຈາກການລະບາດຂອງພະຍາດໂຄວິດ-19 (COVID-19), ຮູບແບບການເດີນທາງຂອງນັກທ່ອງທ່ຽວໄດ້ປ່ຽນແປງໄປຢ່າງຫຼວງຫຼາຍ. ການຮູ້ລ່ວງໜ້າວ່ານັກທ່ອງທ່ຽວຈະເຂົ້າມາຫຼາຍໜ້ອຍປານໃດໃນແຕ່ລະເດືອນ ແມ່ນມີຄວາມສຳຄັນຫຼາຍສຳລັບທຸລະກິດທ້ອງຖິ່ນ ບໍ່ວ່າຈະເປັນການກຽມພະນັກງານຂອງໂຮງແຮມ, ສັ່ງວັດຖຸດິບຂອງຮ້ານອາຫານແຄມນ້ຳຂອງ, ຫຼື ການວາງແຜນການແລ່ນລົດຕຸກໆ.
ໃນບົດຄວາມນີ້, ເຮົາຈະມາລົງເລິກວິທີການນຳໃຊ້ເຕັກນິກ Time-Series Forecasting (ການພະຍາກອນຂໍ້ມູນອະນຸກົມເວລາ) ເຊິ່ງເປັນແໜງໜຶ່ງຂອງ Machine Learning ເພື່ອສ້າງໂມເດວທຳນາຍຈຳນວນນັກທ່ອງທ່ຽວໃນຍຸກຫຼັງໂລກລະບາດ (Post-Pandemic) ໂດຍໃຊ້ພາສາ Python.
Time-Series Forecasting ແມ່ນຫຍັງ?
Time-Series Forecasting ແມ່ນການນຳໃຊ້ຂໍ້ມູນໃນອະດີດທີ່ຖືກເກັບກຳຕາມລຳດັບເວລາ (ເຊັ່ນ: ລາຍວັນ, ລາຍເດືອນ, ລາຍປີ) ມາສ້າງເປັນໂມເດວທາງຄະນິດສາດ ເພື່ອຄາດເດົາແນວໂນ້ມ (Trend) ແລະ ລະດູການ (Seasonality) ໃນອະນາຄົດ.
ສຳລັບຂໍ້ມູນການທ່ອງທ່ຽວໃນຫຼວງພະບາງ, ເຮົາມັກຈະເຫັນ Seasonality ທີ່ຊັດເຈນ ເຊັ່ນ: ນັກທ່ອງທ່ຽວຈະເພີ່ມຂຶ້ນສູງໃນຊ່ວງລະດູໜາວ (High Season) ແລະ ຊ່ວງບຸນປີໃໝ່ລາວໃນເດືອນເມສາ.
ເຄື່ອງມືທີ່ໃຊ້: Facebook Prophet
ໃນບົດຄວາມລະດັບກາງ (Intermediate) ນີ້, ເຮົາຈະເລືອກໃຊ້ Prophet ເຊິ່ງເປັນ Library ທີ່ພັດທະນາໂດຍ Meta (Facebook). ເຫດຜົນທີ່ Prophet ເໝາະສົມກັບວຽກນີ້ເພາະມັນຈັດການກັບຂໍ້ມູນທີ່ມີລະດູການ (Seasonality) ໄດ້ດີ, ສາມາດເພີ່ມຂໍ້ມູນວັນພັກ (Holidays) ໄດ້ງ່າຍ, ແລະ ຍັງທົນທານຕໍ່ກັບແນວໂນ້ມທີ່ປ່ຽນແປງກະທັນຫັນ ຫຼື ຂໍ້ມູນທີ່ຂາດຫາຍໄປ (Missing Data) ໄດ້ດີນຳອີກ.
ຂັ້ນຕອນການຂຽນໂຄ້ດ (Coding Implementation)
ກ່ອນອື່ນໝົດ, ໃຫ້ເລີ່ມການຕິດຕັ້ງ Library ທີ່ຈໍາເປັນ:
pip install pandas prophet matplotlib
ຈາກນັ້ນ, ເຮົາມາເລີ່ມຂຽນໂຄ້ດເພື່ອສ້າງໂມເດວ:
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
# 1. ໂຫຼດຂໍ້ມູນ (ສົມມຸດວ່າເປັນຂໍ້ມູນສະຖິຕິນັກທ່ອງທ່ຽວເຂົ້າຫຼວງພະບາງລາຍເດືອນ)
# file 'luang_prabang_visitors.csv' ຄວນມີຄໍລຳວັນທີ ແລະ ຈຳນວນຄົນ
df = pd.read_csv('luang_prabang_visitors.csv')
# 2. ປ່ຽນຊື່ຄໍລຳໃຫ້ກົງກັບຂໍ້ກຳນົດຂອງ Prophet (ds = ເວລາ, y = ເປົ້າໝາຍ)
df.rename(columns={'Date': 'ds', 'Visitors': 'y'}, inplace=True)
df['ds'] = pd.to_datetime(df['ds'])
# 3. ການຈັດການກັບຂໍ້ມູນຊ່ວງ COVID-19 (Anomalies)
# ເນື່ອງຈາກຊ່ວງປີ 2020 - 2022 ມີການປິດປະເທດ, ຂໍ້ມູນຈະຫຼຸດລົງຜິດປົກກະຕິ
# ເຮົາສາມາດກຳນົດຄ່າຊ່ວງນັ້ນໃຫ້ເປັນ None ເພື່ອໃຫ້ Prophet ບໍ່ນຳມາເປັນ Trend ຫຼັກ
df.loc[(df['ds'] >= '2020-03-01') & (df['ds'] <= '2022-05-01'), 'y'] = None
# 4. ສ້າງໂມເດວ Prophet
# ໃຊ້ multiplicative ເພາະຈຳນວນນັກທ່ອງທ່ຽວມັກຈະແປຜັນຕາມອັດຕາສ່ວນຂອງ Trend ຫຼັກ
model = Prophet(seasonality_mode='multiplicative')
# ເພີ່ມວັນພັກສຳຄັນຂອງປະເທດລາວ ເພື່ອໃຫ້ໂມເດວຮູ້ວ່າຊ່ວງໃດຄົນຈະຫຼາຍ (ເຊັ່ນ ບຸນປີໃໝ່ລາວ, ບຸນຊ່ວງເຮືອ)
model.add_country_holidays(country_name='LA')
# ຝຶກສອນໂມເດວ (Model Training)
model.fit(df)
# 5. ກຽມຂໍ້ມູນສຳລັບການພະຍາກອນໃນອະນາຄົດ 24 ເດືອນ (2 ປີຂ້າງໜ້າ)
future_dates = model.make_future_dataframe(periods=24, freq='MS')
# 6. ທຳການພະຍາກອນ (Forecasting)
forecast = model.predict(future_dates)
# 7. ສະແດງຜົນການພະຍາກອນ (Visualization)
fig = model.plot(forecast)
plt.title("ການພະຍາກອນຈຳນວນນັກທ່ອງທ່ຽວໃນຫຼວງພະບາງ (Post-Pandemic Out-Look)")
plt.xlabel("ປີ (Year)")
plt.ylabel("ຈຳນວນນັກທ່ອງທ່ຽວ (Visitors)")
plt.show()
# ເບິ່ງອົງປະກອບຍ່ອຍ (Trend ຂາຂຶ້ນ/ຂາລົງ, ແລະ ລະດູການໃນແຕ່ລະເດືອນ)
fig_components = model.plot_components(forecast)
plt.show()
ການຈັດການກັບຜົນກະທົບຈາກລະບາດໂຄວິດ-19 (Covid-19 Anomaly)
ດັ່ງທີ່ສະແດງໃນຂັ້ນຕອນທີ 3 ຂອງໂຄ້ດ, ໜຶ່ງໃນເຕັກນິກສຳຄັນສຳລັບການເຮັດ Forecasting ໃນຍຸກນີ້ແມ່ນການຈັດການກັບ “Structural Breaks” ຫຼື ຊ່ວງເວລາທີ່ຂໍ້ມູນຜິດປົກກະຕິຢ່າງຮ້າຍແຮງ. ຖ້າເຮົາປ່ອຍໃຫ້ໂມເດວຮຽນຮູ້ຈຳນວນນັກທ່ອງທ່ຽວທີ່ເປັນ “ສູນ” ຫຼື ໜ້ອຍຫຼາຍໃນຊ່ວງປີ 2020-2022 ມັນຈະເຮັດໃຫ້ເສັ້ນຄາດຄະເນ (Trend line) ຖືກດຶງລົງມາຕໍ່າກວ່າຄວາມເປັນຈິງເມື່ອປະເທດເປີດແລ້ວ. ການກຳນົດໃຫ້ຂໍ້ມູນຊ່ວງນັ້ນເປັນ None (Missing value) ຊ່ວຍໃຫ້ Prophet ເຊື່ອມຕໍ່ຂໍ້ມູນກ່ອນການລະບາດ ກັບ ຂໍ້ມູນຫຼັງການເປີດປະເທດ (ເຊັ່ນ: ການເປີດໃຊ້ລົດໄຟລາວ-ຈີນ) ໄດ້ຢ່າງລ່ຽນໄຫຼກວ່າ.
ການວິເຄາະຜົນໄດ້ຮັບ ແລະ ການນຳໃຊ້ຕົວຈິງ (Business Impact)
ເມື່ອໂມເດວພະຍາກອນອອກມາແລ້ວ, ສິ່ງທີ່ເຮົາຈະໄດ້ຄື yhat (ຄ່າພະຍາກອນກາງ), yhat_lower (ຄ່າຕໍ່າສຸດທີ່ເປັນໄປໄດ້) ແລະ yhat_upper (ຄ່າສູງສຸດທີ່ເປັນໄປໄດ້).
ຜູ້ປະກອບການທ້ອງຖິ່ນ (SMEs) ໃນຫຼວງພະບາງສາມາດນຳໃຊ້ຂໍ້ມູນນີ້ເພື່ອ:
- ໂຮງແຮມ / ເຮືອນພັກ: ຄາດຄະເນຈໍານວນພະນັກງານເຮັດຄວາມສະອາດ (Housekeeping) ທີ່ຕ້ອງການຈ້າງເປັນລາຍວັນໃນຊ່ວງເດືອນທີ່ກຣາຟຕີສູງຂຶ້ນ.
- ຮ້ານອາຫານ: ຄາດຄະເນງົບປະມານໃນການສັ່ງຊື້ວັດຖຸດິບລ່ວງໜ້າ ເພື່ອບໍ່ໃຫ້ຂອງຂາດ ຫຼື ຂອງເສຍຫາຍ.
- ຂົງເຂດຂົນສົ່ງ: ຊ່ວຍໃຫ້ສະມາຄົມລົດໂດຍສານ ຫຼື ລົດຕຸກໆ ຈັດສັນຄິວລົດໃນຈຸດສຳຄັນ ເຊັ່ນ: ຕະຫຼາດມືດ ຫຼື ສະຖານີລົດໄຟ ໃຫ້ພຽງພໍກັບປະລິມານນັກທ່ອງທ່ຽວ.
ສິ່ງສຳຄັນທີ່ຄວນຈື່ (Key Takeaways)
- Machine Learning ຊ່ວຍເຕືອນອະນາຄົດ: Time-Series Forecasting ຊ່ວຍປ່ຽນຂໍ້ມູນໃນອະດີດໃຫ້ເປັນແຜນທີ່ນຳທາງສຳລັບອະນາຄົດ.
- ບໍລິຫານ Seasonality ເປັນຫຼັກ: ການທ່ອງທ່ຽວໃນປະເທດລາວຂຶ້ນກັບລະດູການ ແລະ ບຸນປະເພນີ (ເຊັ່ນ: ປີໃໝ່ລາວ). ການໃຊ້ໂມເດວທີ່ມີ Seasonality mode ຢ່າງ Prophet ແມ່ນຕອບໂຈດຫຼາຍ.
- ປັບແຕ່ງເພື່ອສະຖານະການພິເສດ: ຕ້ອງຮູ້ນຳໃຊ້ວິທີການຈັດການ Anomaly ເຊັ່ນ ວິກິດໂຄວິດ-19 ເພື່ອບໍ່ໃຫ້ໂມເດວໃຫ້ຄ່າທີ່ຜິດພ້ຽນໄປ.
ສະຫຼຸບ
ການພະຍາກອນຈຳນວນນັກທ່ອງທ່ຽວບໍ່ແມ່ນເລື່ອງໄກຕົວ ຫຼື ສະຫງວນໄວ້ແຕ່ສຳລັບບໍລິສັດຂະໜາດໃຫຍ່ອີກຕໍ່ໄປ. ດ້ວຍເຕັກໂນໂລຊີທາງດ້ານ Machine Learning ທີ່ເປີດກວ້າງຂຶ້ນຢ່າງ Python ແລະ Facebook Prophet, ເຮົາສາມາດສ້າງໂມເດວພະຍາກອນທີ່ມີປະສິດທິຜົນ ເພື່ອຮັບມືກັບການຫັນປ່ຽນຂອງໂລກຫຼັງການລະບາດໄດ້. ການນຳໃຊ້ຂໍ້ມູນ (Data-driven) ຈະເປັນກະແຈສຳຄັນ ທີ່ເຮັດໃຫ້ພາກການທ່ອງທ່ຽວຫຼວງພະບາງ ແລະ ສປປ ລາວ ກ້າວໄປຂ້າງໜ້າຢ່າງໝັ້ນຄົງ ແລະ ຍືນຍົງ.