作业19答案

练习1 KNN分类训练

  1. 解释KNN算法的基本流程
  2. 解释KNN算法的主要原理、优缺点及使用技巧
  3. 在R上实现knn分类算法
> install.packages("kknn")
> library(kknn)
> m <- dim(iris)[1]
> val <- sample(1:m, size = round(m/3), replace = FALSE, prob = rep(1/m, m))
> iris.learn <- iris[-val,]
> iris.valid <- iris[val,]
> iris.kknn <- kknn(Species~., iris.learn, iris.valid, distance = 1, kernel = "triangular")
> fit <- fitted(iris.kknn)
> table(iris.valid$Species, fit)
> pcol <- as.character(as.numeric(iris.valid$Species))
> pairs(iris.valid[1:4], pch = pcol, col = c("green3", "red")[(iris.valid$Species != fit)+1])

练习2 支持向量机分类训练

  1. 解释支持向量机的基本原理,几何间隔函数间隔等基础概念
  2. 解释支持向量机的优缺点和适用场
  3. 在R上实现支持向量机分类算法
> install.packages("e1071")
> library(e1071)
> svm_model <- svm(Species~Petal.Length+Petal.Width,data=iris)
> plot(svm_model,iris,Petal.Length~Petal.Width)

练习3 决策树分类训练

  1. 解释决策树算法的原理,学会特征选择,分枝过程
  2. 解释决策树算法的实现过程,能比较多种不同决策树
  3. 在R上实现决策树分类模型
> install.packages("party")
> library(party)
> data(iris)
> set.seed(1234)
> ind <- sample(2,nrow(iris),replace=TRUE,prob=c(0.7,0.3))
> testData <- iris[ind==2,]
> trainData <- iris[ind==1,]
> myFormular <- Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width
> iris_ctree <- ctree(myFormular,data=trainData)
> table(predict(iris.ctree,trainData$Species))
> plot(iris_ctree,type=”simple”)

练习4 随机森林分类训练

  1. 解释随机森林算法的原理,比较决策树和随机森林的相互关系
  2. 解释模型集成的思想
  3. 使用R语言建立随机森林分类模型
> library(randomForest)
> data(iris)
> set.seed(1234)
> ind <- sample(2,nrow(iris),replace=TRUE,prob=c(0.7,0.3))
> testData <- iris[ind==2,]
> trainData <- iris[ind==1,]
> rf <- randomForest(Species~.,data=trainData,ntree=100,proximity=TRUE)
> table(predict(rf),trainData$Species)
> print(rf)
> attributes(rf)
> importance(rf)

results matching ""

    No results matching ""