library(ISLR)
data(Default)


plot(Default$balance,Default$income,pch=16,
     col=2+as.numeric(Default$default),cex=0.3)

fit = glm(default~balance+income,data=Default,family=binomial)
beta = fit$coef
abline(c(-beta[1]/beta[3],-beta[2]/beta[3]))
pred = predict(fit,data=Default,type="response")>0.5
#LDA
library(MASS)
n = nrow(Default)
train = sample(1:n,n/2,replace=FALSE)
fit.lda = lda(default~balance+income+student,data=Default[train,])
print(fit.lda)
pred.lda = predict(fit.lda,Default[-train,])$class
tab.lda = table(Default$default[-train],pred.lda)
show(tab.lda)
cat("Err rate lda=",(tab.lda[1,2]+tab.lda[2,1])/sum(tab.lda),"\n")

 #Probabilities
pred.lda = predict(fit.lda,Default[-train,])
plot(Default$balance[-train],pred.lda$posterior[,2])

#Which predict is used?
class(fit.lda)
help(predict.lda)

#QDA
library(MASS)
fit.qda = qda(default~balance+income+student,data=Default[train,])
pred.qda = predict(fit.qda,Default[-train,])$class
tab.qda = table(Default$default[-train],pred.qda)
show(tab.qda)
cat("Err rate qda=",(tab.qda[1,2]+tab.qda[2,1])/sum(tab.qda),"\n")

#Which predict is used?
class(fit.qda)
help(predict.qda)
