机器学习之分类算法k-NN介绍与代码实现(篇三)

K近邻算法(KNN)及案例(Python) 1 算法简介 K近邻算法(英文为K-Nearest Neighbor,因而又简称KNN算法)是非常经典的机器学习算法。 K近邻算法的原理非常简单:对于一个新样本,K近邻算法的目的就是在已有数据中寻找与它最相似的K个数据,或者说“离它最近”的K个数据,如果这K个数据大多数属于某个类别,则该样本也属于这个类别。 (K的含义)以下图为例,假设五角星代表爱情片,三角形代表科幻片。此时加入一个新样本正方形,需要判断其类别。当选择以离新样本最近的3个近邻点(K=3)为判断依据时,这3个点由1个五角星和2个三角形 阅读详情

微信公众号:大数据左右手
专注于大数据技术,人工智能和编程语言
个人既可码代码也可以码文字。欢迎转发与关注

关注我,在公众号回复 "机器学习" 可领取电子书

什么是KNN?

维基百科给出的解释:

在模式识别领域中,最近邻居法(k-NN算法,又译K-近邻算法)是一种用于分类和回归的非参数统计方法。在这两种情况下,输入包含特征空间(Feature Space)中的k个最接近的训练样本

  • 在k-NN分类中,输出是一个分类族群。一个对象的分类是由其邻居的“多数表决”确定的,k个最近邻居(k为正整数,通常较小)中最常见的分类决定了赋予该对象的类别。若k = 1,则该对象的类别直接由最近的一个节点赋予

  • 在k-NN回归中,输出是该对象的属性值。该值是其k个最近邻居的值的平均值

最近邻居法采用向量空间模型来分类,概念为相同类别的案例,彼此的相似度高,而可以借由计算与已知类别案例之相似度,来评估未知类别案例可能的分类
无论是分类还是回归,衡量邻居的权重都非常有用,使较近邻居的权重比较远邻居的权重大。例如,一种常见的加权方案是给每个邻居权重赋值为1/ d,其中d是到邻居的距离。

邻居都取自一组已经正确分类(在回归的情况下,指属性值正确)的对象。虽然没要求明确的训练步骤,但这也可以当作是此算法的一个训练样本集。

k-NN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。k-NN方法在类别决策时,只与极少量的相邻样本有关。由于k-NN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,k-NN方法较其他方法更为适合

k-NN算法流程

  1. 准备数据,对数据进行预处理
    后面代码准备的数据是Iris
    Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类

  2. 选用合适的数据结构存储训练数据和测试元组

  3. 设定参数,如k

  4. 维护一个大小为k的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列

  5. 遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L 与优先级队列中的最大距离Lmax

  6. 进行比较。若L>=Lmax,则舍弃该元组,遍历下一个元组。若L < Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列

  7. 遍历完毕,计算优先级队列中k 个元组的多数类,并将其作为测试元组的类别

  8. 测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k 值

k-NN的一些数学算法

  • 距离度量
    根据选择的距离度量(如曼哈顿距离或欧几里得距离),可计算测试实例与训练集中的每个实例点的距离
    曼哈顿距离
    我们可以定义曼哈顿距离的正式意义为L1-距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和
    例如在平面上,坐标(x1, y1)的点P1与坐标(x2, y2)的点P2的曼哈顿距离为

    欧几里得距离
    欧氏距离也称欧几里得距离或欧几里得度量,是一个通常采用的距离定义,它是在m维空间中两个点之间的真实距离。在二维和三维空间中的欧氏距离的就是两点之间的距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量
    欧氏距离的计算公式
    二维空间

    三维空间


    多维空间

  • k值的选择
    k值的选择会对k近邻法的结果产生重大影响。在应用中,k值一般取一个比较小的数值,通常采用交叉验证法来选取最优的k值

  • 分类决策规则
    k近邻法中的分类决策规则往往是多数表决,即由输入实例的k个邻近的训练实例中的多数类,决定输入实例的类

k近邻算法代码实现

1. 引入依赖

