首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【机器学习 | 基于实例学习】经典算法—KDD算法详解

【机器学习 | 基于实例学习】经典算法—KDD算法详解

作者头像
计算机魔术师
发布于 2023-12-18 04:38:37
发布于 2023-12-18 04:38:37
47800
代码可运行
举报
文章被收录于专栏:计算机魔术师计算机魔术师
运行总次数:0
代码可运行

🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

深度学习 | 核心概念】那些深度学习路上必经的核心概念,确定不来看看? (一) 作者: 计算机魔术师 版本: 1.0 ( 2023.8.27 )


摘要: 本系列旨在普及那些深度学习路上必经的核心概念,文章内容都是博主用心学习收集所写,欢迎大家三联支持!本系列会一直更新,核心概念系列会一直更新!欢迎大家订阅

基于实例学习

KDD

K最近邻(K Nearest Neighbors,简称KNN)算法是一种常用的分类和回归算法。它基于实例之间的相似性进行预测,即通过找到距离新样本最近的K个训练样本,根据这K个样本的标签来预测新样本的标签。

下面是KNN算法的详细步骤

  1. 计算训练样本中每个样本与其他样本的距离。常用的距离度量方法是欧氏距离(Euclidean Distance),它可以通过以下公式计算:
d(x,y)= ni=1(xiyi)2

其中,

x

y

分别是两个样本的特征向量,

n

是特征的数量。

  1. 对距离进行排序,选择距离最近的K个样本作为邻居。

在面对问题一般通过投票(加权)、平均方法。

  1. 对于分类问题,使用投票法(Voting)确定新样本的标签。即,根据K个最近邻居的标签中出现次数最多的标签作为预测结果。如果存在多个标签出现次数相同的情况,可以随机选择其中一个标签。
  2. 对于回归问题,使用平均法(Averaging)确定新样本的标签。即,计算K个最近邻居的标签的平均值作为预测结果。

下面是使用Python实现KNN算法的示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用sklearn库的KNN模型
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载经典的鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建KNN分类器模型
knn = KNeighborsClassifier(n_neighbors=3)

# 训练模型
knn.fit(X_train, y_train)

# 预测
y_pred = knn.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)

不使用库的KNN实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 不使用库的KNN实现
import numpy as np

# 计算欧氏距离
def euclidean_distance(x1, x2):
    return np.sqrt(np.sum((x1 - x2) ** 2))

