สำรวจข้อมูลด้วย EDA
มาเริ่มต้นด้วยการสำรวจข้อมูลกันก่อน ทุกครั้งที่เริ่มโปรเจกต์ Machine Learning (ML) เราควรทำ Exploratory Data Analysis (EDA) เพื่อทำความเข้าใจข้อมูลให้ดีเสียก่อน ซึ่งได้แก่:
- กราฟข้อมูลดิบ
- ฮิสโตแกรม
- และอื่น ๆ อีกมากมาย
โดยทั่วไปแล้ว ควรเริ่มจากกราฟข้อมูลดิบและฮิสโตแกรม เพื่อให้เข้าใจการกระจายของข้อมูล หากข้อมูลมีการกระจายแบบปกติ (normal distribution) ก็สามารถนำสถิติเชิงพารามิเตอร์มาใช้ได้
มีข้อมูลหุ้น 2 ตัวที่โหลดไว้ใน pandas DataFrame แล้ว ได้แก่ lng_df และ spy_df (LNG และ SPY) ลองดูข้อมูลเบื้องต้นด้วย .head() เราจะใช้ราคาปิดและปริมาณการซื้อขายเป็น input ให้กับอัลกอริทึม ML
หมายเหตุ: ทุกครั้งที่ต้องการสร้างกราฟใหม่ ให้เรียก plt.clf() หรือ f = plt.figure()
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- พิมพ์ข้อมูล 5 แถวแรกของ DataFrame ทั้งสองตัว (
lng_dfและspy_df) แล้วตรวจสอบเนื้อหา - ใช้ไลบรารี pandas วาดกราฟอนุกรมเวลาของข้อมูลดิบสำหรับ
'SPY'และ'LNG'โดยใช้ราคาปิดที่ปรับแล้ว ('Adj_Close') และตั้งค่าlegend=Trueใน.plot() - ใช้
plt.show()เพื่อแสดงกราฟอนุกรมเวลา (นำเข้าmatplotlib.pyplotเป็นpltแล้ว) - ใช้ pandas และ matplotlib สร้างฮิสโตแกรมของการเปลี่ยนแปลงราคาปิดที่ปรับแล้วแบบเปอร์เซ็นต์รายวัน (ใช้
.pct_change()) สำหรับ SPY และ LNG
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
print(lng_df.head()) # examine the DataFrames
print(____) # examine the SPY DataFrame
# Plot the Adj_Close columns for SPY and LNG
spy_df[____].plot(label='SPY', legend=True)
lng_df[____].plot(label=____, ____, secondary_y=True)
____ # show the plot
plt.clf() # clear the plot space
# Histogram of the daily price change percent of Adj_Close for LNG
lng_df['Adj_Close'].____.plot.hist(bins=50)
plt.xlabel('adjusted close 1-day percent change')
plt.show()