1import numpy as np
2import pandas as pd
3
4# 这里直接引入sklearn里的数据集,iris鸢尾花(上面介绍过)
5from sklearn.datasets import load_iris 
6from sklearn.model_selection import train_test_split  # 切分数据集为训练集和测试集
7from sklearn.metrics import accuracy_score # 计算分类预测的准确率

2. 数据加载和预处理

 1iris = load_iris()
 2
 3df = pd.DataFrame(data = iris.data, columns = iris.feature_names)
 4df['class'] = iris.target
 5df['class'] = df['class'].map({0: iris.target_names[0], 1: iris.target_names[1], 2: iris.target_names[2]})
 6df.head(10)
 7df.describe()
 8x = iris.data
 9y = iris.target.reshape(-1,1)
10print(x.shape, y.shape)

df.describe()数据效果

print(x.shape, y.shape)数据效果

(150, 4) (150, 1)

3. 划分训练集和测试集

 1# 划分训练集和测试集
 2x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=35, stratify=y)
 3
 4print(x_train.shape, y_train.shape)
 5print(x_test.shape, y_test.shape)
 6a = np.array([[3,2,4,2],
 7             [2,1,4,23],
 8             [12,3,2,3],
 9             [2,3,15,23],
10             [1,3,2,3],
11             [13,3,2,2],
12             [213,16,3,63],
13             [23,62,23,23],
14             [23,16,23,43]])
15b = np.array([[1,1,1,1]])
16print(a-b)
17np.sum(np.abs(a - b), axis=1)
18dist = np.sqrt( np.sum((a-b) ** 2, axis=1) )
19print(dist)

结果

(105, 4) (105, 1)
(45, 4) (45, 1)
[[  2   1   3   1]
[  1   0   3  22]
[ 11   2   1   2]
[  1   2  14  22]
[  0   2   1   2]
[ 12   2   1   1]
[212  15   2  62]
[ 22  61  22  22]
[ 22  15  22  42]]
[  3.87298335  22.22611077  11.40175425  26.17250466  
3.12.24744871 221.39783197  71.92357055  54.3783045 ]

4. 核心算法实现

 1# 距离函数定义
 2def l1_distance(a, b):
 3    return np.sum(np.abs(a-b), axis=1)
 4def l2_distance(a, b):
 5    return np.sqrt( np.sum((a-b) ** 2, axis=1) )
 6
 7# 分类器实现
 8class kNN(object):
 9    # 定义一个初始化方法,__init__ 是类的构造方法
10    def __init__(self, n_neighbors = 1, dist_func = l1_distance):
11        self.n_neighbors = n_neighbors
12        self.dist_func = dist_func
13
14    # 训练模型方法
15    def fit(self, x, y):
16        self.x_train = x
17        self.y_train = y
18
19    # 模型预测方法
20    def predict(self, x):
21        # 初始化预测分类数组
22        y_pred = np.zeros( (x.shape[0], 1), dtype=self.y_train.dtype )
23
24        # 遍历输入的x数据点,取出每一个数据点的序号i和数据x_test
25        for i, x_test in enumerate(x):
26            # x_test跟所有训练数据计算距离
27            distances = self.dist_func(self.x_train, x_test)
28
29            # 得到的距离按照由近到远排序,取出索引值
30            nn_index = np.argsort(distances)
31
32            # 选取最近的k个点,保存它们对应的分类类别
33            nn_y = self.y_train[ nn_index[:self.n_neighbors] ].ravel()
34
35            # 统计类别中出现频率最高的那个,赋给y_pred[i]
36            y_pred[i] = np.argmax( np.bincount(nn_y) )
37
38        return y_pred
39
40
41nn_index = np.argsort(dist)
42print("dist: ",dist)
43print("nn_index: ",nn_index)
44nn_y = y_train[ nn_index[:9] ].ravel()
45#print(y_train[:8])
46print("nn_y: ",nn_y)
47print(np.bincount(nn_y))
48print(np.argmax(np.bincount(nn_y)))

结果

