首发于 数据小僧
KNN除了可以做分类和预测,你还知道它可以识别异常值吗?

KNN除了可以做分类和预测,你还知道它可以识别异常值吗?

前言

首先跟各位读者朋友道个歉,这篇文章来的较晚,距离上一篇有关数据分析中异常值的判断已超过3个月。在《 Python数据清洗--异常值识别与处理01》文中,介绍了两种单变量的异常识别方法,分别是分位数法(即借助于箱线图的策略)和Sigma法(即借助于正态分布的假设)。

然而这两种方法,并不能从全局的角度识别出数据中可能存在的异常点。为解决这个问题,本文将借助于KNN模型的思想,从多变量的角度,判断全局数据中的异常点。本文中所涉及的代码和数据源均可从文末的链接中下载。

KNN算法介绍

KNN模型属于有监督的学习算法,它的中文名称为K最近邻算法,该模型是通过搜寻最近的k个已知类别样本对未知类别样本进行预判,当然也可以对连续的Y变量做预测。关于“最近”的度量就是应用点之间的距离(如计算欧氏距离、曼哈顿距离、余弦相似度等),如果距离越小,说明它们之间越近。为了使读者能够理解KNN模型的思想,简单绘制了如下的示意图。

如上图所示,假设数据集中一共含有两种类别,分别用五角星和三角形表示,待预测样本为各圆的圆心。如果以近邻个数k=5为例,就可以通过投票方式快速得到未知样本所属的类别。该算法的背后是如何实现上面分类的呢?它的具体步骤可以描述为:

异常点识别原理

异常点是指远离大部分正常点的样本点,再直白点说,异常点一定是跟大部分的样本点都隔得很远。基于这个思想,我们只需要依次计算每个样本点与它最近的K个样本的平均距离。再利用计算的距离与阈值进行比较,如果大于阈值,则认为是异常点。同样,为了帮助读者理解如何利用KNN思想,实现异常值的识别,我手工画了一张图。

如上图所示,一共包含16个样本点,每一个样本点都可以跟剩余的15个样本点算欧式距离,再从15个距离中找出最小的K个距离,并计算平均距离,用于衡量该样本点与其它样本的相似度。

不妨以最近的5个近邻为例,目测图中的五角星应该就是异常点,因为它到最近5个样本点的平均距离,一定超过其他点的最近5个邻居的平均距离。

理论、思想说了那么多,下面我们就直接开干,为了方便后续的分析和可视化,我们选取了中国统计局公布的2018年各省常住人口量与GDP数据。希望从该数据中,寻找到可能存在异常点。

案例实战

首先,基于该数据,绘制各省常住人口量与GDP的散点图,让大家对数据有一个直观的认识。

如上图所示,直觉上图中右上角的三个点可能是异常点,因为它们与大部分的数据点距离都比较远。为了验证我们的直觉,接下来通过构造自定义函数,计算每个点与剩余点的距离,并基于最近5个样本点算平均距离,寻找是否超过阈值的异常点(阈值的计算是《 Python数据清洗--异常值识别与处理01》为中介绍的分位数法)。下方代码可能有点长,但仔细阅读并查看对应的注释内容,相信你一定能够理解代码的思想。

如上图所示,基于5个近邻的KNN思想,寻找到了4个异常点,与之前我们的直觉判断还是非常吻合的。读者也可以尝试其他几种可能的K值,并对比每一种K值所得到的异常点是否存在较大的差异。

KNN的短板

从思想、理论到实战,大家一定会发现,基于KNN模型寻找异常点,所要经过的运算次数还是非常多的(例如针对100个样本点寻找可能的异常,需迭代计算100×99次的运算)。所以,基于KNN模型寻找异常点是不适合于高维数据和大批量数据的;而且距离的计算采用的是欧式距离公式,只能针对球形簇的样本数据寻找异常,对于非球形簇则无法很好的搜寻异常。

结语

OK,今天的内容就分享到这里,下一期将会跟大家分享如何基于K均值模型,针对大批量数据做异常点检测。如果你有任何问题,欢迎在公众号的留言区域表达你的疑问。

数据链接: pan.baidu.com/s/1G7t85y

提取码:675v


推荐阅读--Top5

Python要上天啊!一行代码就可以搞定炫酷的数据可视化!

这100多个数据分析常用指标和术语你都分清楚了吗? while循环与for循环到底差在哪里?举几个例子给你看! 学习Python,避开这17个低级错误,养成良好的编程习惯!

超全Python速查表,GitHub标星4600

深圳SEO优化公司漳州网站改版哪家好临夏品牌网站设计长春SEO按天计费多少钱自贡百度关键词包年推广多少钱兰州高端网站设计报价河源SEO按天收费推荐贵阳百度网站优化排名多少钱阿里网站优化按天计费韶关网站设计价格梅州高端网站设计绥化百度网站优化多少钱淮安模板网站建设价格湘潭网站推广方案推荐金昌SEO按天计费报价连云港阿里店铺托管公司廊坊网页设计哪家好贵阳外贸网站建设报价宁波seo优化推荐宝安品牌网站设计云浮如何制作网站天门企业网站建设公司桂林建网站娄底营销网站哪家好龙岩百度爱采购哪家好长葛优秀网站设计多少钱垦利网络营销伊春英文网站建设十堰网站优化按天收费哪家好邵阳网络营销延安营销型网站建设哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化