Python တွင် တစ်ခုတည်း-အထွက် cross-validation (ဥပမာများနှင့်အတူ)
ဒေတာအတွဲတစ်ခုပေါ်ရှိ မော်ဒယ်တစ်ခု၏စွမ်းဆောင်ရည်ကို အကဲဖြတ်ရန်၊ ကျွန်ုပ်တို့သည် မော်ဒယ်မှပြုလုပ်သော ခန့်မှန်းချက်များသည် စောင့်ကြည့်လေ့လာထားသောဒေတာနှင့် မည်မျှကိုက်ညီကြောင်း တိုင်းတာရန် လိုအပ်ပါသည်။
ဤကဲ့သို့လုပ်ဆောင်ရန်အတွက် အသုံးများသောနည်းလမ်းကို Leave-One-Out Cross-Validation (LOOCV) ဟုခေါ်သည်၊ အောက်ပါနည်းလမ်းကိုအသုံးပြုသည်-
1. လေ့ကျင့်ရေးအစု၏ တစ်စိတ်တစ်ပိုင်းအဖြစ် မှတ်သားမှုအားလုံးကို အသုံးပြု၍ ဒေတာအစုံကို လေ့ကျင့်ရေးအစုံနှင့် စမ်းသပ်မှုတစ်ခုအဖြစ် ခွဲလိုက်ပါ။
2. လေ့ကျင့်မှုအစုံမှဒေတာကိုသာအသုံးပြု၍ မော်ဒယ်တစ်ခုဖန်တီးပါ။
3. မော်ဒယ်မှဖယ်ထုတ်ထားသော စောင့်ကြည့်မှုတန်ဖိုးကို ခန့်မှန်းရန်နှင့် ပျမ်းမျှစတုရန်းအမှား (MSE) ကို တွက်ချက်ရန် မော်ဒယ်ကို အသုံးပြုပါ။
4. ဤလုပ်ငန်းစဉ် n အကြိမ်များကို ပြန်လုပ်ပါ။ စာမေးပွဲ MSE ကို စမ်းသပ်မှု MSE အားလုံး၏ ပျမ်းမျှအဖြစ် တွက်ချက်ပါ။
ဤသင်ခန်းစာသည် Python တွင်ပေးထားသောမော်ဒယ်အတွက် LOOCV ကိုအသုံးပြုပုံအဆင့်ဆင့်ကို ဥပမာပေးထားသည်။
အဆင့် 1- လိုအပ်သောစာကြည့်တိုက်များကို တင်ပါ။
ဦးစွာ၊ ဤဥပမာအတွက် လိုအပ်သော လုပ်ဆောင်ချက်များနှင့် ဒစ်ဂျစ်တိုက်များကို တင်ပေးပါမည်။
from sklearn. model_selection import train_test_split
from sklearn. model_selection import LeaveOneOut
from sklearn. model_selection import cross_val_score
from sklearn. linear_model import LinearRegression
from numpy import means
from numpy import absolute
from numpy import sqrt
import pandas as pd
အဆင့် 2: ဒေတာကိုဖန်တီးပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် ကြိုတင်ခန့်မှန်းနိုင်သော ကိန်းရှင်နှစ်ခုဖြစ်သည့် x1 နှင့် x2 နှင့် တုံ့ပြန်မှုမတူညီသည့် y တစ်ခုပါရှိသော pandas DataFrame တစ်ခုကို ဖန်တီးပါမည်။
df = pd.DataFrame({' y ': [6, 8, 12, 14, 14, 15, 17, 22, 24, 23],
' x1 ': [2, 5, 4, 3, 4, 6, 7, 5, 8, 9],
' x2 ': [14, 12, 12, 13, 7, 8, 7, 4, 6, 5]})
အဆင့် 3- Leave-One-Out Cross-Validation လုပ်ဆောင်ပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် dataset တွင် multi linear regression model ကို ဖြည့်ပြီး model ၏ စွမ်းဆောင်ရည်ကို အကဲဖြတ်ရန် LOOCV ကို လုပ်ဆောင်ပါမည်။
#define predictor and response variables
X = df[[' x1 ', ' x2 ']]
y = df[' y ']
#define cross-validation method to use
cv = LeaveOneOut()
#build multiple linear regression model
model = LinearRegression()
#use LOOCV to evaluate model
scores = cross_val_score(model, X, y, scoring=' neg_mean_absolute_error ',
cv=cv, n_jobs=-1)
#view mean absolute error
mean(absolute(scores))
3.1461548083469726
ရလဒ်မှ၊ ပျမ်းမျှ absolute error (MAE) သည် 3.146 ဖြစ်သည်ကို ကျွန်ုပ်တို့တွေ့မြင်နိုင်ပါသည်။ ဆိုလိုသည်မှာ၊ မော်ဒယ်ခန့်မှန်းချက်နှင့် အမှန်တကယ် စောင့်ကြည့်လေ့လာထားသည့် ဒေတာကြားရှိ ပျမ်းမျှအကြွင်းမဲ့ အမှားသည် 3.146 ဖြစ်သည်။
ယေဘူယျအားဖြင့် MAE နိမ့်လေ၊ မော်ဒယ်သည် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များကို ခန့်မှန်းနိုင်လေဖြစ်သည်။
မော်ဒယ်စွမ်းဆောင်ရည်ကို အကဲဖြတ်ရန် နောက်ထပ်အသုံးများသည့် မက်ထရစ်မှာ root mean square error (RMSE) ဖြစ်သည်။ အောက်ပါကုဒ်သည် LOOCV ကို အသုံးပြု၍ ဤမက်ထရစ်ကို တွက်ချက်နည်းကို ပြသည်-
#define predictor and response variables
X = df[[' x1 ', ' x2 ']]
y = df[' y ']
#define cross-validation method to use
cv = LeaveOneOut()
#build multiple linear regression model
model = LinearRegression()
#use LOOCV to evaluate model
scores = cross_val_score(model, X, y, scoring=' neg_mean_squared_error ',
cv=cv, n_jobs=-1)
#view RMSE
sqrt(mean(absolute(scores)))
3.619456476385567
ရလဒ်မှ၊ root mean square error (RMSE) သည် 3.619 ဖြစ်သည်ကို ကျွန်ုပ်တို့တွေ့မြင်နိုင်ပါသည်။ RMSE နိမ့်လေ၊ မော်ဒယ်သည် အမှန်တကယ် လေ့လာတွေ့ရှိချက်များကို ခန့်မှန်းနိုင်လေဖြစ်သည်။
လက်တွေ့တွင်၊ ကျွန်ုပ်တို့သည် ပုံမှန်အားဖြင့် မတူညီသော မော်ဒယ်များစွာကို အံဝင်ခွင်ကျဖြစ်စေပြီး မော်ဒယ်တစ်ခုစီ၏ RMSE သို့မဟုတ် MAE တို့ကို နှိုင်းယှဉ်ကာ မည်သည့်မော်ဒယ်သည် အနိမ့်ဆုံးစမ်းသပ်မှု အမှားအယွင်းနှုန်းများကို ထုတ်လုပ်ပေးသည်ကို ဆုံးဖြတ်ရန်နှင့် ထို့ကြောင့် အသုံးပြုရန် အကောင်းဆုံးမော်ဒယ်ဖြစ်သည်။
ထပ်လောင်းအရင်းအမြစ်များ
Leave-One-Out Cross-Validation (LOOCV) အမြန်နိဒါန်း
Python ရှိ Linear Regression အတွက် ပြီးပြည့်စုံသော လမ်းညွှန်