dist:  [  3.87298335  22.22611077  11.40175425  26.17250466   3.12.24744871 221.39783197  71.92357055  54.3783045 ]
nn_index:  [4 0 2 5 1 3 8 7 6]
nn_y:  [1 1 2 1 2 2 0 0 1]
[2 4 3]
1

5. 测试

 1# 定义一个knn实例
 2knn = kNN(n_neighbors = 3)
 3# 训练模型
 4knn.fit(x_train, y_train)
 5# 传入测试数据,做预测
 6y_pred = knn.predict(x_test)
 7
 8print(y_test.ravel())
 9print(y_pred.ravel())
10
11# 求出预测准确率
12accuracy = accuracy_score(y_test, y_pred)
13
14print("预测准确率: ", accuracy)

结果

[2 1 2 2 0 0 2 0 1 1 2 0 1 1 1 2 2 0 1 2 1 0 0 0 1 2 0 2 0 0 2 1 0 2 1 0 2
1 2 2 1 1 1 0 0]
[2 1 2 2 0 0 2 0 1 1 1 0 1 1 1 2 2 0 1 2 1 0 0 0 1 2 0 2 0 0 2 1 0 2 1 0 2
1 2 1 1 2 1 0 0]
预测准确率:  0.9333333333333333

 1# 定义一个knn实例
 2knn = kNN()
 3# 训练模型
 4knn.fit(x_train, y_train)
 5
 6# 保存结果list
 7result_list = []
 8
 9# 针对不同的参数选取,做预测
10for p in [1, 2]:
11    knn.dist_func = l1_distance if p == 1 else l2_distance
12
13    # 考虑不同的k取值,步长为2
14    for k in range(1, 10, 2):
15        knn.n_neighbors = k
16        # 传入测试数据,做预测
17        y_pred = knn.predict(x_test)
18        # 求出预测准确率
19        accuracy = accuracy_score(y_test, y_pred)
20        result_list.append([k, 'l1_distance' if p == 1 else 'l2_distance', accuracy])
21df = pd.DataFrame(result_list, columns=['k', '距离函数', '预测准确率'])
22df

最终结果

 k距离函数预测准确率
01l1_distance0.933333
13l1_distance0.933333
25l1_distance0.977778
37l1_distance0.955556
49l1_distance0.955556
51l2_distance0.933333
63l2_distance0.933333
75l2_distance0.977778
87l2_distance0.977778
99l2_distance0.977778

至此k-NN算法介绍完了

机器学习未完待续 ……欢迎关注

微信公众号:大数据左右手
人要去的地方,除了远方,还有未来
欢迎关注我,一起学习,一起进步!

关注我,在公众号回复 "机器学习" 可领取电子书

 

机器学习——K 近邻、K-NN 算法图文详解 K 近邻算法原理、距离度量方法、欧式距离、曼哈顿距离、切比雪夫距离、闵式距离、归一化和标准化、归一化、MinMaxScaler、标准化、StandardScaler、K 值选择问题、GridSearchCV 、分类模型评估方法、留出法、交叉验证法、KFold、分层交叉验证、StratifiedKFold、留一法、自助法、accuracy_score、分类算法评估 阅读详情

相关推荐

C++实现的简单k近邻算法(K-Nearest-Neighbour,K-NN)

K近邻算法(K-Nearest Neighbor,K-NN)的学习和理解 前一段时间学习了K近邻算法,对K近邻算法有了一个初步的了解,也存在一定的问题,下面我来简单介绍一下K近邻算法。

zhazhayaonuli的博客 1万+

K近邻(KNN) | 算法实现

01 KNN可以做点什么呢? 在李航的《统计学习方法》中,详细讲解了一中分类算法:K近邻(K Nearest Neighbor),具体的算法过程和关键点可以参考这篇文章: 统计学习方法 | k近邻法 算法的理论基础有了,下一步就是自己动手去实现了。 今天我们的文章就是利用python去实现KNN算法,利用这套算法可以做什么呢? 比如,我们已经知道一组鸢尾花的花瓣、花萼长宽以及对应的鸢尾花品...

