首页 > 编程语言 >k近邻算法

k近邻算法

时间:2023-03-14 12:36:16浏览次数:37  
标签:__ 近邻 Xd 算法 train predicted test import


如果一个样本在特征空间中的k个最“相似”
(即特征空间中最邻近)的样本中的大多数属于某一个类别,
则该样本也属于这个类别

相似度:即两个点的距离来衡量 距离越近 越近 相似度越高

K近临 算法步骤

  1. 计算已知类别数据集中的点与当前点之间的距离;
  2. 按照距离递增次序排序;
  3. 选取与当前点距离最小的k个点;
  4. 确定前k个点所在类别的出现频率;
  5. 返回前k个点出现频率最高的类别作为当前点的预测分。
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

if __name__ == '__main__':

# 加载测试数据
dataset = load_iris()
X = dataset.data
y = dataset.target

# 将数组或矩阵拆分为 随机训练 和 测试子集
Xd_train, Xd_test, y_train, y_test = train_test_split(X, y, random_state=14)

# 使用 K近邻 算法
# KNeighborsClassifier是K近邻算法的一个类,一般都使用欧式距离进行测量
# n_neighbors:就是选取最近的点的个数:k
# leaf_size:这个是构造树的大小,值一般选取默认值即可,太大会影响速度。
# n_jobs :默认值1,选取 - 1 占据CPU比重会减小,但运行速度也会变慢,所有的core都会运行。
# 使用X作为训练数据 和 y作为目标值来拟合模型
clf = KNeighborsClassifier(n_neighbors=3).fit(Xd_train, y_train)

y_predicted = clf.predict(Xd_test)

# 准确率
accuracy = np.mean(y_predicted == y_test) * 100

print("y_test ", y_test) # 测试数据
print("y_predicted", y_predicted) # 预测数据
print("accuracy:", accuracy) # 准确率

k近邻算法_相似度


标签:__,近邻,Xd,算法,train,predicted,test,import
From: https://blog.51cto.com/u_16006123/6120308

相关文章

  • SM2算法功能简述(一) 数字签名生成流程
    SM2数字签名算法由一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。每个签名者有一个公钥和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名。在......
  • TCP常见的拥塞控制算法
    TCP常见的拥塞控制算法有四种,即慢启动(slow-start)、拥塞避免(congestion-avoidance)、快重传(fastretransmit)、快恢复(fastrecovery)。它们的目的是根据网络的拥塞程度动态调整......
  • 网络社群发现算法挖掘bilibili视频流量数据可视化|附代码数据
    原文链接:https://tecdat.cn/?p=19006最近我们被客户要求撰写关于bilibili视频流量数据的研究报告,包括一些图形和统计输出。最新研究表明,中国有超过7亿人在观看在线视频内......
  • 【LeetCode回溯算法#11】解数独,这次是真的用回溯法处理二维数组
    解数独力扣题目链接(opensnewwindow)编写一个程序,通过填充空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。数字1-9在每一列只......
  • 优化算法
    梯度更新:随机梯度,minbath梯度,全量梯度动量法:引入一阶动量,动量法是为了解决传统的梯度下降算法收敛很慢的问题。相当于每次在进行参数更新的时候,都会将之前的速度考虑进来,......
  • java基础-排序算法&&二维数组
    1、冒泡排序--升序原理:每次比较相邻两数小的交换到前面每轮结束后最大的数交换到最后口诀:冒泡排序速记口诀(升序)n个数字来排队......
  • 算法工程师的效率神器——vim篇
    一只小狐狸带你解锁炼丹术&NLP秘籍我相信,有很多小伙伴在看到这篇文章时就有了很多问号:用vim?疯了吧?sublime不香吗?pycharm不香吗?jupyternotebook不香吗?我这可是最新版的windo......
  • Deep-DRM算法理解
    title:GCN学习笔记categories: -生物信息学date:2023-03.13hidden:truemathjax:trueGCNGCN(GraphConvolutionalNetwork),图卷积网络,是深度学习算法应用最成......
  • 代码随想录算法Day41 | 343. 整数拆分 , 96.不同的二叉搜索树
    343.整数拆分题目链接:343.整数拆分-力扣(LeetCode)思路动规五部曲,分析如下:确定dp数组(dptable)以及下标的含义dp[i]:分拆数字 i,可以得到的最大乘积为dp[i]。确......
  • 常见的加密算法
    常见的加密算法目前常见的加密算法分类如下:1,单向散列加密算法  常见算法包括:MD5、sha1、sha256等2,对称加密算法  常见的算法有:DES、3DES、AES3,非对称加密算......