python机器学习基础K近邻算法详解KNN

Python机器学习基础——K近邻算法详解KNN

1. K近邻算法简介

K近邻算法,简称KNN,是一种基本分类和回归算法,属于有监督学习算法。在分类问题中,KNN算法的工作原理是:给定一个未知样本,基于某种度量方式(如欧氏距离)与训练集中的所有样本相似度,选出K个与该样本最相似的训练样本,然后通过简单多数投票确定该样本属于哪一类。

2. KNN算法实现步骤

K近邻算法的实现步骤如下所示:

  1. 计算测试样本与所有训练样本之间的距离。

  2. 按照距离的大小进行排序,选择与测试样本最近的K个样本。

  3. 统计这K个样本中各个类别出现的次数。

  4. 根据最多的类别确定测试样本的类别。

3. KNN算法的几个重要的参数

KNN算法需要选择的几个重要参数:

  1. K值的选择:K值越小越容易过拟合,K值越大越容易欠拟合。

  2. 距离度量方式的选择:常用的度量方式包括欧氏距离、曼哈顿距离等。

  3. 分类决策规则的选择:一般采用多数表决规则。

4. KNN算法的应用示例

以下是KNN算法的两个应用示例:

示例一:手写数字识别

手写数字识别是机器学习领域中的一个经典问题,KNN算法可以很好地应用在该领域中。

在该示例中,我们使用python中的sklearn库进行手写数字识别。具体实现步骤如下:

import numpy as np
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report

# 加载手写数字数据集
digits = datasets.load_digits()

# 数据归一化处理
X = digits.data / 255
y = digits.target

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

# 进行KNN分类器模型训练
knn = KNeighborsClassifier(n_neighbors=5, metric='euclidean')
knn.fit(X_train, y_train)

# 在测试集上进行模型预测
y_pred = knn.predict(X_test)

# 输出模型的分类性能报告
print(classification_report(y_test, y_pred))

运行以上代码,可以得到该KNN分类器模型的分类性能报告。

示例二:糖尿病诊断

糖尿病是一种常见的代谢性疾病,KNN算法可以应用在糖尿病诊断中。

在该示例中,我们使用python中的sklearn库进行糖尿病诊断。具体实现步骤如下:

import numpy as np
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report

# 加载糖尿病数据集
diabetes = datasets.load_diabetes()

# 数据归一化处理
X = diabetes.data / diabetes.data.max(axis=0)
y = diabetes.target > 140

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

# 进行KNN分类器模型训练
knn = KNeighborsClassifier(n_neighbors=5, metric='euclidean')
knn.fit(X_train, y_train)

# 在测试集上进行模型预测
y_pred = knn.predict(X_test)

# 输出模型的分类性能报告
print(classification_report(y_test, y_pred))

运行以上代码,可以得到该KNN分类器模型的分类性能报告。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python机器学习基础K近邻算法详解KNN - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月7日

相关文章

  • python字典key不能是可以是啥类型

    Python字典key的限制 问题描述 在Python中,字典(dict)是一种非常常用的数据类型,它允许你按照键-值(key-value)的方式存储和访问数据。 字典的键(key)需要是一个可哈希(hashable)的数据类型。但实际上,这还有很多限制,比如有一些数据类型是不能作为键的。本文将详细讲解Python字典key不能是可以是啥类型。 不能作为字典…

    python 2023年5月13日
    00
  • Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享

    Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享 淘宝是中国最大的电子商务平台之一,许多人都会在淘宝上购物。本攻略将介绍如何使用Python模拟登陆淘宝,并统计淘宝消费情况的方法。 1. 安装Python库 我们需要安装Python的selenium、pandas和numpy库。可以使用以下命令进行安装: pip install selenium p…

    python 2023年5月15日
    00
  • python中带有直方图的高级掷骰子模拟器

    【问题标题】:advanced dice roll simulator w/ histogram in pythonpython中带有直方图的高级掷骰子模拟器 【发布时间】:2023-04-01 02:19:02 【问题描述】: 我正在编写一个程序,询问用户骰子的数量和骰子的边数。它计算每个值滚动了多少次,然后将它们放在一个列表中。然后我必须打印列表以及百分…

    Python开发 2023年4月8日
    00
  • 简单了解Python中的几种函数

    简单了解Python中的几种函数 在Python中,函数是一个非常重要的概念,是实现代码复用的重要手段。Python中的函数有很多种类型,包括普通函数、匿名函数、高阶函数等等。本文将简单介绍Python中的几种常见函数类型,并给出相应的代码示例。 普通函数 普通函数是Python中最常见的函数类型,定义格式如下: def function_name(argu…

    python 2023年6月5日
    00
  • Python使用Requests请求网页方式

    以下是关于Python使用Requests请求网页方式的攻略: Python使用Requests请求网页方式 requests是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接收响应。以下是Python使用Requests请求网页方式的攻略: 发送GET请求 以下是使用requests库发送GET请求的示例: import requests ur…

    python 2023年5月14日
    00
  • 解决python和pycharm安装gmpy2 出现ERROR的问题

    解决Python和PyCharm安装gmpy2出现ERROR的问题 在使用Python和PyCharm安装gmpy2时,有时会出现ERROR的问题,导致无法正常使用该模块。本文将详细讲解解决Python和PyCharm安装gmpy2出现ERROR的问题的完整攻略,包括安装依赖库使用wheel文件安装等方法。 安装依赖库 在安装gmpy2之前,需要先安装一些赖…

    python 2023年5月13日
    00
  • python 中文字符串的处理实现代码

    下面我将为您详细讲解关于Python中文字符串的处理实现代码的攻略。 一、Python中文字符串的处理方法 在Python中,如果字符串中包含中文字符,我们涉及到一些与编码和解码有关的问题。下面介绍几个重要的问题和其相应的处理方法: 1.1 字符串编码问题 在Python中,我们可以通过指定字符集(如UTF-8、GBK等)来编码和解码字符串。如果不指定字符集…

    python 2023年5月20日
    00
  • 分享python 写 csv 文件的两种方法

    下面是分享Python写CSV文件的两种方法的攻略: 方法1:使用csv模块写入CSV文件 导入csv模块 import csv 创建CSV文件 假设我们要写入一个名为“data.csv”的CSV文件,我们可以通过以下代码创建它: with open(‘data.csv’, mode=’w’, newline=”) as csv_file: writer …

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部