KNN 算法即K最近邻(k-Nearest Neighbor)分类算法,是一个理论上比较成熟的方法。

kknn()函数

knn()函数

train()函数


# KNN算法
setwd("F:\\桌面")  # 设置工作空间
Data <- read.csv("./test.txt",sep = '\t')  # 读入数据
Data[, "MN"] <- as.factor(Data[, "MN"])  # 将目标变量转换成因子型
set.seed(1234)  # 设置随机种子
# 数据集随机抽70%定义为训练数据集,30%为测试数据集
ind <- sample(2, nrow(Data), replace = TRUE, prob = c(0.7, 0.3))
traindata <- Data[ind == 1, ]
testdata <- Data[ind == 2, ]# 使用kknn函数建立knn分类模型
library(kknn)  # 加载kknn包
# knn分类模型
kknn.model <- kknn(MN ~ ., train = traindata, test = traindata, k = 5)  # 训练数据
kknn.model2 <- kknn(MN ~ ., train = traindata, test = testdata, k = 5)  # 测试数据
summary(kknn.model)  # 输出模型概要
# 预测结果
train_predict <- predict(kknn.model)  # 训练数据
test_predict <- predict(kknn.model2)  # 测试数据
# 输出训练数据的混淆矩阵
(train_confusion <- table(actual = traindata$MN, predictedclass = train_predict))
# 输出测试数据的混淆矩阵
(test_confusion <- table(actual = testdata$MN, predictedclass = test_predict))# 使用knn函数建立knn分类模型
library(class)  # 加载class包
# 建立knn分类模型
knn.model <- knn(traindata, testdata, cl = traindata[, "MN"])
# 输出测试数据的混淆矩阵
(test_confusion = table(actual = testdata$MN, predictedclass = knn.model))# 使用train函数建立knn分类模型
library(caret)  # 加载caret包
# 建立knn分类模型
train.model <- train(traindata, traindata[, "MN"], method = "knn")
# 预测结果
train_predict <- predict(train.model, newdata = traindata)      #训练数据集
test_predict <- predict(train.model, newdata = testdata)       #测试数据集
# 输出训练数据的混淆矩阵
(train_confusion <- table(actual = traindata$MN, predictedclass = train_predict))
# 输出测试数据的混淆矩阵
(test_confusion <- table(actual = testdata$MN, predictedclass = test_predict))

《R语言与数据挖掘》⑥-④分类与预测建模【KNN算法】相关推荐

  1. 预测分析:R语言实现1.3 预测建模的过程

    1.3 预测建模的过程 通过观察模型的某些不同特征,我们已经对预测建模过程的各种步骤有所了解.在本节,我们要顺序讲解这些步骤,并理解每个步骤是如何对该任务的整体成功起作用的. 1.3.1 定义模型的目 ...

  2. 《R语言与数据挖掘》⑦聚类分析建模

    书籍:<R语言与数据挖掘> 作者:张良均 出版社:机械工业出版社 ISBN:9787111540526 本书由北京华章图文信息有限公司授权杭州云悦读网络有限公司电子版制作与发行 版权所有· ...

  3. R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化

    R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理.构建词袋模型.构建xgboost文本分类模型.基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化 目录

  4. R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、xgboost模型预测推理并使用混淆矩阵评估模型、可视化模型预测的概率分布

    R语言构建文本分类模型:文本数据预处理.构建词袋模型(bag of words).构建xgboost文本分类模型.xgboost模型预测推理并使用混淆矩阵评估模型.可视化模型预测的概率分布 目录

  5. 基于SPSS Moderler和R语言的数据挖掘宽表处理

    基于SPSS Moderler和R语言的数据挖掘宽表处理 -电信业客户流失分析 一.商业理解 1.问题的提出: 1)问题1:预测哪些客户(尤其是高价值客户)可能会流失? 2)问题2:可能流失客户的特征 ...

  6. 【转载】R语言与数据挖掘学习笔记

    (1):数据挖掘相关包的介绍 今天发现一个很不错的博客(http://www.RDataMining.com),博主致力于研究R语言在数据挖掘方面的应用,正好近期很想系统的学习一下R语言和数据挖掘的整 ...

  7. R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、基于自定义函数构建xgboost文本分类模型

    R语言构建文本分类模型:文本数据预处理.构建词袋模型(bag of words).构建xgboost文本分类模型.基于自定义函数构建xgboost文本分类模型 目录

  8. R语言将多分类数据集转化为二分类数据集,使用条件判断将多分类转化为二分类(transform dataset into a dichotomous factor response dataset)

    R语言将多分类数据集转化为二分类数据集,使用条件判断将多分类转化为二分类(transform dataset into a dichotomous factor response dataset) 目 ...

  9. R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix)、R语言多分类混淆矩阵可视化

    R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix).R语言多分类混淆矩阵可视化 目录

  10. R语言使用线性回归模型来预测(predict)单个样本的目标值(响应值、response)实战

    R语言使用线性回归模型来预测(predict)单个样本的目标值(响应值.response)实战 目录

最新文章

  1. C# Enum,Int,String的互相转换 枚举转换
  2. android 属性动画变大,Android PropertyAnimation 属性动画(一)初探
  3. js serialize php 解,[转]JavaScript 版本的 PHP serialize/unserialize 完整实现
  4. MTK平台Android4.4 拍照默认图片格式修改
  5. 最大隶属度原则_【模糊数学课程笔记】六、模糊模型识别I(最大隶属度原则)...
  6. linux环境C语言操作数据库
  7. llvm+clang 添加 LTO(Link Time Optimization) 支持
  8. 微信公众号的黑色商业链揭秘
  9. Keil MDK介绍
  10. Python学习三: 爬虫高级技巧 与 模拟实战练习
  11. SpringBoot-21-统一日志框架
  12. 如果生活中有什么结解不开,那就打个蝴蝶结吧
  13. typeid的使用方法
  14. Curio for Mac(头脑风暴思维导图)
  15. Windows 组策略修改 之 初始化文件 %windir%\inf\defltbase.inf
  16. 在监控落地的路上,助你一臂之力
  17. npm axios 6 high severity vulnerabilities
  18. 初学Python,爬取王者荣耀英雄介绍及皮肤下载
  19. UML Distilled - Development Process
  20. R语言稀疏主成分分析、因子分析、KMO检验和Bartlett球度检验分析上市公司财务指标数据...

热门文章

  1. android MIT App Inventor 2 Beta 中文资料
  2. 【PS4开发】如何通过unity3d发布ps4应用
  3. LINK : fatal error LNK1561和LINK : fatal error LNK1168:解决方法
  4. Java版PageRank及网站收录情况查询代码
  5. rhel7添加静态路由
  6. SpringBoot集成Shiro管理会话和权限
  7. unity3d 火焰燃烧
  8. 做一名「技术掮客」去变现自己的技术
  9. C语言必会100题(2)。用*号输出字母C的图案/输出特殊图案/输出9*9口诀/输出国际象棋棋盘/打印楼梯,同时在楼梯上方打印两个笑脸
  10. 软件工程师的核心竞争力是什么