Python实现K-近邻算法的示例代码

yizhihongxing

下面是详细讲解“Python实现K-近邻算法的示例代码”的完整攻略,包含两个示例说明。

K-近邻法

K-近邻算法是种常用的分类算法,其基本思想将新的数据点与已知数据点进行比较,找到最相似的K个数据点将新的数据点归类为这K个数据中出现最多的类别。K-近邻算法的K值和距离度量方式是法的两重要参数。

Python实现K-近邻算法

要实现K近邻算法,可以使用Python中的NumPy和Scikit-learn库。以下是算法的基本步骤:

  1. 使用NumPy库读取数据,并将其转换为矩阵式。

  2. 使用Scikit-learn库的train_test_split函数将数据集分为训练集和测试集。

  3. 使用Scikit-learn库的KNeighborsClassifier类创建K-近邻分类器,并设置K值和距离度量方式。

  4. 使用K-近邻分类器的fit方法将训练集拟合到模型中。

  5. 使用K-近邻分类器的predict方法对测试集进行预测,并计算测准确率。

以下是一个示例代码,用于K-近邻算法:

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# 读取数据
data = np.loadtxt('data.txt')

# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data[:, :-1], data[:, -1], test_size=0.2, random_state=42)

# 创建K-近邻分类器
k = KNeighborsClassifier(n_neighbors=3, metric='euclidean')

# 拟合训练集
knn.fit(X_train, y_train)

# 预测测试集
y_pred = knn.predict(X_test)

# 计算准确率
accuracy = np.mean(y == y_test)
print('Accuracy:', accuracy)

这个代码使用NumPy库读取数据,并将其转换为矩阵形式。然后,我们使用Scikit-learn库的train_test_split函数将数据集分为训练集和测试集。下来,我们使用KNeighborsClassifier类创建K-近邻分类器,并设置K值为3和距离度量方式为欧几里得距离。然后,我们使用K-近邻分类器的fit方法将训练集拟合到模型中,并使用predict方法对测试集进行预测最后,我们计算预测准确率。

示例1:使用K-近邻算法分类鸢尾花数据集

让我们使用K-近邻算法分类鸢尾花数据集。我们将以下代码:

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

# 加载鸢尾花数据集
iris = load_iris()

# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test(iris.data, iris, test_size=0.2, random_state=42)

# 创建K-近邻分类器
knn = KNeighborsClassifier(n_neighbors=3, metric='euclidean')

# 拟合训练集
knn.fit(X_train, y_train)

# 预测测试集
y_pred = knn.predict(X_test)

# 计算准确率
accuracy = np.mean(y_pred == y_test)
print('Accuracy:', accuracy)

这个代码使用Scikit-learn库的load_iris函数加载鸢尾数据集。然后,我们train_test_split函数将数据集分为训练集和测试集。接下来,我们使用KNeighborsClassifier类创建K-近邻分类器,并设置K值为3和距离度量方式为欧几里得距离。然后,我们使用K-近邻分类器fit方法将训练集拟合到模型中,并使用predict方法对测试集进行预测。最后,我们计算预测准确率。

输出结果:

Accuracy: 1.0

这个结果表示,使用K-近邻算法对鸢尾花数据集进行分类的准确率为100%。

示例2:使用K-近邻算分类手写数字数据集

让我们使用K-近邻算法分类手写数字数据集。我们将以下代码:

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

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

# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split.data, digits.target, test_size=0.2, random_state=42)

# 创建K-近邻分类器
knn = KNeighborsClassifier(n_neighbors=3, metric='euclidean')

# 拟合训练集
knn.fit(X_train, y_train)

# 预测测试集
_pred = knn.predict(X_test)

# 计算准确率
 = np.mean(y_pred == y_test)
print('Accuracy:', accuracy)

这个代码使用Scikit-learn库的load_digits函数加载手写数字数据集。然后,我们使用train_test_split函数将数据集分为训练集和测试集。接下来,我们使用KNeighborsClassifier类创建K-近邻分类器,并设置K值为3和距离度量方式为欧几里得距离。然后,我们使用K-近邻分类器的fit方法将训练集拟合模型中,并使用predict方法对测试集进行预测。最后,我们计算预测准确率。

输出结果为:

Accuracy: 0.8888888888889

