小工具知识网

当前位置: 首页 > 行业知识 > 【机器学习】有监督学习算法之:K最近邻

行业知识

【机器学习】有监督学习算法之:K最近邻

2026-11-07 09:49:09 来源:互联网转载

K最近邻

  • 1、引言
  • 2、决策树
    • 2.1 定义
    • 2.2 原理
    • 2.3 实现方式
      • 2.3.1 距离度量
      • 2.3.2 K值的选择
      • 2.4 算法公式
      • 2.5 代码示例
      • 3、���结

        1、引言

        小屌丝:鱼哥, 这么长时间没更新了,是不是得抓紧时间了。

        小鱼:最近可都是在忙的呢, 这不正在写着呢。

        小屌丝:我这一提醒你,你就说已经开始写了,我要是不提醒你呢

        小鱼:不提醒我,那我照样在写啊。

        小屌丝:…行啊,鱼哥,你这说的我竟然无力反驳。

        小鱼:这就对了哦,今天来分享一下 K最近邻

        小屌丝:؏؏☝ᖗ乛◡乛ᖘ☝؏؏

        2、决策树

        2.1 定义

        K最近邻(K-Nearest Neighbors,简称KNN)是一种基本的机器学习分类与回归方法。

        基本思想:在特征空间中,如果一个实例的大部分近邻都属于某一个类别,则该实例也属于这个类别。

        2.2 原理

        KNN算法的原理相对简单。对于给定的测试实例,基于某种距离度量找出训练集中与其最靠近的K个训练实例,然后统计这K个实例中多数属于的类别,并将其作为预测结果。

        KNN算法的核心在于两点:

        • 如何计算实例之间的距离,
        • 如何选择K值。

          2.3 实现方式

          实现方式有2种,及 距离度量 和 K值选择

          2.3.1 距离度量

          • 距离度量:常用的距离度量有欧氏距离、曼哈顿距离等。
            • 欧氏距离:(d(x, y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2})
            • 曼哈顿距离:(d(x, y) = \sum_{i=1}^{n} |x_i - y_i|)

              2.3.2 K值的选择

              • K值的选择:K值的选择会对预测结果产生很大的影响。如果K值选择过小,可能会导致模型对噪声数据过于敏感;如果K值选择过大,可能会使模型过于简单,忽略数据的局部特征。

                2.4 算法公式

                在K近邻算法中,我们需要使用距离度量方法来计算样本之间的距离。其中,欧氏距离(Euclidean Distance)是应用广泛的一种距离度量方法。

                欧氏距离的计算公式如下:

                d(x, y) = √((x1 - y1)² + (x2 - y2)² + ... + (xn - yn)²)

                其中,d(x, y)表示点x和点y之间的距离。x1, x2, …, xn是点x的n个维度的坐标,y1, y2, …, yn是点y的n个维度的坐标。

                该公式计算的是点x和点y之间的直线距离。

                2.5 代码示例

                # -*- coding:utf-8 -*-# @Time   : 2024-02-21# @Author : Carl_DJ'''实现功能:    使用scikit-learn库实现的KNN分类器'''from sklearn.model_selection import train_test_split  from sklearn.preprocessing import StandardScaler  from sklearn.neighbors import KNeighborsClassifier  from sklearn.datasets import load_iris    # 加载数据集  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)    # 数据标准化  scaler = StandardScaler()  X_train = scaler.fit_transform(X_train)  X_test = scaler.transform(X_test)    # 创建KNN分类器  knn = KNeighborsClassifier(n_neighbors=3)    # 训练模型  knn.fit(X_train, y_train)    # 预测测试集结果  y_pred = knn.predict(X_test)    # 输出预测结果  print(y_pred)

                3、总结

                K最近邻算法是一种简单而有效的机器学习算法,适用于多种分类和回归任务。

                它基于实例学习,不需要显式的训练过程,而是通过计算测试实例与训练实例之间的距离来进行预测。

                然而,KNN算法也存在一些局限性,如对数据的预处理和特征选择较为敏感,计算复杂度较高,特别是当数据集较大时。

                因此,在实际应用中,需要根据具体问题和数据集特点来选择合适的算法和参数。

                我是小鱼:

                • CSDN 博客专家;
                • 阿里云 专家博主;
                • 51CTO博客专家;
                • 多个知名企业认证讲师;
                • 认证金牌面试官;
                • 职场面试培训、职场规划师;
                • 多个国内主流技术社区的认证专家博主;
                • 多款主流产品(阿里云等)测评一、二等奖获得者;

                  关注小鱼,学习机器学习领域的知识。

上一篇:u盾没服务器怎么使用?

下一篇:方舟怎么回原来的服务器?