educoder 数据挖掘算法原理与实践:k-近邻

头歌机器学习实战day1 机器学习概念与k-近邻算法 阅读详情

第1关:knn算法概述

#encoding=utf8
import numpy as np

def topK(i,k,x,y):
    '''
    input:
        i(int):第i个样本
        k(int):最近邻样本个数
        x(ndarray):数据特征
        y(ndarray):数据标签
    output:
        topK(list):样本i的最近k个样本标签
    '''
    #*********Begin*********#
    #计算样本到所有样本的距离
    dis = np.sqrt(np.power(np.tile(x[i],(x.shape[0],1))-x,2).sum(axis=1))
    #除样本本身外的最近的k个样本的索引
    est = np.argsort(dis)[1:k+1]
    #除样本本身外的最近的k个样本的标签
    topK = [y[j] for j in est]
    #*********End*********#
    return topK

第2关:动手实现knn算法

#encoding=utf8
import numpy as np

def knn_clf(k,train_feature,train_label,test_feature):
    '''
    input:
        k(int):最近邻样本个数
        train_feature(ndarray):训练样本特征
        train_label(ndarray):训练样本标签
        test_feature(ndarray):测试样本特征
    output:
        predict(ndarray):测试样本预测标签
    '''
     #*********Begin*********#
    #初始化预测结果
    predict = np.zeros(test_feature.shape[0],).astype('int')
    #对测试集每一个样本进行遍历
    for i in range(test_feature.shape[0]):
        #测试集第i个样本到训练集每一个样本的距离
        distance = np.sqrt(np.power(np.tile(test_feature[i],(train_feature.shape[0],1))-train_feature,2).sum(axis=1))
        #最近的k个样本的距离
        distance_k = np.sort(distance)[:k]
        #最近的k个样本的索引
        nearest = np.argsort(distance)[:k]
        #最近的k个样本的标签
        topK = [train_label[i] for i in nearest]
        #初始化进行投票的字典,字典的键为标签,值为投票分数
        votes = {}
        #初始化最大票数
        max_count = 0
        #进行投票
        for j,label in enumerate(topK):
            #如果标签在字典的键中则投票计分
            if label in votes.keys():
                votes[label] += 1/(distance_k[j]+1e-10)#防止分母为0
                #如果评分最高则将预测值更新为对应标签
                if votes[label] > max_count:
                    max_count = votes[label]
                    predict[i] = label
            #如果标签不在字典中则将标签加入字典的键,同时计入相应的分数
            else:
                votes[label] = 1/(distance_k[j]+1e-10)
                if votes[label] > max_count:
                    max_count = votes[label]
                    predict[i] = label
    #*********End*********#
    return predict


第1关:knn算法概述 *任务描述 本关任务:使用python实现方法,找出目标样本最近的k个样本。 相关知识 为了完成本关任务,你需要掌握:1.knn算法思想,2.距离度量。 knn算法思想 k-近邻(k-nearest neighbor ,knn)是一种分类与回归的方法。我们这里只讨论用来分类的knn。所谓k最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最近的k个邻居来代表。 knn算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性 阅读详情

相关推荐

机器学习之kNN算法

机器学习之kNN算法

Deng872347348的博客 1416

头歌平台(EduCoder)—— 数据挖掘算法原理与实践:k-近邻

第1关:knn算法概述 任务描述 本关任务:使用python实现方法,找出目标样本最近的k个样本。 编程要求 根据提示,在右侧编辑器Begin-End处补充代码,实现topK方法。 测试说明 程序会调用你实现的方法,找出目标样本最近的k个样本的标签。如目标样本最近的5个样本为0,0,1,1,1则返回列表[0,0,1,1,1]。若返回结果与真实结果一致则视为通关。 第2关:动手实现knn算法 任务描述 本关任务:使用python实现knn算法,并对手写数字进行识别。 相关知识 为

dbdxmm的博客 1万+

ROS2前置基础教程 | 小鱼教你用CMake依赖查找流程

上面我们用g++、make、cmake三种方式来编译ros2的C++节点。用cmake虽然成功了,但是CMakeLists.txt的内容依然非常的臃肿,我们需要将其进一步的简化。将上面的CmakLists.txt改成下面的样子 接着继续生成和编译 是不是非常的神奇,为什么可以浓缩成那么短的几句指令呢?find_package查找路径对应的环境变量如下。 打开终端,输入指令: 结果 观察PATH变量,你会发现赫然在其中,中的路径如果以或结尾,则自动回退到上一级目录,接着检查这些目录下的 cmake找到这些目录

