Python实现K近邻算法的示例代码python

k-近邻算法(K-NearestNeighbouralgorithm),又称KNN算法,是数据挖掘技术中原理最简单的算法。

工作原理:给定一个已知标签类别的训练数据集,输入没有标签的新数据后,在训练数据集中找到与新数据最邻近的k个实例,如果这k个实例的多数属于某个类别,那么新数据就属于这个类别。简单理解为:由那些离X最近的k个点来投票决定X归为哪一类。

(1)计算已知类别数据集中的点与当前点之间的距离;

(2)按照距离递增次序排序;

(3)选取与当前点距离最小的k个点;

(4)确定前k个点所在类别的出现频率;

(5)返回前k个点出现频率最高的类别作为当前点的预测类别。

判断一个电影是爱情片还是动作片。

欧氏距离

构建数据集

rowdata={"电影名称":['功夫熊猫','叶问3','伦敦陷落','代理情人','新步步惊心','谍影重重','功夫熊猫','美人鱼','宝贝当家'],"搞笑镜头":[39,3,2,9,8,5,39,21,45],"拥抱镜头":[0,2,3,38,34,2,0,17,2],"打斗镜头":[31,65,55,2,17,57,31,5,9],"电影类型":["喜剧片","动作片","动作片","爱情片","爱情片","动作片","喜剧片","喜剧片","喜剧片"]}计算已知类别数据集中的点与当前点之间的距离

new_data=[24,67]dist=list((((movie_data.iloc[:6,1:3]-new_data)**2).sum(1))**0.5)将距离升序排列,然后选取距离最小的k个点「容易拟合·以后专栏再论」

k=4dist_l=pd.DataFrame({'dist':dist,'labels':(movie_data.iloc[:6,3])})dr=dist_l.sort_values(by='dist')[:k]确定前k个点的类别的出现概率

re=dr.loc[:,'labels'].value_counts()re.index[0]选择频率最高的类别作为当前点的预测类别

result=[]result.append(re.index[0])result

(1)简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;

(2)可用于数值型数据和离散型数据;

(3)无数据输入假定;

(4)适合对稀有事件进行分类。

(1)计算复杂性高;空间复杂性高;

(2)计算量大,所以一般数值很大的适合不用这个,但是单个样本又不能太少,否则容易发生误分;

(3)样本不平衡问题(即有些类别的样本数量很多,而其他样本的数量很少);