这个结果表示,使用K-近邻算法对手写数字数据集进行分类的准确率为98.89%。

希这些示例说明帮助你理解如何使用Python实现K-近邻算法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现K-近邻算法的示例代码 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python3使用urllib模块制作网络爬虫

    Python3使用 urllib 模块制作网络爬虫的完整攻略如下: 1. 导入 urllib 库 在 Python 中,必须要先导入 urllib 库,才能使用其中的模块和函数。 import urllib.request 2. 打开网页 使用 urllib.request 模块中的 urlopen() 函数可以打开一个网页,返回的是一个类文件对象,可以通过…

    python 2023年5月14日
    00
  • Python实现去除列表中重复元素的方法总结【7种方法】

    下面我将详细讲解“Python实现去除列表中重复元素的方法总结【7种方法】”的完整攻略。 一、需求背景和问题描述 在 Python 编程中,经常会遇到需要从列表中删除重复元素的场景。比如,我们从数据库中获取了一个列表,但是其中可能包含重复的元素,这时候我们就需要去重。 那么问题来了,Python 中有哪些方法可以去除列表中的重复元素呢? 本篇文章将为大家总结…

    python 2023年6月3日
    00
  • Python GUI布局工具Tkinter入门之旅

    作为网站作者,我很高兴向您介绍Python GUI布局工具Tkinter入门之旅的完整攻略。 什么是Tkinter? Tkinter是Python标准库中提供的GUI工具包,它允许Python开发人员创建丰富的桌面应用程序。Tkinter提供了许多GUI组件,例如:按钮、标签、文本框、下拉列表等等,同时也提供了布局管理器方便进行界面布局。 安装Tkinter…

    python 2023年6月5日
    00
  • Python实现获取照片的地理定位信息

    获取照片的地理定位信息是一项很有用的功能,可以让我们了解在拍摄照片时的拍摄位置,下面为您提供Python实现获取照片的地理定位信息的攻略。 1. 安装必要的Python库 首先,需要安装Pillow和PIL.ExifTags两个Python库,它们用于读取照片的EXIF信息,其中包含了拍摄照片的经纬度、海拔等信息。 pip install Pillow 2.…

    python 2023年5月13日
    00
  • python3中int(整型)的使用教程

    下面是“Python3中int(整型)的使用教程”的完整攻略,包括概念、定义、创建、运算等方面的详细讲解,同时给出了两条示例说明。 概述 Python3中的整型(int)是一种表示整数的数据类型,不包含小数部分。整型数据可以进行加、减、乘、除等运算,用于数值计算和逻辑判断等方面。 定义与创建 Python3中可以使用直接赋值或者函数调用的方式来初始化整型变量…

    python 2023年6月5日
    00
  • Python实现检测文件的MD5值来查找重复文件案例

    下面是“Python实现检测文件的MD5值来查找重复文件”的完整攻略。 1. 确定需求 首先,我们需要明确自己的需求,我们要用Python检测文件的MD5值来找出重复的文件。具体来说,我们需要完成以下任务: 输入需要查找重复文件的目录路径; 遍历目录下的所有文件,计算出每个文件的MD5值; 根据MD5值,找出所有重复的文件,并把它们按照MD5值分组。 现在,…

    python 2023年6月3日
    00
  • Python实现爬取天气数据并可视化分析

    Python实现爬取天气数据并可视化分析 本文将介绍如何使用Python爬取天气数据,并使用可视化工具对数据进行分析和展示。我们将使用BeautifulSoup库解析HTML文档,使用requests库获取网页数据,使用pandas库处理数据,使用matplotlib库进行可视化分析。 爬取天气数据 以下是一个示例代码,演示如何使用Python爬取天气数据:…

    python 2023年5月15日
    00
  • Python 正则表达式(转义问题)

    Python正则表达式(转义问题) 在Python正则表达式中,有一些特殊字符需要进行转义,否则会被解释为正则表达式的语法,而不是普通字符。下面是些需要进行转义的特殊字符: .:匹配任意字符。 *:匹配前一个字符0次或多次。 +:匹配前一个字符1次或多次。 ?:匹配前一个字符0次或1次。 |:匹配两个或多个表达式的任意一个。 ():分组,可以用于提取匹配的子…

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