Data Hero 2万+

机器学习_分类算法详解

机器学习中的分类算法是用于将输入数据分配到预定义类别中的算法。分类任务是监督学习的一种,模型根据训练数据中的输入-输出对进行学习,然后预测新的输入数据的类别。我们将详细讲解其中的几种,并提供相应的代码实例。

a6181816的博客 3512

KNN算法介绍及案例

目录一、KNN介绍K-近邻(K-Nearest Neighboor)算法定义理解K近邻总结KNN⼯作流程二、案例实现 作为机器学习中最基础的算法,KNN在简单分类问题上有其独特的优势,其理念类似于中国的成语“近朱者赤,近墨者黑”,这种将特征数字转化为空间距离判断的方法也是我们认识机器学习世界的第一步。 一、KNN介绍 K-近邻(K-Nearest Neighboor)算法定义 如果⼀个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的⼤多数属于某⼀个类别,则该样本也属于这个类别。 理解K近邻

m0_37940048的博客 1万+

应用机器学习(二):k-NN 分类器

本讲介绍 K- 近邻分类器的原理,并将它应用于著名的鸢尾花数据集分类。

wong2016的博客 1万+

K-NN算法

什么是K-NN算法? K-NN算法即K-近邻算法,是机器学习中最简单的一种算法,也是监督学习的一种,可用来处理分类型问题。K-NN秉持“越相近越相似”的原理,其本质就是通过距离判断两个样本是否相似,距离越近越相似,如果足够相似就判定他们同属一个类别。 假设有一个新样本,我们需要确定它的标签类别。那么首先,找到离新样本最近的K个样本,这些样本称之为「近邻」(nearest neighbor);其次,...

weixin_45665031的博客 1707

学习机器学习三 分类模型 k-NN算法

我们接着上一篇继续学习,还是在监督学习的范围内。先讲一下机器学习中最简单的算法之一——k-NN算法。什么是k-NN算法作者举了一个例子,我“填油加醋”的转述下。 假如:湖人队球迷讨厌凯尔特人队球迷,并且不愿与他们做邻居,你搬来我就搬走的地步。凯尔特人队球迷也不喜欢湖人队球迷,不想跟他们做邻居。这时候有个公司在促销凯尔特人队的宣传物品,刚开始一家家敲门推销宣传,可是如果是湖人队球迷它们就会被赶走,...

TOTOLOG的博客 2324

机器学习:分类(Classification)算法

在目前的机器学习工作中,最常见的三种任务就是:回归分析分类分析聚类分析这篇文章的重点是分类(Classification)在机器学习领域中的应用。什么是「分类」虽然我们人类都不喜欢被分类,被贴标签,但数据研究的基础正是给数据“贴标签”进行分类。类别分得越精准,我们得到的结果就越有价值。分类是一个有监督的学习过程,目标数据库中有哪些类别是已知的,分类过程需要做的就是把每一条记录归到对应的类别之中。由...

小数据研究院 1万+

机器学习——K近邻分类算法及python代码实现

《机器学习:公式推导与代码实践》鲁伟著读书笔记。 K近邻(K-nearest neighbor,K-NN)算法是一种经典的监督学习的分类方法。K近邻算法是依据新样本与k个与其相邻最近的样本的类别来进行分类的,所以K近邻算法不像前面所学习到的机器学习其他方法一样,将有标签的样本用来训练模型,而是直接计算新样本与所有样本点的距离来确定分类情况的。K近邻算法的三要素为:k值的选择、距离的度量方式和分类决策规则。 ...

LCW 6885

【机器学习笔记】——k近邻(k-nearest neighbor,k-NN)

目 录 1 k-NN1.1 基本思路1.1.1 距离度量1.1.2 k值的选择1.1.3 决策1.2 基于kd树的k-NN算法1.2.1 构造kd树1.2.2 搜索kd树(基于kd树的k-NN算法)1.2.2.1 基于kd树的最近邻算法1.2.2.2 基于kd树的k-NN算法1.3 k-NN的优缺点1.3.1 优点1.3.2 缺点2 算法实现2.1 原始形式1——自定义二维特征分类数据2.2 原...