THE END
1.局域网交友平台设计与实现6.1交友数据 a、能够将交友数据一键导出为execl表格 b、性别、部门、学校、MBTI、星座、故乡的统计图 6.2网站数据 a、能够显示网站的登录数据。包括登录IP,登录时间,是否管理员登录。 1 2 3 4 5 三、性能需求 响应时间:用户操作的响应时间应在 3 秒内,确保用户体验流畅。 https://blog.csdn.net/weixin_44679919/article/details/144271230
2.开发一个前后端分离的webgis城市共享单车投放管理系统(2)currentDrawType用于存储当前绘制类型(点线面),vectorSource用于存储当前绘制矢量图层源,用于操作后续的清除绘制图层操作,setDrawType(type)用于设置当前绘制类型,setVectorSource用于设置当前矢量数据源,clearDraw()用于进行矢量图层的清除操作 新建@/components/DrawButton.vue https://zhuanlan.zhihu.com/p/9646296403
3.pythonk邻近算法应用实例(一)改进约会网站的配对效果改进约会网站的配对效果 应用背景: 某约会网站收集了一些数据放在datingTestSet.txt中,每个样本数据占据一行,总共有1000行。样本主要包含以下3种特征: □ 每年获得的飞行常客里程数 □ 玩视频游戏所耗时间百分比 □ 每周消费的冰淇淋公升数 在将上述特征数据输人到分类器之前,必须将待处理数据的格式改变为分类器可以接https://segmentfault.com/a/1190000011266815/
4.机器学习(七)基于KNN分类的约会网站配对改进算法某APP用户希望分类软件可以更好地帮助她将匹配对象划分到确切的分类中。此外还可以收集了约会软件未曾记录的数据信息,她认为这些数据更有助于匹配对象的归类。收集的部分信息如下图所示: 数据集下载 样本主要包含以下3种特征: 每年获得的飞行常客里程数 玩视频游戏所耗时间百分比 https://www.ucloud.cn/yun/19982.html
5.机器学习(一)——KNN算法之约会网站匹配效果为了熟悉和掌握K近邻算法,改进约会网站的匹配策略。 【实验要求】 用KNN算法改进约会网站的配对效果。 【算法原理】 k近邻法(k-nearest neighbor, k-NN)原理:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将https://www.jianshu.com/p/a4fd43024370
6.8月约会日期,带有数字多维数据集设计背景.日期8库存照片.图片照片 关于 8月约会日期,带有数字多维数据集设计背景. 日期8. 图片 包括有 季节, 纸张, 格式 - 325581548https://cn.dreamstime.com/%E6%9C%88%E7%BA%A6%E4%BC%9A%E6%97%A5%E6%9C%9F%EF%BC%8C%E5%B8%A6%E6%9C%89%E6%95%B0%E5%AD%97%E5%A4%9A%E7%BB%B4%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AE%BE%E8%AE%A1%E8%83%8C%E6%99%AF-%E6%97%A5%E6%9C%9F-image325581548
7.网络问卷调查系统12篇(全文)以ed X开放数据集中的学习者类型和比率来看, 全球用户中获取证书者 (certified) 占2.8%, 积极学习者 (explored) 占3.5%, 一般学习者 (viewed) 占56.1%, 仅注册者 (registered) 为37.6%, 而国家信息为中国的用户当中, 这几项的比例分别为1.2%、2.4%、62.1%和34.3%。研究显示, 除去学习者语言、网络访问等https://www.99xueshu.com/w/ikeyovrwf3nd.html
8.约会app开发仿爱聊软件app定制开发算法是围绕特定任务构建的指令集,旨在通过特定的数据处理获得所需的结果。 以同样的方式,约会软件app算法用于根据用户的偏好、行为和其他重要因素(如年龄、位置、兴趣和个性特征)来匹配用户。 它们旨在从用户的活动中学习,因此,随着时间的推移,推荐会变得越来越好。 https://www.yanding8.com/post/1764.html
9.海伦约会数据(KNN练习)数据集天池实验室 数据集 公共数据集 正文 海伦约会数据(KNN练习) 我要牛叉2018-10-1513614CC-BY-SA-NC 4.0 新建Notebook 内容 Notebook 评论 描述 暂无描述 数据列表 数据名称上传日期大小下载 datingTestSet2.txt2018-10-1526.43KB 文档 目录https://tianchi.aliyun.com/dataset/4917
10.AutoML取人代之?四个工程师两个数据集将之干翻!快速(约会)分类数据集测试结论: 数据科学家能够向 AutoML 平台提供特征工程数据集,从而提高该平台的性能水平。 Azure 在具体使用模型方面更为透明;谷歌平台则拒绝公开模型创建与选择信息。 谷歌无法很好地处理独热码变量。 数据集 2: ASHRAE 数据集概述 https://www.51cto.com/article/609129.html
11.将约会XML数据导入Outlook约会对象(Outlook)Microsoftxml是 XML 字符串或表示有效 XML 文件的路径的字符串。 就以下代码示例而言,XML 使用以下 XML 标记分隔约会数据: 约会数据分隔 XML 标记 整个约会数据集<约会> 约会集中的每个约会<委任> 约会的开始时间<starttime> 约会的结束时间<endtime> 约会标题<主题> https://msdn.microsoft.com/zh-cn/ff869762/
12.上传者:qq41855990时间:202007机器学习 约会网站数据集 上传者:qq_40506723时间:2021-10-02 数据预处理-归一化-数据文件dating.txt 数据预处理-归一化-数据文件 上传者:csj50时间:2023-08-07 Springer-R-book:V. Pagonis-Springer于2021年为《使用R进行发光数据分析和建模》一书的R代码 https://www.iteye.com/resource/qq_41855990-12623594