আসলে, এটি আপনি কী পেতে চান তার উপর নির্ভর করে। আপনি যদি কেবলমাত্র পূর্বাভাসের জন্য লজিস্টিক রিগ্রেশন করেন তবে আপনি আপনার ডেটার উপযোগী যে কোনও তদারকি করা শ্রেণিবিন্যাস পদ্ধতি ব্যবহার করতে পারেন। আরেকটি সম্ভাবনা: বৈষম্যমূলক বিশ্লেষণ (lda () এবং qda () প্যাকেজ এমএএসএস থেকে)
r <- lda(y~x) # use qda() for quadratic discriminant analysis
xx <- seq(min(x), max(x), length=100)
pred <- predict(r, data.frame(x=xx), type='response')
yy <- pred$posterior[,2]
color <- c("red","blue")
plot(y~x,pch=19,col=color[pred$class])
abline(lm(y~x),col='red',lty=2)
lines(xx,yy, col='blue', lwd=5, lty=2)
title(main='lda implementation')
অন্যদিকে, আপনার ভবিষ্যদ্বাণীগুলির কাছাকাছি যদি আপনার আত্মবিশ্বাসের ব্যবধানগুলি বা আপনার অনুমানের উপর স্ট্যান্ডার্ড ত্রুটিগুলির প্রয়োজন হয় তবে বেশিরভাগ শ্রেণিবদ্ধকরণ অ্যালগরিদমগুলি আপনাকে সহায়তা করবে না। আপনি সাধারণীকরণযোগ্য (মিশ্র) মডেলগুলি ব্যবহার করতে পারেন, যার জন্য বেশ কয়েকটি প্যাকেজ উপলব্ধ। আমি প্রায়শই সাইমন উডের এমজিসিভি প্যাকেজ ব্যবহার করি। সাধারণীকরণযোগ্য মডেলগুলি লজিস্টিক রিগ্রেশনের চেয়ে আরও নমনীয়তার মঞ্জুরি দেয়, কারণ আপনি আপনার ভবিষ্যদ্বাণীকারীদের মডেলিংয়ের জন্য স্প্লাইন ব্যবহার করতে পারেন।
set.seed(55)
require(mgcv)
n <- 100
x1 <- c(rnorm(n), 1+rnorm(n))
x2 <- sqrt(c(rnorm(n,4),rnorm(n,6)))
y <- c(rep(0,n), rep(1,n))
r <- gam(y~s(x1)+s(x2),family=binomial)
xx <- seq(min(x1), max(x1), length=100)
xxx <- seq(min(x2), max(x2), length=100)
yy <- predict(r, data.frame(x1=xx,x2=xxx), type='response')
color=c("red","blue")
clustering <- ifelse(r$fitted.values < 0.5,1,2)
plot(y~x1,pch=19,col=color[clustering])
abline(lm(y~x1),col='red',lty=2)
lines(xx,yy, col='blue', lwd=5, lty=2)
title(main='gam implementation')
আরও অনেক কিছু করার আছে:
op <- par(mfrow=c(2,1))
plot(r,all.terms=T)
par(op)
summary(r)
anova(r)
r2 <- gam(y~s(x1),family=binomial)
anova(r,r2,test="Chisq")
...
আমি জেনারালাইজড অ্যাডিটিভ মডেলগুলি সম্পর্কে সাইমন উডের বইটি সুপারিশ করব