孙悟充的博客 1638

声音分类及其实战(一)

玩过CV的都知道猫狗识别,通过输入一张猫狗图片之后经过神经网络就能知道这张图片属于猫还是狗,图像识别的输入是很直观的,这源于我们对图像理性的认识(RGB图像有三个通道,每个通道中每个像素点都是一个数字....)。但声音显然是一个朦胧的概念,声音是如何实现分类的呢?CV有人脸识别,声音也存在声纹识别,这些在人工智能里面都是如何判断的,让我们从一篇简单的声音分类开始吧!

码匀的博客 4735

K-近邻算法(k-NN)的原理及python代码案例实现

1 K-NN算法的原理 1.1 K-NN概念 K Nearest Neighbor算法⼜叫KNN算法, 这个算法是机器学习⾥⾯⼀个⽐较经典的算法, 总体来说KNN算法是相对⽐ 较容易理解的算法。 定义: 如果⼀个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某⼀个类别, 则该样本也属于这 个类别。(起源:KNN最早是由Cover和Hart提出的一种分类算法);俗话就是:根据“邻居”来推断出你的类别。 1.2 基本流程 1)计算已知类别数据集中...

A496608119的博客 2544

CUDA-KNN:CUDA 上的 KNN 算法

CUDA-KNN CUDA 上的 KNN 算法

机器学习——K-NN算法

K-NN算法的原理以及python实现

cdxSunny的博客 1558

GEO数据库数据下载方法总结

#GEO数据下载 GEO是生信分析经常用到的数据库。经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的。 ##方法一:直接从浏览器中下载 以数据集GSE1001为例, 可以直接点击“Series Matrix Files”获取该样本txt格式的表达谱数据,一般我们认为这种处理过的表达谱数据是没有问题的,当然,具体情况具体分析。 打开下载的文件可以看到许多“#”开头的行,这些是注释信息,一般关注这些注释信息中的“data pr

sakoko_的博客 4万+

米哈游 AI产品经理面试题精选:10道高频考题+答案解析(附PDF)

米哈游是全球知名游戏开发商,以《原神》《崩坏》系列著称,专注二次元文化与AI技术创新。本文整理了10道AI产品经理面试题,涵盖Transformer架构、智能NPC设计、机器学习应用、AIGC产品规划等核心领域。题目既考察技术理解(如RAG原理、多模态模型),又关注产品落地(游戏平衡性优化、伦理安全),同时强调跨团队协作能力。参考答案均结合米哈游业务场景,体现技术驱动与玩家体验并重的产品思维,展现AI在游戏行业的创新应用前景。

ZHHHHH15的博客 683

【数据挖掘】K-NN 分类 ( 简介 | 分类概念 | K-NN 分类实例 | K-NN 分类准确度评估 | K-NN 分类结果评价指标 | 准确率 | 召回率 )

I . K-NN 简介 II . K-NN 分类 III . K-NN 分类实例 IV . K-NN 分类 准确性评估方法 V . 保持法 VI . kk-交叉确认法 VII . K-NN 分类结果评价指标 VIII . 分类 判定 二维表 IX . 准确率 X . 召回率 XI . 准确率与召回率关联 XII . 准确率 与 召回率 综合考虑

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 3330

Latext安装(二)WinEdt安装+激活教程

常用的LaTeX安装方案是TeXLive + WinEdt。TeXLive 是LaTeX的运行环境,而 WinEdt 则是编写LaTeX文档的编辑器。安装好TexLive之后,再安装WinEdt。这里介绍的是WinEdt的安装和激活教程。

j_l_sheng的博客 4万+

机器学习算法:K-NN(K近邻算法)

