zoukankan      html  css  js  c++  java
  • ML(3.2): NavieBayes R_kalR

           ML3.1 介绍e1071包实施朴素贝叶斯分类的函数,本例使用klaR包中的NaiveBayes函数,因为该函数较之前者增加了两个功能,一个是可以输入先验概率,另一个是在正态分布基础上增加了核平滑密度函数。为了避免过度拟合,在训练时还要将数据分割进行多重检验,所以我们还使用了caret包的一些函数进行配合。

        caret::train

        语法: train(form, data, ..., weights, subset, na.action = na.fail, contrasts = NULL)

    • 安装程序包
      install.packages("caret")
      install.packages("mlbench")
      install.package("klaR")
    • 创建训练集和测试集
      library(lattice)
      library(ggplot2)
      library(caret)
      library(mlbench)
      library(MASS)
      library(klaR)
      
      # 使用朴素贝叶斯建模,这里使用了三次10折交叉检验得到30个结果
      fitControl <- trainControl(method = "repeatedcv", number = 10, repeats = 3,returnResamp = "all")
      model1 <- train(Species~., data = iris.train,method='nb',trControl = fitControl)
    • 加载包 使用朴素贝叶斯建模
      fitControl <- trainControl(method = "repeatedcv", number = 10, repeats = 3,returnResamp = "all")
      model1 <- train(Species~., data = iris.train,method='nb',trControl = fitControl)
    • 返回测试数据的混淆矩阵
      > pred3 <- predict(model1, iris.test, type="raw")
      > table(pred3,iris.test$Species)
                  
      pred3        setosa versicolor virginica
        setosa         10          0         0
        versicolor      0         18         2
        virginica       0          0        20

     

     

  • 相关阅读:
    python学习笔记(excel中处理日期格式)
    python学习笔记(生成xml)
    python学习笔记(接口自动化框架 V1.0)
    python学习笔记(excel+unittest)
    刷题[RoarCTF 2019]Easy Java
    刷题[GKCTF2020]
    php bypass disable function
    刷题[MRCTF2020]Ezpop
    刷题[安恒DASCTF2020四月春季赛]Ez unserialize
    刷题[HFCTF2020]EasyLogin
  • 原文地址:https://www.cnblogs.com/tgzhu/p/6731563.html
Copyright © 2011-2022 走看看