生活不止眼前的苟且 7159

KNN算法(一) KNN算法原理

一.KNN算法概述 KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法之一,注意KNN算法是有监督学习中的分类算法,它看起来和另一个机器学习算法Kmeans有点像(Kmeans是无监督学习算法),但却是有本质区别的。那么什么是KNN算法呢,接下来我们就来介绍介绍吧。 二.KNN算法介绍 KNN的全称是K Nearest Neighbors,意思是K个最近的邻居,从这个名字我们就能看出一些KNN算法的蛛丝马迹了。K个最近邻居,毫无疑问,K的取值肯定是至关重要的。那么最近的邻居又是怎么回事呢

weixin_45014385的博客 12万+

fMRI脑影像特征提取——Pearson相关与低阶功能连接LOFC(dpabi+nilearn)

一个连接由节点和连接强度(边)组成。功能连接中的节点可以是单个体素,也可以是由脑图谱定义的脑区ROI。通常的做法是将脑图谱中多个或者全部ROI作为节点,或者是将脑图谱中单个ROI与全脑体素作为节点。定义连接强度(边),最常用的方式是Pearson相关,两个节点之间可能没有物理连接,但如果他们的BOLD信号同步性很强,则它们之间可能存在很强的功能上的协作,即很强的功能连接,这是一个很好的表征两个节点间关系的特征。

意疏的学习笔记 2万+

Spec-Kit实战:用‘规范驱动开发’重构一个老旧Node.js项目(避坑指南)

本文详细介绍了如何使用Spec-Kit工具通过‘规范驱动开发’(SDD)重构老旧Node.js项目。从逆向工程提取规范到增量改造策略,再到避免典型陷阱,提供了实战指南和避坑技巧,帮助开发者高效实现架构现代化,显著提升代码质量和维护效率。

weixin_42525582的博客 554

K近邻算法原理与实践

K近邻算法原理与实践

SuperHakce 1263