导读 本文[1]将介绍机器学习中的 K-最近邻算法,K-Nearest Neighbors 是一种机器学习技术和算法,可用于回归和分类任务。 1. 简介 K-Nearest Neighbors k-最近邻算法,也称为 kNN 或 k-NN,是一种非参数、有监督的学习分类器,它使用邻近度对单个数据点的分组进行分类或预测。虽然它可以用于回归问题,但它通常用作分类算法,假设可以在彼此附近找到相似点。 对于分类问题,根据比重分配类别标签,即使用在给定数据点周围最多表示的标签。虽然这在技术上被认为是plurality

冷冻工厂 3223

欧姆龙SYSMAC STUDIO如何与基恩士SR-1000进行EIP通信

简要介绍一下扫码枪和欧姆龙sysmac的配置

weixin_42031602的博客 4789

320x240 TFT屏的SPI DMA驱动避坑指南:基于HC32F460的时序调试心得

本文详细介绍了基于HC32F460 MCU驱动320x240 TFT屏的SPI DMA实战经验,涵盖硬件设计、波形诊断、DMA优化及高级调试技巧。重点解析SPI时序配置、DMA缓冲区对齐等常见问题,并提供逻辑分析仪波形诊断方法和性能优化策略,帮助开发者规避典型陷阱,提升显示性能。

weixin_42639246的博客 372

k-NN最近邻算法(k-nearest neighbors algorithm)

本文是一篇k-NN学习笔记,内容如下: 一. k-NN简介 二. k-NN原理 三. 关于 k-NN的进一步讨论 3.1 K的大小怎么选择? 3.2 怎么计算最近“邻居”? 3.3 既然是监督学习,怎么训练? 3.4 k-NN怎么用于回归? 3.5 最后,为什么选择k-NN? 四. k-NN应用-提高约会对象匹配(python) 4.1 读文件,解析特征向量和类别标签 4.2 特征标准化 4.3 画散点图,观察特征 4.4 利用k-NN算法进行分类 ...

wangprince2017 6533

手把手教你学simulink(90.1)--直流电动机实例:基于Simulink的基本模型的直流电动机(DC Motor)建模

直流电动机(DC Motor)因其结构简单、控制方便和良好的调速性能,广泛应用于各种工业自动化、机器人技术、家用电器以及航空航天等领域。为了更好地理解和应用直流电动机的工作原理及其控制系统,本项目旨在通过Simulink对直流电动机进行基本模型的建模与仿真。

MHD0815的博客 441

k-近邻(k-NN)算法 实现手写数字体的识别(完整代码)

本文介绍了使用k-近邻(k-NN)算法实现手写数字识别的Python实现方法。通过调用ScikitLearn内置的NIST数据集(1797个8×8灰度样本),构建了一个人机对抗的"猜数字"游戏。程序采用5轮比赛制,每轮展示随机测试图像,比较人类和k-NN分类器(k=3)的预测准确率。实验结果显示机器以5:4的比分获胜。文章还讨论了k-NN算法原理、数据预处理要点,并提供了完整的Python代码实现,包括图像显示、预测比较和结果统计功能。该方法避免了外部数据集下载,为初学者提供了便捷的手写

Neverfadeaway的博客 871

《30天入门 SAP BTP 开发》教程的目录和使用说明,建议收藏

本教程分为两部分:第一部分为SAP BTP入门系列,包含从基础概念到操作步骤的系统性学习内容,建议零基础用户按顺序学习;第二部分为专题文章集合,涵盖SAP BTP的多个技术点,适合已有基础的用户按需查阅。教程包含账号申请、Global Account操作、Java应用开发、AI工具使用等丰富内容,同时解答常见问题并提供实战案例。所有文章均附带详细链接,便于读者系统学习或针对性查阅。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4408

【WLAN】【调试】再谈如何使用Wireshark解密WiFi数据包——使用TK信息

- 本文介绍了一种wireshark使用TK信息解密空口报文的方式,该方式对是否有关联过程的报文没有要求。

一介草民,只为生活。 1190
上一篇: otter,阿里巴巴分布式数据库同步系统
下一篇: 欢迎关注我的公众号“大数据左右手”,感谢大家支持和鼓励
大数据左右手
博客等级 码龄9年 475粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值