# KNN算法
class KNN:
    def __init__(self, k=3):
        self.k = k

    def fit(self, X, y):
        self.X_train = X
        self.y_train = y

    def predict(self, X):
       ```python
        y_pred = [self._predict(x) for x in X]
        return np.array(y_pred)

    def _predict(self, x):
        # 计算距离
        distances = [euclidean_distance(x, x_train) for x_train in self.X_train]
        # 对距离排序并获取最近的K个邻居的索引
        k_indices = np.argsort(distances)[:self.k]
        # 获取最近的K个邻居的标签
        k_labels = [self.y_train[i] for i in k_indices]
        # 进行投票,确定标签
        most_common = np.argmax(np.bincount(k_labels))
        return most_common
    
# 使用示例
X_train = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6], [9, 11]])
y_train = np.array([0, 0, 1, 1, 0, 1])

knn = KNN(k=3)
knn.fit(X_train, y_train)

X_test = np.array([[3, 4], [5, 6], [0, 0]])
y_pred = knn.predict(X_test)

print("预测结果:", y_pred)

相关学习资源:

李航,《统计学习方法》

Trevor Hastie, Robert Tibshirani, Jerome Friedman,《The Elements of Statistical Learning》

Sebastian Raschka, Vahid Mirjalili,《Python Machine Learning》

Scikit-learn官方文档:https://scikit-learn.org/stable/modules/neighbors.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
K 值选对,准确率翻倍:KNN 算法调参的黄金法则
K 近邻算法(K-Nearest Neighbors, KNN)是机器学习中最简单、最直观的算法之一,其核心思想源于人类对相似事物的判断逻辑 ——“近朱者赤,近墨者黑”。该算法无需复杂的训练过程,直接通过计算样本间的距离来进行分类或回归,广泛应用于图像识别、文本分类、推荐系统等领域。
羑悻的小杀马特.
2025/06/01
3250
K 值选对,准确率翻倍:KNN 算法调参的黄金法则
机器学习之入门但门被焊死 分类KNN算法实现
对于一个马上要毕业的大四学生来说,突然由后端转学机器学习,学起来好难,尤其是回归那里,数学好难!!!!!!!! 因为回归的公式太难搞了,这里先整理一手分类的入门算法,KNN。
小王不头秃
2024/06/19
2250
04_有监督学习--分类模型--K 近邻(kNN)
有监督学习--分类模型--K 近邻(kNN)0.引入依赖1.数据的加载和预处理2.核心算法实现3.测试4.自动化测试
黑泽君
2019/05/19
5820
04_有监督学习--分类模型--K 近邻(kNN)
机器学习-撰写我们自己的第一个分类器
今天我们要做一件特别的事,从头开始撰写我们自己的分类器,如果你刚开始接触机器学习,这是一个重要的里程碑。因为如果你能跟上进度并独立完成,这意味着你已学会机器学习谜团里最重要的一块。今天我们要撰写的分类器是k-NN算法的简化版:它是最简单的分类器之一。
XXXX-user
2019/09/04
5690
机器学习-撰写我们自己的第一个分类器
机器学习神器Scikit-Learn入门教程
本篇文章通过简明快要的方式来介绍scikit-learn的使用,更多详细内容请参考官网:
算法进阶
2022/06/02
8570
机器学习神器Scikit-Learn入门教程
python实现kNN(最近邻)
最近邻可以用于分类和回归,这里以分类为例。给定一个训练集,对新输入的实例,在训练数据集中找到与该实例最接近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类
西西嘛呦
2020/08/26
7950
python实现kNN(最近邻)
机器学习神器Scikit-Learn极简入门教程
Scikit-learn是一个非常知名的Python机器学习库,它广泛地用于统计分析和机器学习建模等数据科学领域。
皮大大
2022/01/12
2.7K0
机器学习神器Scikit-Learn极简入门教程
[scikit-learn 机器学习] 3. K-近邻算法分类和回归
1. KNN模型 确定距离度量方法(如欧氏距离) 根据 K 个最近的距离的邻居样本,选择策略做出预测 模型假设:距离相近的样本,有接近的响应值 2. KNN分类 根据身高、体重对性别进行分类 import numpy as np import matplotlib.pyplot as plt X_train = np.array([ [158, 64], [170, 86], [183, 84], [191, 80], [155, 49], [163, 59
Michael阿明
2020/07/13
5350
[scikit-learn 机器学习] 3. K-近邻算法分类和回归
机器学习模型从理论到实战|【004-K最邻近算法(KNN)】基于距离的分类和回归
文章链接:https://cloud.tencent.com/developer/article/2472164
远方2.0
2024/11/30
2550
机器学习模型从理论到实战|【004-K最邻近算法(KNN)】基于距离的分类和回归
机器学习之kNN算法
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
润森
2019/09/09
1.2K0
机器学习之kNN算法
Scikit-Learn Cheat Sheet:Python机器学习
一个方便的scikit-learn备忘录,用于使用Python进行机器学习,包括代码示例。
iOSDevLog
2018/07/25
1.5K0
Scikit-Learn Cheat Sheet:Python机器学习
Python基础算法解析:K最近邻算法
K最近邻(K-Nearest Neighbors,简称KNN)是一种简单而有效的监督学习算法,常用于分类和回归问题。本文将介绍KNN算法的原理、实现步骤以及如何使用Python进行KNN的编程实践。
Echo_Wish
2024/03/17
3550
分类-KNN算法(代码复现和可视化)
K近邻(K Nearest Neighbors,KNN)算法是最简单的分类算法之一,也就是根据现有训练数据判断输入样本是属于哪一个类别。
唔仄lo咚锵
2022/10/04
1K0
分类-KNN算法(代码复现和可视化)
完全汇总,十大机器学习算法!!
接下来我会从每个算法模型的介绍、基本原理、优缺点以及适用场景注意叙述,最后会基于开源数据集给出一个比较入门型的案例供大家学习~
Python编程爱好者
2024/04/12
6780
完全汇总,十大机器学习算法!!
机器学习入门基础知识汇总
机器学习(Machine Learning,简称 ML)是人工智能(AI)领域的重要组成部分,涉及使用算法从数据中提取模式并进行预测。随着数据量的快速增长和计算能力的提升,机器学习在各个领域都有着广泛的应用,如金融、医疗、自动驾驶等。在学习机器学习的过程中,掌握一些基础知识是非常重要的。本文将介绍机器学习的核心概念、常见算法以及如何在实际问题中应用这些知识。
一键难忘
2025/01/25
6860
【机器学习基础】k近邻算法
  本文就将介绍一个最基本的分类和回归算法:k近邻(k-nearest neighbor, KNN)算法。KNN是最简单也是最重要的机器学习算法之一,它的思想可以用一句话来概括:“相似的数据往往拥有相同的类别”,这也对应于中国的一句谚语:“物以类聚,人以群分”。具体来说,我们在生活中常常可以观察到,同一种类的数据之间特征更为相似,而不同种类的数据之间特征差别更大。例如,在常见的花中,十字花科的植物大多数有4片花瓣,而夹竹桃科的植物花瓣大多数是5的倍数。虽然存在例外,但如果我们按花瓣数量对植物做分类,那么花瓣数量相同或成倍数关系的植物,相对更可能属于同一种类。
Francek Chen
2025/01/22
3720
【机器学习基础】k近邻算法
机器学习第14天:KNN近邻算法
我们设置模型选择周围的三个点,可以看到最近的三个都是蓝色点,那么模型就会将新的数据判别为蓝色点
Nowl
2024/01/18
1720
机器学习第14天:KNN近邻算法
机器学习(二十)贪心学院ML训练营学习1 -KNN算法
K-邻近算法采用测量不同特征值之间的距离方法进行分类,工作原理是:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,意思是我们知道样本集中的每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据的分类标签。选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
致Great
2019/07/04
1.2K0
机器学习(二十)贪心学院ML训练营学习1 -KNN算法
k最近邻kNN算法入门
k最近邻(kNN)算法是机器学习中最简单、最易于理解的分类算法之一。它基于实例之间的距离度量来进行分类,并且没有显式的训练过程。本文将介绍k最近邻算法的基本原理和使用方法,并通过一个示例来说明其应用过程。
大盘鸡拌面
2023/10/30
4610
ML算法——KNN随笔【全国科技工作者日创作】【机器学习】
它是机器学习中唯一一个不需要训练过程的算法,它在训练阶段只是把数据保存下来,训练时间开销为 0,等收到测试样本后进行处理。
来杯Sherry
2023/05/31
5220
ML算法——KNN随笔【全国科技工作者日创作】【机器学习】
相关推荐
K 值选对,准确率翻倍:KNN 算法调参的黄金法则
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档