22 KiB
ဆက်ဆံရေးများကိုမြင်နိုင်စေခြင်း: ပျားရည်အကြောင်း 🍯
![]() |
---|
ဆက်ဆံရေးများကိုမြင်နိုင်စေခြင်း - Sketchnote by @nitya |
သဘာဝအပေါ်အာရုံစိုက်သော ကျွန်ုပ်တို့၏သုတေသနကို ဆက်လက်လုပ်ဆောင်ရင်း၊ အမျိုးမျိုးသောပျားရည်အမျိုးအစားများအကြား ဆက်ဆံရေးများကို ပြသနိုင်ရန် စိတ်ဝင်စားဖွယ်မြင်ကွင်းများကို ရှာဖွေကြမည်။ ဒီအချက်အလက်များကို အမေရိကန်စိုက်ပျိုးရေးဌာန မှရရှိသော ဒေတာအရ ပြသထားပါသည်။
ဤဒေတာတွင် ၆၀၀ ကျော်သော အချက်အလက်များပါဝင်ပြီး အမေရိကန်ပြည်နယ်များတွင် ပျားရည်ထုတ်လုပ်မှုကို ပြသထားသည်။ ဥပမာအားဖြင့်၊ ၁၉၉၈-၂၀၁၂ ခုနှစ်အတွင်း တစ်နှစ်စီအတွက် တစ်ပြည်နယ်စီ၏ ပျားအုပ်အရေအတွက်၊ တစ်ပျားအုပ်၏ထွက်ရှိမှု၊ စုစုပေါင်းထုတ်လုပ်မှု၊ စတော့များ၊ တစ်ပေါင်စျေးနှုန်းနှင့် ထုတ်လုပ်မှုတန်ဖိုးတို့ကို ကြည့်နိုင်ပါသည်။
တစ်ပြည်နယ်၏ တစ်နှစ်စီထုတ်လုပ်မှုနှင့် ထိုပြည်နယ်ရှိ ပျားရည်စျေးနှုန်းအကြား ဆက်ဆံရေးကို မြင်နိုင်စေခြင်း စိတ်ဝင်စားဖွယ်ဖြစ်ပါသည်။ ဒါမှမဟုတ်၊ တစ်ပြည်နယ်စီ၏ တစ်ပျားအုပ်ထွက်ရှိမှုအကြား ဆက်ဆံရေးကို မြင်နိုင်စေခြင်းဖြစ်နိုင်ပါသည်။ ဤနှစ်အကွာအဝေးသည် ၂၀၀၆ ခုနှစ်တွင် ပထမဆုံးတွေ့ရှိခဲ့သော 'CCD' သို့မဟုတ် 'Colony Collapse Disorder' (http://npic.orst.edu/envir/ccd.html) ကိုလည်း ဖော်ပြထားသော ဒေတာဖြစ်ပြီး လေ့လာရန်အရေးကြီးသော ဒေတာဖြစ်သည်။ 🐝
Pre-lecture quiz
ဤသင်ခန်းစာတွင် သင်မကြာသေးမီက အသုံးပြုခဲ့သော Seaborn ကို အသုံးပြုနိုင်ပြီး အပြောင်းအလဲများအကြား ဆက်ဆံရေးများကို မြင်နိုင်စေသော စာကြည့်တိုက်ကောင်းတစ်ခုဖြစ်သည်။ အထူးသဖြင့် Seaborn ၏ relplot
function ကို အသုံးပြုခြင်းဖြင့် scatter plots နှင့် line plots ကို အလွယ်တကူဖော်ဆောင်နိုင်ပြီး 'statistical relationships' ကို မြင်နိုင်စေသည်။ ဒါဟာ ဒေတာသိပ္ပံပညာရှင်များအတွက် အပြောင်းအလဲများအကြား ဆက်ဆံရေးကို ပိုမိုနားလည်စေသည်။
Scatterplots
ပျားရည်စျေးနှုန်းသည် တစ်နှစ်စီ၊ တစ်ပြည်နယ်စီတွင် ဘယ်လိုပြောင်းလဲလာသည်ကို scatterplot ဖြင့် ပြသပါ။ Seaborn ၏ relplot
ကို အသုံးပြုခြင်းဖြင့် ပြည်နယ်ဒေတာများကို အုပ်စုဖွဲ့ပြီး အမျိုးအစားနှင့် ကိန်းဂဏန်းဒေတာများအတွက် အချက်အလက်များကို ပြသနိုင်သည်။
ပျားရည်ဒေတာကို Seaborn နှင့်အတူ စတင်တင်သွင်းပါ:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
honey = pd.read_csv('../../data/honey.csv')
honey.head()
ပျားရည်ဒေတာတွင် နှစ်နှင့် တစ်ပေါင်စျေးနှုန်းတို့အပါအဝင် စိတ်ဝင်စားဖွယ်ကောင်းသော ကော်လံများရှိသည်ကို သတိပြုမိပါသည်။ အမေရိကန်ပြည်နယ်များအလိုက် အုပ်စုဖွဲ့ထားသော ဒေတာကို လေ့လာကြည့်ပါ:
state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year |
---|---|---|---|---|---|---|---|
AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 |
AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 |
AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 |
CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 |
CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 |
ပျားရည်တစ်ပေါင်စျေးနှုန်းနှင့် ၎င်း၏ အမေရိကန်ပြည်နယ်မူလအကြား ဆက်ဆံရေးကို ပြသရန် အခြေခံ scatterplot တစ်ခု ဖန်တီးပါ။ y
axis ကို ပြည်နယ်အားလုံးကို ပြသနိုင်ရန် ရှည်လျားစေပါ:
sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5);
ယခုနှစ်အလိုက် ပျားရည်စျေးနှုန်းသည် ဘယ်လိုပြောင်းလဲလာသည်ကို ပျားရည်အရောင်စနစ်ဖြင့် ပြသပါ။ ၎င်းကို 'hue' parameter ကို ထည့်သွင်းခြင်းဖြင့် ပြုလုပ်နိုင်ပြီး နှစ်အလိုက် ပြောင်းလဲမှုကို ပြသနိုင်သည်:
✅ Seaborn တွင် အသုံးပြုနိုင်သော အရောင်ပလက်တီများ အကြောင်းပိုမိုလေ့လာပါ - လှပသော rainbow အရောင်စနစ်ကို စမ်းကြည့်ပါ!
sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5);
ဤအရောင်စနစ်ပြောင်းလဲမှုဖြင့် ပျားရည်တစ်ပေါင်စျေးနှုန်းသည် နှစ်အလိုက် အားကောင်းစွာတိုးတက်လာသည်ကို မြင်နိုင်ပါသည်။ အမှန်တကယ်၊ ဒေတာထဲမှ နမူနာတစ်ခုကို စစ်ဆေးပါက (ဥပမာအားဖြင့် Arizona) နှစ်အလိုက် စျေးနှုန်းတိုးတက်မှုပုံစံကို အချို့သောကိစ္စများမှလွဲ၍ မြင်နိုင်ပါသည်:
state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year |
---|---|---|---|---|---|---|---|
AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 |
AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 |
AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 |
AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 |
AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 |
AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 |
AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 |
AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 |
AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 |
AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 |
AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 |
AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 |
AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 |
AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 |
AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 |
အရောင်မမြင်နိုင်သောသူများအတွက် အရောင်အစား dot size ကို အသုံးပြုခြင်းသည် ပိုမိုကောင်းမွန်နိုင်သည်။ dot circumference တိုးတက်မှုဖြင့် စျေးနှုန်းတိုးတက်မှုကို ပြသရန် visualization ကို ပြင်ဆင်ပါ:
sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5);
dot size များသည် တဖြည်းဖြည်းကြီးလာသည်ကို မြင်နိုင်ပါသည်။
ဤသည်မှာ supply နှင့် demand ရိုးရှင်းသောအကြောင်းအရာဖြစ်ပါသလား။ ရာသီဥတုပြောင်းလဲမှုနှင့် colony collapse ကဲ့သို့သောအကြောင်းအရာများကြောင့် နှစ်အလိုက် ဝယ်ယူနိုင်သော ပျားရည်ပမာဏလျော့နည်းလာပြီး စျေးနှုန်းတိုးတက်လာပါသလား။
ဤဒေတာတွင် အချို့သောအပြောင်းအလဲများအကြား ဆက်ဆံရေးကို ရှာဖွေရန် line charts များကို လေ့လာကြည့်ပါ။
Line charts
မေးခွန်း- ပျားရည်တစ်ပေါင်စျေးနှုန်းသည် နှစ်အလိုက် တိုးတက်မှုရှိပါသလား။ single line chart တစ်ခုဖန်တီးခြင်းဖြင့် အလွယ်တကူရှာဖွေနိုင်ပါသည်။
sns.relplot(x="year", y="priceperlb", kind="line", data=honey);
အဖြေ- ဟုတ်ပါသည်၊ ၂၀၀၃ ခုနှစ်အနီးတွင် အချို့သောကွဲလွဲမှုများရှိသည်။
✅ Seaborn သည် တစ်ခုတည်းသောလိုင်းပေါ်တွင် ဒေတာကို စုစည်းထားပြီး "x value တစ်ခုစီတွင် အမျိုးမျိုးသောတိုင်းတာမှုများကို mean နှင့် mean အပေါ် 95% confidence interval ကို ပြသခြင်းဖြင့်" ဖော်ပြသည်။ အရင်းအမြစ်။ ဤအချိန်စားသောအပြုအမူကို ci=None
ထည့်သွင်းခြင်းဖြင့် ပယ်ဖျက်နိုင်သည်။
မေးခွန်း- ၂၀၀၃ ခုနှစ်တွင် ပျားရည်ပမာဏတက်လာမှုကိုလည်း မြင်နိုင်ပါသလား။ နှစ်အလိုက် စုစုပေါင်းထုတ်လုပ်မှုကို ကြည့်ပါ။
sns.relplot(x="year", y="totalprod", kind="line", data=honey);
အဖြေ- အမှန်တကယ်မဟုတ်ပါ။ စုစုပေါင်းထုတ်လုပ်မှုကို ကြည့်ပါက ထိုနှစ်တွင် တိုးတက်လာသလိုပုံရပြီး၊ ယေဘူယျအားဖြင့် ထိုနှစ်များအတွင်း ပျားရည်ထုတ်လုပ်မှုပမာဏသည် လျော့နည်းလာသည်ကို မြင်နိုင်ပါသည်။
မေးခွန်း- ထိုကွာဟမှုကို ၂၀၀၃ ခုနှစ်တွင် ပျားရည်စျေးနှုန်းတက်လာမှုအကြောင်းရင်းဖြစ်စေသောအရာများကို ရှာဖွေပါ။
ဤအကြောင်းကို facet grid ကို အသုံးပြု၍ ရှာဖွေပါ။
Facet grids
Facet grids သည် ဒေတာ၏ တစ်ခုတည်းသော facet ကို (ဤကိစ္စတွင် 'year' ကို ရွေးချယ်ပါ) အသုံးပြု၍ သင့်ရွေးချယ်ထားသော x နှင့် y coordinates အတွက် plot တစ်ခုစီကို ဖန်တီးနိုင်သည်။ ၂၀၀၃ ခုနှစ်သည် ဤမျိုးအမျိုးခြားခြင်းတွင် ထူးထူးခြားခြားပေါ်လွင်ပါသလား။
Seaborn ၏ FacetGrid documentation မှ အကြံပြုထားသော relplot
ကို ဆက်လက်အသုံးပြု၍ facet grid တစ်ခုဖန်တီးပါ။
sns.relplot(
data=honey,
x="yieldpercol", y="numcol",
col="year",
col_wrap=3,
kind="line"
)
ဤ visualization တွင် yield per colony နှင့် number of colonies ကို နှစ်အလိုက်၊ ပြည်နယ်အလိုက် wrap ကို 3 column အဖြစ်ထားပြီး ဘက်ဘက်ကွဲကွဲနှိုင်းယှဉ်နိုင်သည်။
ဤဒေတာအတွက်၊ နှစ်အလိုက်၊ ပြည်နယ်အလိုက် number of colonies နှင့် yield အကြား ထူးထူးခြားခြားသောအရာများမရှိပါ။ ဤ variable နှစ်ခုအကြား correlation ရှာဖွေခြင်းအတွက် အခြားနည်းလမ်းတစ်ခုရှိပါသလား။
Dual-line Plots
Seaborn ၏ 'despine' ကို အသုံးပြု၍ ထိပ်နှင့်ညာဘက် spines ကို ဖယ်ရှားပြီး Matplotlib မှ ax.twinx ကို အသုံးပြု၍ multiline plot တစ်ခုကို စမ်းကြည့်ပါ။ Twinx သည် chart တစ်ခုကို x axis ကိုမျှဝေပြီး y axes နှစ်ခုကို ပြသနိုင်သည်။ yield per colony နှင့် number of colonies ကို superimposed ပြသပါ:
fig, ax = plt.subplots(figsize=(12,6))
lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey,
label = 'Number of bee colonies', legend=False)
sns.despine()
plt.ylabel('# colonies')
plt.title('Honey Production Year over Year');
ax2 = ax.twinx()
lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r",
label ='Yield per colony', legend=False)
sns.despine(right=False)
plt.ylabel('colony yield')
ax.figure.legend();
၂၀၀၃ ခုနှစ်အနီးတွင် ထူးထူးခြားခြားသောအရာများ မမြင်ရသော်လည်း၊ lesson ၏အဆုံးကို ပျော်ရွှင်စွာပြီးမြောက်စေသောအချက်တစ်ခုကို ပြသနိုင်သည်- colonies အရေအတွက်သည် လျော့နည်းနေသော်လည်း၊ ၎င်းတို့၏ yield per colony လျော့နည်းနေသည့်အချိန်တွင် colonies အရေအတွက်သည် တည်ငြိမ်နေသည်။
ပျားများအားပေးပါ။
🐝❤️
🚀 စိန်ခေါ်မှု
ဤသင်ခန်းစာတွင် scatterplots နှင့် line grids ၏ အခြားအသုံးများအကြောင်း၊ facet grids အပါအဝင် သင်လေ့လာခဲ့ပါသည်။ ယခင်သင်ခန်းစာများတွင် အသုံးပြုခဲ့သော ဒေတာတစ်ခုကို အသုံးပြု၍ facet grid တစ်ခုဖန်တီးရန် ကိုယ်တိုင်စိန်ခေါ်ပါ။ ၎င်းတို့ကို ဖန်တီးရန် ကြာမြင့်ချိန်နှင့် grid များအရေအတွက်ကို သတိထားရန်လိုအပ်သည်ကို သတိပြုပါ။
Post-lecture quiz
ပြန်လည်သုံးသပ်ခြင်းနှင့် ကိုယ်တိုင်လေ့လာခြင်း
Line plots များသည် ရိုးရှင်းသည့်အရာဖြစ်နိုင်သလို အလွန်ရှုပ်ထွေးနိုင်ပါသည်။ Seaborn documentation တွင် ဖော်ပြထားသော အမျိုးမျိုးသောနည်းလမ်းများကို ဖတ်ရှုပါ။ သင်ဤသင်ခန်းစာတွင် ဖန်တီးခဲ့သော line charts များကို documentation တွင်ဖော်ပြထားသော အခြားနည်းလမ်းများဖြင့် တိုး
အကြောင်းကြားချက်:
ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု Co-op Translator ကို အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှုအတွက် ကြိုးစားနေသော်လည်း၊ အလိုအလျောက် ဘာသာပြန်ခြင်းတွင် အမှားများ သို့မဟုတ် မတိကျမှုများ ပါဝင်နိုင်သည်ကို သတိပြုပါ။ မူရင်းဘာသာစကားဖြင့် ရေးသားထားသော စာရွက်စာတမ်းကို အာဏာရှိသော ရင်းမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ဘာသာပြန်ပညာရှင်များမှ ပရော်ဖက်ရှင်နယ် ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော အလွဲအလွဲအချော်များ သို့မဟုတ် အနားယူမှုမှားများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။