R တွင် quadratic discriminant analysis (တစ်ဆင့်ပြီးတစ်ဆင့်)
လေးပုံတပုံ ခွဲခြားမှု ခွဲခြမ်းစိတ်ဖြာမှု သည် သင့်တွင် ကြိုတင်ခန့်မှန်းကိန်းရှင်များ အစုံရှိပြီး တုံ့ပြန်မှု ကိန်းရှင်ကို အတန်းနှစ်ခု သို့မဟုတ် ထို့ထက်ပိုသော အတန်းအစား ခွဲခြားလိုသောအခါတွင် သင်သုံးနိုင်သော နည်းလမ်းတစ်ခု ဖြစ်သည်။ linear discriminant analysis ၏ linear equivalent ဟု ယူဆပါသည်။
ဤသင်ခန်းစာသည် R တွင် လေးပုံတစ်ပုံ ခွဲခြားမှုခွဲခြမ်းစိတ်ဖြာနည်းကို အဆင့်ဆင့် ဥပမာပေးထားသည်။
အဆင့် 1- လိုအပ်သော စာကြည့်တိုက်များကို တင်ပါ။
ပထမဦးစွာ၊ ဤဥပမာအတွက် လိုအပ်သော စာကြည့်တိုက်များကို တင်ပေးပါမည်။
library (MASS)
library (ggplot2)
အဆင့် 2: ဒေတာကို တင်ပါ။
ဤဥပမာအတွက်၊ R တွင်တည်ဆောက်ထားသော iris dataset ကိုကျွန်ုပ်တို့အသုံးပြုပါမည်။ အောက်ပါကုဒ်သည် ဤဒေတာအတွဲကိုမည်သို့တင်ရန်နှင့်ပြသရမည်ကိုပြသသည်-
#attach iris dataset to make it easy to work with attach(iris) #view structure of dataset str(iris) 'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... $ Sepal.Width: num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... $Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... $Petal.Width: num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... $ Species: Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 ...
ဒေတာအတွဲတွင် ကိန်းရှင် ၅ ခုနှင့် စုစုပေါင်း စောင့်ကြည့်မှု ၁၅၀ ပါ၀င်ကြောင်း ကျွန်ုပ်တို့ တွေ့နိုင်ပါသည်။
ဤဥပမာအတွက်၊ ပေးထားသောပန်းတစ်ခု၏မျိုးစိတ်များကို အမျိုးအစားခွဲခြားရန် လေးပုံတစ်ပုံခွဲခြားမှုခွဲခြမ်းစိတ်ဖြာမှုပုံစံကို ကျွန်ုပ်တို့တည်ဆောက်ပါမည်။
ကျွန်ုပ်တို့သည် မော်ဒယ်တွင် အောက်ပါ ကြိုတင်ခန့်မှန်းကိန်းရှင်များကို အသုံးပြုပါမည်-
- Sepal.Length
- Sepal.Width
- ပန်းပွင့်။အရှည်
- ပန်းပွင့်။အကျယ်
အောက်ဖော်ပြပါ ဖြစ်နိုင်ချေရှိသော အတန်းသုံးမျိုးအား ပံ့ပိုးပေးသည့် Species response variable ကို ခန့်မှန်းရန် ၎င်းတို့ကို အသုံးပြုပါမည်။
- setosa
- စွယ်စုံရောင်
- ဗာဂျီးနီးယား
အဆင့် 3- လေ့ကျင့်ရေးနှင့် စမ်းသပ်နမူနာများ ဖန်တီးပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် dataset အား မော်ဒယ်ကိုလေ့ကျင့်ရန် လေ့ကျင့်ရေးအစုတစ်ခုအဖြစ် ခွဲပြီး မော်ဒယ်အား စမ်းသပ်ရန်အတွက် စမ်းသပ်မှုတစ်ခုအဖြစ် ခွဲသွားပါမည်။
#make this example reproducible set.seed(1) #Use 70% of dataset as training set and remaining 30% as testing set sample <- sample(c( TRUE , FALSE ), nrow (iris), replace = TRUE , prob =c(0.7,0.3)) train <- iris[sample, ] test <- iris[!sample, ]
အဆင့် 4: QDA မော်ဒယ်ကို ချိန်ညှိပါ။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် QDA မော်ဒယ်ကို ကျွန်ုပ်တို့၏ဒေတာနှင့် လိုက်လျောညီထွေဖြစ်အောင် MASS အထုပ်မှ qda() လုပ်ဆောင်ချက်ကို အသုံးပြုပါမည်။
#fit QDA model model <- qda(Species~., data=train) #view model output model Call: qda(Species ~ ., data = train) Prior probabilities of groups: setosa versicolor virginica 0.3207547 0.3207547 0.3584906 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 4.982353 3.411765 1.482353 0.2411765 versicolor 5.994118 2.794118 4.358824 1.3676471 virginica 6.636842 2.973684 5.592105 2.0552632
မော်ဒယ်ရလဒ်များကို အဓိပ္ပာယ်ဖွင့်ဆိုပုံမှာ အောက်ပါအတိုင်းဖြစ်သည်။
ကြိုတင်ဖြစ်နိုင်ချေများကို အုပ်စုဖွဲ့ပါ- ၎င်းတို့သည် လေ့ကျင့်ရေးအစုံရှိ မျိုးစိတ်တစ်ခုစီ၏ အချိုးအစားများကို ကိုယ်စားပြုသည်။ ဥပမာအားဖြင့်၊ လေ့ကျင့်မှုအစုံတွင် လေ့လာတွေ့ရှိချက်အားလုံး၏ ၃၅.၈%သည် virginica မျိုးစိတ်အတွက်ဖြစ်သည်။
အုပ်စုပျှမ်းမျှများ- ဤအရာများသည် မျိုးစိတ်တစ်ခုစီအတွက် ခန့်မှန်းပေးသူ variable တစ်ခုစီ၏ ပျမ်းမျှတန်ဖိုးများကို ဖော်ပြသည်။
အဆင့် 5- ခန့်မှန်းချက်များကို ပြုလုပ်ရန် မော်ဒယ်ကို အသုံးပြုပါ။
ကျွန်ုပ်တို့၏လေ့ကျင့်ရေးဒေတာကို အသုံးပြု၍ မော်ဒယ်ကို တပ်ဆင်ပြီးသည်နှင့်၊ ကျွန်ုပ်တို့၏ စမ်းသပ်ဒေတာကို ခန့်မှန်းရန် ၎င်းကို အသုံးပြုနိုင်ပါသည်။
#use QDA model to make predictions on test data predicted <- predict (model, test) names(predicted) [1] "class" "posterior" "x"
၎င်းသည် ကိန်းရှင်နှစ်ခုပါသော စာရင်းကို ပြန်ပေးသည်-
- အတန်း- ခန့်မှန်းထားသော အတန်း
- posterior- လေ့လာမှုတစ်ခုစီသည် အတန်းတစ်ခုစီနှင့်သက်ဆိုင်သည့် နောက်ဆက်တွဲဖြစ်နိုင်ခြေ
ကျွန်ုပ်တို့၏ စမ်းသပ်ဒေတာအတွဲတွင် ပထမခြောက်ချက်လေ့လာချက်အတွက် ဤရလဒ်တစ်ခုစီကို ကျွန်ုပ်တို့ လျင်မြန်စွာမြင်ယောင်နိုင်သည်-
#view predicted class for first six observations in test set head(predicted$class) [1] setosa setosa setosa setosa setosa setosa Levels: setosa versicolor virginica #view posterior probabilities for first six observations in test set head(predicted$posterior) setosa versicolor virginica 4 1 7.224770e-20 1.642236e-29 6 1 6.209196e-26 8.550911e-38 7 1 1.248337e-21 8.132700e-32 15 1 2.319705e-35 5.094803e-50 17 1 1.396840e-29 9.586504e-43 18 1 7.581165e-25 8.611321e-37
အဆင့် 6- မော်ဒယ်ကို အကဲဖြတ်ပါ။
QDA မော်ဒယ်သည် မျိုးစိတ်များကို မှန်ကန်စွာ ခန့်မှန်းပေးသည့် လေ့လာတွေ့ရှိမှု ရာခိုင်နှုန်းများအတွက် အောက်ပါကုဒ်ကို သုံးနိုင်သည်-
#find accuracy of model
mean(predicted$class==test$Species)
[1] 1
ကျွန်ုပ်တို့၏စမ်းသပ်ဒေတာအတွဲရှိ စူးစမ်းလေ့လာမှုများ၏ 100% အတွက် မော်ဒယ်သည် မျိုးစိတ်များကို မှန်ကန်စွာ ခန့်မှန်းပေးကြောင်း ထွက်ပေါ်လာပါသည်။
လက်တွေ့ကမ္ဘာတွင်၊ QDA မော်ဒယ်သည် အတန်းတစ်ခုစီ၏ ရလဒ်များကို မှန်ကန်စွာ ခန့်မှန်းလေ့မရှိသော်လည်း ဤမျက်ဝန်းဒေတာအတွဲကို စက်သင်ယူမှု အယ်လဂိုရီသမ်များ အလွန်ကောင်းမွန်စွာ လုပ်ဆောင်နိုင်သော နည်းလမ်းဖြင့် ရိုးရိုးရှင်းရှင်း တည်ဆောက်ထားသည်။
ဤသင်ခန်းစာတွင်အသုံးပြုထားသော R ကုဒ်အပြည့်အစုံကို ဤနေရာတွင် သင်တွေ့နိုင်ပါသည်။