位置: 编程技术 - 正文

以Python代码实例展示kNN算法的实际运用(利用python进行)

编辑:rootadmin

推荐整理分享以Python代码实例展示kNN算法的实际运用(利用python进行),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python代码举例,python代码举例,python代码举例,用python编写,运用python编写程序,运用python编写程序,python代码案例详解,python代码举例,内容如对您有帮助,希望把文章链接给更多的朋友!

邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。

上图中,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成反比。

用 kNN 算法预测豆瓣电影用户的性别摘要

本文认为不同性别的人偏好的电影类型会有所不同,因此进行了此实验。利用较为活跃的位豆瓣用户最近观看的部电影,对其类型进行统计,以得到的种电影类型作为属性特征,以用户性别作为标签构建样本集。使用kNN算法构建豆瓣电影用户性别分类器,使用样本中的%作为训练样本,%作为测试样本,准确率可以达到.%。

实验数据

本次实验所用数据为豆瓣用户标记的看过的电影,选取了位豆瓣用户最近看过的部电影。对每个用户的电影类型进行统计。本次实验所用数据中共有个电影类型,因此将这个类型作为用户的属性特征,各特征的值即为用户部电影中该类型电影的数量。用户的标签为其性别,由于豆瓣没有用户性别信息,因此均为人工标注。

数据格式如下所示:

示例:

像这样的数据一共有行,表示个样本。每一个的前个数据是该样本的个特征值,最后一个数据为标签,即性别:0表示男性,1表示女性。

以Python代码实例展示kNN算法的实际运用(利用python进行)

在此次试验中取样本的前%作为测试样本,其余作为训练样本。

首先对所有数据归一化。对矩阵中的每一列求取最大值(max_j)、最小值(min_j),对矩阵中的数据X_j,X_j=(X_j-min_j)/(max_j-min_j) 。

然后对于每一条测试样本,计算其与所有训练样本的欧氏距离。测试样本i与训练样本j之间的距离为:distance_i_j=sqrt((Xi,1-Xj,1)^2+(Xi,2-Xj,2)^2+……+(Xi,-Xj,)^2) ,对样本i的所有距离从小到大排序,在前k个中选择出现次数最多的标签,即为样本i的预测值。

实验结果

首先选择一个合适的k值。 对于k=1,3,5,7,均使用同一个测试样本和训练样本,测试其正确率,结果如下表所示。

选取不同k值的正确率表

由上述结果可知,在k=3时,测试的平均正确率最高,为.%,最高可以达到.%。

上述不同的测试集均来自同一样本集中,为随机选取所得。

Python代码

这段代码并非原创,来自《机器学习实战》(Peter Harrington,),并有所改动。

JavaScript编程中window的location与history对象详解 WindowLocationwindow.location对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面。window.location对象在编写时可不使用window这个前缀。一些例子:

js基础知识(公有方法、私有方法、特权方法) 本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函

window.location.hash知识汇总 location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.href=url就可以直接将页面重定向url。而location.hash则可以用来获取

标签: 利用python进行

本文链接地址:https://www.jiuchutong.com/biancheng/369942.html 转载请保留说明!

上一篇:Windows下用PyCharm和Visual Studio开始Python编程(windows下用CMD调用COM口)

下一篇:JavaScript编程中window的location与history对象详解(javascriptweb)

  • 一般纳税人购进货物用于免征增值税项目
  • 银行手续费回单可以作为入账依据吗
  • 注册税务师考试科目
  • 缴纳个税会计分录是什么
  • 不认证的发票可以抵扣吗
  • 应付职工薪酬工资贷方有余额要怎么调整
  • 原材料亏损率怎么算
  • 不能计入外购固定资产成本的相关税费
  • 退租未摊销的装修费会计分录怎么写
  • 去年的原材料发票能入账吗
  • 没交社保能扣工伤保险吗
  • 一般纳税人辅导期预缴
  • 销售方开的普票税额怎么处理
  • 特定业务预缴所得税不能填写
  • 哪些记账凭证
  • 企业的其他业务收入有
  • 留抵税额怎么入账
  • 工程物资期末余额应在资产负债表中填列?
  • 更换营业执照要多久才能拿到
  • 在edge浏览器中打开农行K宝
  • win11小组件加载内容出现错误
  • linux怎么开启远程
  • php与mysql基础教程
  • 销项负数发票应该给谁
  • w10电脑节能模式
  • 企业备用金预借多久到账
  • 固定资产残料收税吗
  • 补缴企业所得税和滞纳金如何入账
  • 固定资产报废后的处理程序
  • 商业汇票计入什么科目技能高考
  • PHP:imagecolortransparent()的用法_GD库图像处理函数
  • 合同权益转让 范本
  • 如何向企业账户转钱
  • 发行股票的手续费佣金计入什么科目
  • vue 使用js
  • 正则表达式大全(整理版)
  • 跨区域预缴增值税是当月还是次月
  • 合并财务报表抵消原理
  • 炫酷登录注册教程
  • 自动生成尺寸
  • PHP isset()与empty()的使用区别详解
  • 数据库防止重复数据
  • 微信小程序从零
  • 总结的拼音
  • 残疾人就业保障金怎么申报
  • 退税申报系统里出货明细金额少0.1会比对报关单金额吗
  • 增值税专票只有右上角有发票号码
  • 公益性捐赠支出纳税调整
  • 电子承兑到期清算方式是线上还是线下
  • 招待客户的交通费可以算招待费吗
  • 小规模普通发票怎么做分录
  • 城镇土地使用税税率
  • 企业购买随时准备出售的债券
  • 企业间拆借资金是否合法
  • 现金日记账里
  • 固定资产清理如何做账
  • 分公司分摊比例
  • 残保金补申报需要交滞纳金吗
  • 年底未分配利润为负数怎么做分录
  • sql如何学
  • 怎样取消开机磁盘自动检查
  • win7旗舰版系统怎么样
  • centos5.8服务器
  • 一步一步教会你走路
  • mac快捷键使用
  • centos文件备份
  • linux系统修改
  • glimp使用方法
  • Node.js中的什么模块是用于处理文件和目录的
  • jQuery position() 函数详解以及jQuery中position函数的应用
  • 数字图像处理期末考试
  • Developing for Android, IV: The Rules: Networking
  • Python for Informatics 第11章之正则表达式(四)
  • jquery实现原理
  • 2023年最新税率一般纳税人
  • 淄博市税务局投诉电话
  • 如何查询车辆购置税发票
  • 个人所得税税收政策2023最新规定
  • 从日本带化妆品回国会被扣吗
  • 广州代理记账公司地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设