R တွင် logistic regression model ဖြင့် predict() ကိုအသုံးပြုနည်း
R တွင် logistic regression model ကို တပ်ဆင်ပြီးသည်နှင့်၊ ယခင်က မမြင်ဖူးသော ရှုမြင်မှုအသစ်၏ တုံ့ပြန်မှုတန်ဖိုးကို ခန့်မှန်းရန် ခန့်မှန်းချက်() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်ပါသည်။
ဤလုပ်ဆောင်ချက်သည် အောက်ပါ syntax ကိုအသုံးပြုသည်-
ခန့်မှန်းချက်(အရာဝတ္ထု၊ ဒေတာအသစ်၊ အမျိုးအစား = “ တုံ့ပြန်မှု” )
ရွှေ-
- အရာဝတ္ထု- ထောက်ပံ့ပို့ဆောင်ရေး ဆုတ်ယုတ်မှုပုံစံ၏ အမည်
- newdata- ခန့် မှန်းချက်ပြုလုပ်ရန် ဒေတာဘောင်အသစ်၏ အမည်
- အမျိုးအစား- ခန့်မှန်းချက် အမျိုးအစား
အောက်ဖော်ပြပါ ဥပမာသည် ဤလုပ်ဆောင်ချက်ကို လက်တွေ့အသုံးချနည်းကို ပြသထားသည်။
ဥပမာ- R in Logistic Regression Model ဖြင့် Predict() ကိုအသုံးပြုခြင်း။
ဤဥပမာအတွက်၊ ကျွန်ုပ်တို့သည် mtcars ဟုခေါ်သော built-in R ဒေတာအတွဲကို အသုံးပြုပါမည်။
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
ကျွန်ုပ်တို့သည် တုံ့ပြန်မှုပြောင်းလဲနိုင်သော am (ကား၏ဂီယာအမျိုးအစား- 0 = အလိုအလျောက်၊ 1 = manual) ကို ခန့်မှန်းရန် ကျွန်ုပ်တို့အသုံးပြုသည့် variables disp နှင့် hp ကို အသုံးပြုသည့် အောက်ဖော်ပြပါ ထောက်ပံ့ပို့ဆောင်ရေးဆုတ်ယုတ်မှုပုံစံနှင့် ကိုက်ညီပါမည်။
#fit logistic regression model model <- glm(am ~ disp + hp, data=mtcars, family=binomial) #view model summary summary(model) Call: glm(formula = am ~ disp + hp, family = binomial, data = mtcars) Deviance Residuals: Min 1Q Median 3Q Max -1.9665 -0.3090 -0.0017 0.3934 1.3682 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 1.40342 1.36757 1.026 0.3048 available -0.09518 0.04800 -1.983 0.0474 * hp 0.12170 0.06777 1.796 0.0725 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 43,230 on 31 degrees of freedom Residual deviance: 16,713 on 29 degrees of freedom AIC: 22,713 Number of Fisher Scoring iterations: 8
ထို့နောက် မော်ဒယ်တွင် တစ်ခါမှ မမြင်ဖူးသော ကားရှစ်စီးအကြောင်း အချက်အလက်ပါရှိသော အချက်အလက်ဘောင်အသစ်တစ်ခုကို ဖန်တီးနိုင်ပြီး ကားအသစ်တွင် အော်တိုဂီယာ (am=0) သို့မဟုတ် manual ဂီယာရှိနိုင်ခြေကို ခန့်မှန်းရန် predict() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်သည်။ နံနက် =၁)။
#define new data frame
newdata = data. frame (disp=c(200, 180, 160, 140, 120, 120, 100, 160),
hp=c(100, 90, 108, 90, 80, 90, 80, 90),
am=c(0, 0, 0, 1, 0, 1, 1, 1))
#view data frame
newdata
#use model to predict value of am for all new cars
newdata$am_prob <- predict(model, newdata, type=" response ")
#view updated data frame
newdata
disp hp am am_prob
1 200 100 0 0.004225640
2 180 90 0 0.008361069
3 160 108 0 0.335916069
4 140 90 1 0.275162866
5 120 80 0 0.429961894
6 120 90 1 0.718090728
7 100 80 1 0.835013994
8 160 90 1 0.053546152
ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-
- ကား 1 တွင် manual ဂီယာပါရှိသော ဖြစ်နိုင်ခြေမှာ 0.004 ဖြစ်သည်။
- ကား 2 တွင် manual ဂီယာပါရှိသော ဖြစ်နိုင်ခြေမှာ 0.008 ဖြစ်သည်။
- ကား 3 တွင် manual ဂီယာပါရှိသော ဖြစ်နိုင်ခြေမှာ 0.336 ဖြစ်သည်။
နောက် … ပြီးတော့။
နမူနာအားဖြင့် ခန့်မှန်းထားသော တန်ဖိုးများနှင့် အမှန်တကယ် am တန်ဖိုးများကို ပြသသည့် ရှုပ်ထွေးသော matrix ကို ဖန်တီးရန် table() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်သည်။
#create vector that contains 0 or 1 depending on predicted value of am
am_pred = rep(0, dim(newdata)[1])
am_pred[newdata$am_prob > .5] = 1
#create confusion matrix
table(am_pred, newdata$am)
am_pred 0 1
0 4 2
1 0 2
နောက်ဆုံးတွင်၊ မော်ဒယ်သည် am တန်ဖိုးကို မှန်မှန်ကန်ကန် ခန့်မှန်းပေးသည့် ဒေတာဘေ့စ်အသစ်တွင် စောင့်ကြည့်မှုရာခိုင်နှုန်းကို တွက်ချက်ရန် Mean() လုပ်ဆောင်ချက်ကို အသုံးပြုနိုင်သည်။
#calculate percentage of observations the model correctly predicted response value for
mean(am_pred == newdata$am)
[1] 0.75
မော်ဒယ်သည် ဒေတာဘေ့စ်အသစ်တွင် ကားများ၏ 75% အတွက် am တန်ဖိုးကို မှန်ကန်စွာ ခန့်မှန်းကြောင်း ကျွန်ုပ်တို့တွေ့မြင်နိုင်ပါသည်။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် အခြားဘုံအလုပ်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-
R တွင် ရိုးရှင်းသော linear regression လုပ်နည်း
R တွင် linear regression အများအပြားလုပ်ဆောင်နည်း
R တွင် polynomial regression ကို မည်သို့လုပ်ဆောင်ရမည်နည်း
R တွင် ခန့်မှန်းကြားကာလတစ်ခုကို ဖန်တီးနည်း