#13
library(MASS)
attach(Boston)
crime1 = rep(0, length(crim))
crime1[crim > median(crim)] = 1
Boston = data.frame(Boston, crime1)
dim(Boston)
train = 1:(506[1]/2)
test = (506[1]/2 + 1):506[1]
Boston.train = Boston[train, ]
Boston.test = Boston[test, ]
crime1.test = crime1[test]
#Logit#自变量除crime1和crim均包含在内
glm.13 = glm(crime1 ~ . - crime1 - crim, data = Boston, family = binomial,
subset = train)
glm.probs = predict(glm.13, Boston.test, type = "response")
glm.pred = rep(0, length(glm.probs))
glm.pred[glm.probs > 0.5] = 1
mean(glm.pred != crime1.test)
#Logit#自变量删去chas nox rm
glm.13b = glm(crime1 ~ . - crime1 - crim - chas - nox - rm, data = Boston, family = binomial,
subset = train)
glm.probs = predict(glm.13b, Boston.test, type = "response")
glm.pred = rep(0, length(glm.probs))
glm.pred[glm.probs > 0.5] = 1
mean(glm.pred != crime1.test)
#LDA#自变量除crime1和crim均包含在内
lda.13 = lda(crime1 ~ . - crime1 - crim, data = Boston, subset = train)
lda.pred = predict(lda.13, Boston.test)
mean(lda.pred$class != crime1.test)
#LDA##自变量删去chas nox rm
lda.13 = lda(crime1 ~ . - crime1 - crim - chas - nox - rm, data=Boston,subset = train)
lda.pred = predict(lda.13, Boston.test)
mean(lda.pred$class != crime1.test)
#KNN#自变量除crime1和crim均包含在内
library(class)
train.X = cbind(zn, indus, chas, nox, rm, age, dis, rad, tax, ptratio, black,
lstat, medv)[train, ]
test.X = cbind(zn, indus, chas, nox, rm, age, dis, rad, tax, ptratio, black,
lstat, medv)[test, ]
train.crime1 = crime1[train]
set.seed(1)
#k=1
knn.pred = knn(train.X, test.X, train.crime1, k = 1)
mean(knn.pred != crime1.test)
#k=3
knn.pred = knn(train.X, test.X, train.crime1, k = 3)
mean(knn.pred != crime1.test)
#k=5
knn.pred = knn(train.X, test.X, train.crime1, k = 5)
mean(knn.pred != crime1.test)
#k=10
knn.pred = knn(train.X, test.X, train.crime1, k = 10)
mean(knn.pred != crime1.test)
#KNN#自变量删去chas nox rm
library(class)
train.X = cbind(zn, indus, age, dis, rad, tax, ptratio, black,
lstat, medv)[train, ]
test.X = cbind(zn, indus, age, dis, rad, tax, ptratio, black,
lstat, medv)[test, ]
train.crime1 = crime1[train]
set.seed(1)
#k=1
knn.pred = knn(train.X, test.X, train.crime1, k = 1)
mean(knn.pred != crime1.test)
#k=3
knn.pred = knn(train.X, test.X, train.crime1, k = 3)
mean(knn.pred != crime1.test)
#k=5
knn.pred = knn(train.X, test.X, train.crime1, k = 5)
mean(knn.pred != crime1.test)
#k=10
knn.pred = knn(train.X, test.X, train.crime1, k = 10)
mean(knn.pred != crime1.test)