用Python3 深入理解《机器学习实战》中k-近邻算法中海伦约会网站配对的案例

《机器学习》算法实例-KNN算法-海伦约会案例 【案例描述】 海伦使用约会网站寻找约会对象。经过一段时间之后,她发现曾交往过三种类型的人: 不喜欢的人 魅力一般的人 极具魅力的人 她希望: 工作日与魅力一般的人约会 周末与极具魅力的人约会 不喜欢的人则直接排除掉 现在她收集到了一些约会网站未曾记录的数据信息,这更有助于匹配对象的归类。 【开发步骤】 收集数据: 提供文本文件 准备数据: 使用 Python 解析文本文件 分析数据: 使用 Matplotlib 画二维散点图 训练算法: 此步骤不适用于 k-近邻算法 测试算法: 使用海伦提供的部分数据作为测试样本。 使用算法: 产生简单的命令行程序,然后海伦可以输入一些特征数据以判断对方是否为自己喜欢的类型。 【注】本实例对于每步都有详细讲解,若有不理解部分,可私信解答。 立即下载

前言:机器学习算法的第一次实验,用k-近邻算法来设计一个有关于集美大学的程序,对于刚了解机器学习以及接触python不深的我来说,只能先将教科书上的例子吃透在继续深入

 

课本源代码使用的是python2版本,照书本写代码后发现在自己的Visual Studio Code上报了一些错误,在上网查阅资料后发现,python3是不向下兼容python2的,虽然其中很多组件和扩展都是python2的,但部分代码还是有些不同,基于自己所用的是python3版本的,所以决定用python3来理解书上的案例

目录

一、理解k-近邻算法含义以及代码实现

二、从文本文件中解析数据

三、用Matplotlib进行图形化数据

四、将数据进行归一化处理

五、算法测试

六、实现算法


 

一、理解k-近邻算法含义以及代码实现

k-近邻算法的代码实现原理:

        在一个样本集中存在对应特征和标签,例如海伦约会网站案例中一个样本有四个值(每年获得的飞行常客里程数、玩视频游戏所消耗时间百分比、每周消费的冰淇淋公升数、喜爱程度),前三个值为特征,最后一个值为标签,这样便形成了一个样本数据和其分类的对应关系,当一个没有标签的新数据被输进来时,我们需要提取与新数据(k个)最相近的特征的分类标签,选择其中出现次数最多的标签,作为新数据的分类标签。

        那么,怎么求特征间的距离呢?

        书本上使用的是欧氏距离,即  :     

 gif.latex?d%3D%5Csqrt%7B%28x1-x2%29%5E%7B2%7D+%28y1-y2%29%5E%7B2%7D%7D

        这个公式是中学数学中常见的计算两点间距离的公式,该公式还可拓展至三维:

机器学习海伦约会数据 海伦约会数据,没错,你想要的海伦 If you only do what you can do, you'll never be more than you are now 立即下载

相关推荐

Simulink实战:火电机组一次调频与AGC协同控制建模与仿真解析

本文详细解析了如何使用Simulink进行火电机组一次调频与AGC协调控制的建模与仿真。通过系统架构设计、参数设置和模块实现,阐述了如何实现两者的协同控制,确保电网频率稳定。文章提供了实用的建模技巧、参数整定经验和性能评估方法,为电力系统仿真工程师提供了有价值的实践指导。

c7d8e9的博客 308

GATK SNP过滤参数优化:从标准到个性化调整的实践指南

本文深入探讨了GATK SNP过滤参数的个性化调整策略,强调不应盲目套用官方标准参数。文章详细拆解了QD、FS、SOR等关键过滤参数的含义,并提供了通过数据分布分析、文献调研和迭代测试来确定适合自身数据(如动植物重测序)最佳阈值的实践方法,旨在帮助研究者在保留真实变异与剔除假阳性信号之间找到最优平衡。

weixin_29216049的博客 275

Siemens SIMATIC软件二次开发:使用C#进行SIMATIC软件二次开发

通过使用OPC-UA通信协议和S7通信库,可以有效地在C#应用程序中与Siemens SIMATIC软件进行数据交换。OPC-UA提供了一个标准化的平台,而S7通信库则提供了直接访问PLC数据的能力。掌握这两种通信方式,将极大地增强在工业自动化领域的二次开发能力。在Siemens SIMATIC软件中,自定义功能块开发是实现二次开发的关键步骤之一。通过C#,可以创建高度定制化的功能块,以满足特定的控制需求。下面,我们将通过一个示例来展示如何使用C#开发一个自定义功能块。OPC-UA通信。

kkchenjj的博客 1415

Chrome下载B站视频字幕的插件

本文主要介绍了Chrome下载B站视频字幕的插件,希望能对使用Chrome的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

ransac拟合2D圆(三点定圆 c++详细版)

RANSAC(Random Sample Consensus,随机采样一致性)算法是一种基于随机采样的迭代算法,主要用于从一组包含大量噪声和异常值(外点)的数据中估计数学模型的参数。

twnkie的博客 1047

【LE Audio】CAP精讲[1]: 从理论到实操,CAP 协同流程入门全攻略

LEAudio生态中的CommonAudioProfile(CAP)是一个关键协同框架,它通过整合基础音频协议(BAP/VCP/MICP等)构建多设备协同能力。CAP定义了三大核心功能:音频流管理、设备组控制和统一交互服务,解决了传统蓝牙音频在多设备场景下的协同痛点。其规范历经v1.0到v1.0.1的优化,修正了角色定义、连接流程等关键模块,提升设备兼容性。CAP采用严格的语言约定(shall/must/should)和术语体系(ContextType/CCID/协同集),确保不同厂商设备能相互理解。

byte轻骑兵的技术小窝 2万+

一文看懂EMMC原理及工作过程

CMD:用于设备初始化和命令传输的双向通道, CMD信号有2种工作模式:1#:漏极开路--->用于初始化模式2#:推拉--->用于快速命令传输其中命令从eMMC主机控制器发送到eMMC设备,响应从设备发送到主机。DAT [7:0]:双向数据信号,模式包括:1(DAT0);默认情况下,通电或重置后,只有DAT0用于数据传输。DAT信号在推挽模式下工作,eMMC设备包括数据线DAT1-DAT7的内部上拉。进入4位模式后,设备立即断开线路DAT1、DAT2和DAT3的内部上拉;

Airer_00的博客 2033

RK3588适配Ubuntu系统

RKsdk上支持buildroot以及Debian系统,但是Ubuntu需要自己移植,有很多公司都移植好了可以直接用,这里就总结记录一下我制作Ubuntu的过程。

m0_60805802的博客 5361

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 用简单实例理解ROC曲线和PR曲线
下一篇: K-近邻算法实战
只会print就要多学
博客等级 码龄5年 9粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值