STM32F103C8T6+I2C+DMA读取陀螺仪模块JY901S(硬件I2C

说明:1.本实验代码适用移植一切stm32f1系列;2.本实验使用的是外设资源硬件I2C2;3.本实验运用的是DMA单次模式,如果需要DMA的循环模式,请移步我的另一篇文章;4.本文章不提供陀螺仪校准教学,并是在没有校准陀螺仪情况下读取数据;5.本文章是作者的学习记录及心得,如有不足,欢迎指正。 总结:亲测stm32f103c8t6最小系统板通过片上外设资源I2C配合DMA读去陀螺仪模块jy901s偏航角有效。

anquanyuanqqadsy的博客 6171

机器学习实践 之 K-近邻算法

使用此算法的前提: k—紧邻算法属于监督学习算法。监督学习指的就是数据中有样本的标签。即我们知道样本集中的每一数据与所属分类的对应关系。 举个例子:(分类) 属性one 属性two 属性three 标签 aa bb cc x 比如:假设体重、翼展、后背颜色、脚蹼这四个特征可以决定一只鸟属于什么种类。那么这里的体重、翼展、后背颜色、脚蹼这四个属于我们表中的属性。鸟属于什么种类就属...

Pure_boy的博客 365

通过CRC32爆破修改图片的宽高 ctf-misc图片隐写

** 一.在处理图片隐写题的时候,可能会修改图片原有的宽高,导致图片里面的内容无法正常显示,那么怎么判断它的宽高是否被修改了呢? ** 1.把图片拖进010editor中会发现左下角提示CRC不匹配,这是因为修改了高宽,却没有修改CRC,导致读取报错。 2.在linux中CRC32错误的图片是无法打开的,也可以利用pngcheck检查图片,会提示CRC32校验错误 ** 二.既然知道了CRC校验码错误,那么如何修改呢? 首先我们要知道CRC32是有哪些字节构成的 ** PNG文件中总是以固定的八个字节开

weixin_44145452的博客 1万+

边缘设备选型指南:从数据采集到AI推理,工业物联网硬件如何匹配你的需求?

本文提供了一份全面的工业物联网边缘设备选型指南,系统性地阐述了如何根据数据采集、协议兼容性、边缘AI推理算力及环境适应性等核心需求匹配硬件。文章深入剖析了从CPU/GPU/NPU选择到MQTT、Sparkplug B等工业协议支持的实战考量,并强调了软件生态与全生命周期成本的重要性,旨在帮助项目负责人在复杂场景中做出明智决策。

weixin_29168813的博客 88

机器学习算法与Python实践之(一)k近邻(KNN)

机器学习算法与Python实践之(一)k近邻(KNN) zouxy09@qq.com http://blog.youkuaiyun.com/zouxy09 机器学习算法与Python实践这个系列主要是参考《机器学习实战》这本书。因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法。恰好遇见这本同样定位的书籍,所以就参考这本书的过程来...

modabobo 981

使用Kolla部署多节点Rocky版本OpenStack

openstack命令行客户端使用,post-deploy会在 /etc/kolla/目录下生成文件admin-openrc.sh。每次使用openstack命令时执行source /etc/kolla/admin-openrc.sh(manager节点执行)source /etc/kolla/admin-openrc.sh (将文件内容复制到/etc/profile中,即可一直生效)3.2.2 开始安装kolla-ansible,要带上--ignore-installed PyYAML,否则可能会报错。

gyc1206的博客 1926

【Educoder数据挖掘实训】插值填充法处理遗漏值

这关的介绍非常详细,只要看懂了基本就没有问题。 所谓插值其实就是根据已有的数据构造出函数,然后用这个函数来计算遗漏的数据。

JZYshuraK的博客 2387

Android System UI 深度解析:从架构演进到车载 / TV 场景的全维度定制

本文全面解析 Android System UI 的架构设计、功能演进及场景化定制,揭示其作为安卓系统核心交互层的技术特性与生态价值。

学无止境 1579

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

动手实现knn算法

动手实现knn算法 201226 任务描述 本关任务:使用python实现knn算法,并对手写数字进行识别。 相关知识 为了完成本关任务,你需要掌握:1.加权投票,2.knn算法流程。 数据集介绍 手写数字数据集一共有1797个样本,每个样本有64个特征。每个特征的值为0-255之间的像素,我们的任务就是根据这64个特征值识别出该数字属于0-9十个类别中的哪一个。 我们可以使用sklearn直接对数据进行加载,代码如下: from sklearn.datasets import load_digits #加

qq_43720719的博客 1398

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

头歌机器学习---sklearn中的kNN算法

头歌机器学习---sklearn中的kNN算法

liiuyizeliuyize的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

机器学习-6.K近邻

EduCoder平台:机器学习—K近邻 第1关:KNN原理 第2关:K近邻再识 第3关:K近邻小试 编程要求: 请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,计算并输出数字的类型以及数字各属于两类的概率。其中 X 为样本点,y 为其类别(二分类问题),参数 k 的值设置为 3。 代码如下: #引入KNeighborsClassifier模块 from sklearn.neighbors import KNeighborsClassifier X = [[0], [1]

Pretend的博客 4118

头歌(educoder)机器学习 --- k-means

距离度量、什么是质心、k-means算法流程、sklearn中的k-means

qq_46023503的博客 1万+

【Educoder】— 机器学习(聚类第二关)

第二关—主要算法之K-Means 聚类。

qq_51023388的博客 4477

数据挖掘 K近邻

根据离样本最近的几个样本的类型来确定该样本的类型简单流程:1.计算每个样本的距离 2.找出最近K个样本 3.加权得到新的类别。

m0_73660403的博客 1022

机器学习实战——2.k-近邻算法

2.1k-近邻算法概述 k-近邻算法采用测量不同特征值之间的距离进行分类。

RF~or的博客 1591

机器学习:11.机器学习---神经网络

第1关:什么是神经网络 1、 上图中的神经网络一共有多少个权重? A、8 B、12 C、20 D、24 C 第2关:神经元与感知机 #encoding=utf8 import numpy as np #构建感知机算法 class Perceptron(object): def __init__(self, learning_rate = 0.01, max_iter = 200): self.lr = learning_rate self.max_iter =

qq_45795586的博客 4851

numpy学习笔记 1

# encoding=utf-8 #导入numpy 包 import numpy as np def pythonsum(n): # 获取一个n 个元素的数组 a = np.arange(n) b = np.arange(n) c = [] for i in range(len(a)): # a[i]的2次方 a

lixixi 336

KNN算法(k近邻算法)原理及总结

KNN 算法,或者称 k最邻近算法,是有监督学习中的分类算法。它可以用于分类或回归问题,但它通常用作分类算法。

m0_74405427的博客 14万+

第三章 KNN算法原理

k近邻法(K-nearest neighbor,knn)是一种基本分类与回归方法。简单、直观来说,其在给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这个k个实例的多数属于某个类就把该输入的实例分为这个类。因此,k近邻法不具有显式的学习过程。

weixin_43495948的博客 1722
上一篇: educoder Numpy初体验
下一篇: educoder Pandas初体验
木右加木
博客等级 码龄7年 300粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值