R分类算法-KNN算法

监督学习(Supervised Learning): 从给定标注的训练集中学习出一个函数,根据这个函数为新数据进行标注。 无监督学习(Unsupervised Learning): 从给定无标注的训练集中学习出一个函数,根据这个函数为所有数据标注。 分类(Classification): 分类算法通过对已知类别训练数据集的分析,从中发现分类规则,以此预测 新数据的类别,分类算法属于监督学习的类型

KNN算法(K Nearest Neighbors)

K近邻节点算法 KNN算法从训练集中找到和新数据最接近的K条记录,然后根据他们的主要分类 来决定新数据的类别。 训练集(Train Set): 训练集,是用来训练模型或确定模型参数的数据。 测试集(Test Set): 测试集,是用来验证模型的准确性的数据。 交叉验证(Cross Validation): 一般我们使用70%的数据,作为训练集,剩下30%作为测试集,测试集的测试 结果使用交叉表的形式表示,因此该方法称为交叉验证。

抽样方法 sample(x,size,replace=FALSE) x 待抽样的样本 size 抽样的数量 replace 是否可放回抽样,默认为FALSE

knn 在”class”包中 install.packages(“class”) knn(train,test,cl,k=1)

  • train 训练数据
  • test 测试数据
  • cl 训练数据的正确结果
  • k KNN中的K值,默认值为1

模型调优,调整K值

代码实现:

#install.packages("class");
library(class)

#https://en.wikipedia.org/wiki/Iris_flower_data_set
#https://zh.wikipedia.org/wiki/%E5%AE%89%E5%BE%B7%E6%A3%AE%E9%B8%A2%E5%B0%BE%E8%8A%B1%E5%8D%89%E6%95%B0%E6%8D%AE%E9%9B%86

total <- nrow(iris);
index <-sample(1:total, total*0.7)

iris.train <- iris[index, ]
iris.test <- iris[-index, ]

result.KNN <-knn(
  train=subset(iris.train, select=-Species), 
  test=subset(iris.test,select=-Species), 
  cl=iris.train$Species, k=3
)

table(iris.test$Species, result.KNN)
result.KNN
             setosa versicolor virginica
  setosa         15          0         0
  versicolor      0         14         1
  virginica       0          1        14

可以通过调整K值,来进行模型的调优。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏null的专栏

简单易学的机器学习算法——EM算法

一、机器学习中的参数估计问题 image.png 二、EM算法简介     在上述存在隐变量的问题中,不能直接通过极大似然估计求出模型中的参数,EM算法是一种解...

1.7K5
来自专栏数值分析与有限元编程

矩阵方程

对于矩阵 A(n,n) 和 B(n,m) 组成的矩阵方程 [A][X] = [B] 记 X(n,m) 的第i列向量为 Xi(i = 1,2...m), 矩阵B的...

3018
来自专栏Petrichor的专栏

深度学习: smooth L1 loss 计算

RPN的目标函数是分类和回归损失的和,分类采用 交叉熵,回归采用稳定的 Smooth L1,

3844
来自专栏大学生计算机视觉学习DeepLearning

深度学习(一)神经网络中的池化与反池化原理

原文链接:https://www.cnblogs.com/DOMLX/p/9579108.html

1612
来自专栏人工智能

基于Region Proposal的深度学习目标检测简述(一)

开篇需要跟大家道歉,一切忙没时间的理由都是借口,实际上就是偷懒了,这么久才更新,非常抱歉! 本篇争取以最简明的叙述,帮助大家理解下基于Region Propos...

3466
来自专栏AI研习社

用Kaggle经典案例教你用CNN做图像分类!

前言 在上一篇专栏《利用卷积自编码器对图片进行降噪》中,我们利用卷积自编码器对 MNIST 数据进行了实验,这周我们来看一个 Kaggle 上比较经典的一...

4046
来自专栏深度学习思考者

深度学习目标检测算法——Faster-Rcnn

Faster-Rcnn代码下载地址:https://github.com/ShaoqingRen/faster_rcnn 一 前言   Faster rcnn是...

3215
来自专栏AIUAI

目标检测 - Faster R-CNN 中 RPN 原理

4908
来自专栏程序生活

Contrastive Loss(对比损失)Contrastive Loss

3144
来自专栏机器学习、深度学习

快速多尺度人脸检测2--Multi-Scale Fully Convolutional Network for Face Detection in the Wild

Multi-Scale Fully Convolutional Network for Face Detection in the Wild CVPRW20...

2868

扫码关注云+社区

领取腾讯云代金券