当前位置: 首页 > article >正文

KNN算法介绍及代码实例

KNN算法工作原理

  1. 算法概述

    • 给定一个数据点,通过计算它与训练集中每个点的距离,找到距离最近的K个点。
    • 通过这些邻居点的标签或值,决定该数据点的预测结果。
  2. 分类任务

    • 使用K个邻居中多数类别的标签作为新数据点的预测类别。
  3. 回归任务

    • 使用K个邻居的平均值作为新数据点的预测值。
  4. 距离度量

    • 常用欧几里得距离公式: d = \sqrt{\sum_{i=1}^n (x_i - y_i)^2}
    • 除欧几里得距离外,曼哈顿距离、切比雪夫距离等。

实例

利用sklearn数据库得鸢尾花数据集为例,进行检测模型训练和目标分类预测。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 1. 加载数据集
data = load_iris()
X, y = data.data, data.target  # 特征和标签

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

# 3. 定义KNN分类器
k = 5  # K值
knn = KNeighborsClassifier(n_neighbors=k)

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

# 5. 进行预测
y_pred = knn.predict(X_test)

# 6. 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"KNN分类准确率: {accuracy:.2f}")

# 7. 示例单点预测
sample_point = [5.1, 3.5, 1.4, 0.2]  # 一个新的数据点
predicted_class = knn.predict([sample_point])
print(f"新样本预测类别: {data.target_names[predicted_class[0]]}")


http://www.kler.cn/a/401449.html

相关文章:

  • 《设计模式》创建型模式总结
  • 博客文章怎么设计分类与标签
  • 基于Java Springboot网上花卉购物系统
  • 《探索 C++:一门强大且多功能的编程语言》
  • web——upload-labs——第十关——.空格.绕过
  • java itext后端生成pdf导出
  • 大学作业:城市PM2.5预测分析数据挖掘大作业资源源码免费下载
  • 集合的概念及练习
  • 炼码LintCode--数据库题库(级别:中等;数量:更新中~)--刷题笔记_03
  • 【Three.js基础学习】26. Animated galaxy
  • Dubbo源码解析-服务导出(四)
  • chatGPT是如何使用tensrFlow训练模型的?
  • 【数据分享】1981-2024年我国逐日最低气温栅格数据(免费获取)
  • CSS3中的弹性布局之侧轴的对齐方式
  • 梧桐数据库深入探索递归查询的强大功能
  • Excel——宏教程(精简版)
  • EMall实践DDD模拟电商系统总结
  • 学习整理在php中一个二维数组按另一个一维数组顺序排序
  • 【OpenCV】Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
  • C++ 对函数的详细记录 【雨露均沾】
  • 【UGUI】Unity 游戏开发:背包系统初始化克隆道具
  • CFD 应用于分离过程:旋风分离器(第 2 部分)
  • 服务器上Cuda+Pytorch兼容性的那些问题
  • 鸿蒙学习生态应用开发能力全景图-鸿蒙开发套件(2)续集 OS 开放能力集
  • 跨平台WPF框架Avalonia教程 二
  • Java学习笔记--数组常见算法:数组翻转,冒泡排序,二分查找