Python代码实现KNN算法

yizhihongxing

Python代码实现KNN算法

KNN(K-Nearest Neighbors)是一种常用的分类算法,它的基本思想是:对于一个未知样本,找与最近的K个已知样本,然后根据这K个样本的类别进行分类。Python中,可以使用scikit-learn库实现KNN分类算法。本文将详细讲解Python实现KNN分类算法的完整攻略,包括算法原理、Python实现过程和示例。

算法原理

KNN算法的基本思想是:对于一个未知样本,找到与其最近的K个已知样本,然后根据这K个样本的类别进行分类。KNN算法的实现过程如下:

  1. 计算未知样本每个已知样本之间的距。
  2. 选取距离最近的K个已知样本。
  3. 根据这K个样本类别进行分类,通常采用数表决法。

Python实现过程

在Python中,可以使用scikit-learn库实现KNN分类算法。以下是使用scikit-learn库实现KNN分类算法的示例代码:

from sklearn.neighbors import KNeighborsClassifier

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

# 训练模型
X_train = [[0, 0], [1, 1], [2, 2], [3, 3]]
y_train = [0, 0, 1, 1]
knn.fit(X_train, y_train)

# 测试新样本
X_test = [[1.5, 1.5], [2.5, 2.5]]
y_pred = knn.predict(X_test)

# 输出预测结果
print(y_pred)

上述代码中,首先导入KNeighborsClassifier。然后,创建KNN分类器,设置K值为3。接着,使用训练数据训练模型。最后,使用测试数据进行预测,并输出预测结果。

示例1:鸢尾花分类

假设有一组鸢尾花数据,包括花萼长度、花萼宽度、花瓣长度和花瓣宽度等特征需要使用KNN算法对其进行分类。可以使用以下代码实现:

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

# 加载数据
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.3, random_state=42)

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

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

# 预测新样本
y_pred = knn.predict(X_test)

# 输出预测准确率
print("Accuracy: ", accuracy_score(y_test, y_pred))

执行上述代码后,可以得到以下输出结果:

Accuracy:  0.9777777777777777

示例2:手写数字识别

假设有一组手写数字数据,需要使用KNN算法对其进行分类。可以使用以下代码实现:

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

# 加载数据
digits = load_digits()
X = digits.data
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=3)

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

# 预测新样本
y_pred = knn.predict(X_test)

# 输出预测准确率
print("Accuracy: ", accuracy_score(y_test, y_pred))

执行上述代码后,可以得到以下输出结果:

Accuracy:  0.9888888888888889

总结

本文详讲解了Python实现KNN分类算法的完整攻略,包括算法原理、Python实现过程和示例。KNN算法是一种常用的分类算法,它的基本思想是:对于一个未知样本,到与其最近的K个已样本,然后根据K个样本的类别进行分类。在Python中,可以使用scikit-learn库实现KNN分类算法,具体实现过程如上述所示。通过示例,我们看到KNN算法在实应用中的灵活性和实用。

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

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

相关文章

  • django项目简单调取百度翻译接口的方法

    以下是详细讲解“django项目简单调取百度翻译接口的方法”的完整攻略。 1. 创建Django项目 首先,在命令行中创建一个Django项目,命令如下: django-admin startproject myproject 其中,myproject 是项目名称,你可以按照自己的喜好来命名。 2. 安装百度翻译接口的Python SDK 百度翻译接口提供了…

    python 2023年6月5日
    00
  • Python3时间转换之时间戳转换为指定格式的日期方法详解

    Python3时间转换之时间戳转换为指定格式的日期方法详解 什么是时间戳? 在计算机中,时间戳指的是从某个固定的时间点开始到现在的某个时间的总秒数。在Python中,我们可以使用time模块来获取当前时间的时间戳,如下所示: import time timestamp = time.time() print(timestamp) 输出结果为: 1627943…

    python 2023年6月2日
    00
  • 让python在hadoop上跑起来

    让我们来详细讲解如何让Python在Hadoop上能够运行。这个过程分为以下几个步骤: 安装Hadoop 首先需要安装Hadoop,可以从官网下载并按照说明进行安装。具体安装步骤可参考Hadoop官方文档。 Hadoop开启伪分布式模式 为了简化操作,我们可以选择在本地使用Hadoop的伪分布式模式,即将Hadoop运行在单台机器上,模拟分布式的环境。 具体…

    python 2023年6月3日
    00
  • Python中实现两个字典(dict)合并的方法

    在Python中,合并两个字典(dict)的方法有多种,下面将介绍其中三种比较常用的方法。 方法一:update方法 Python中的update()方法可以将一个字典合并到另一个字典中。 # 示例1 dict1 = {‘name’: ‘Lucy’, ‘age’: 18} dict2 = {‘gender’: ‘female’, ‘height’: ‘168…

    python 2023年5月13日
    00
  • 如何在Python中查询MongoDB数据库中的数据?

    以下是在Python中查询MongoDB数据库中的数据的完整使用攻略。 使用MongoDB数据库的前提条件 在使用Python连接MongoDB数据库之前,确保已经了MongoDB数据库,并已经创建使用数据库和集合,同时需要安Python的驱动程序,例如pymongo。 步骤1:导模 在Python中使用pymongo模块连接MongoDB数据库。以下是导入…

    python 2023年5月12日
    00
  • pandas merge报错的解决方案

    以下是关于“pandas merge 报错的解决方案”的完整攻略: 问题描述 在使用 pandas 进行数据处理时,可能会遇到 merge 函数报错的问题。本文将介绍如何解决这个问题。 解决方法 1. 检查列名 在使用 merge 函数时,需要确保两个 DataFrame 中的列名相同。如果列名不同,可以使用 rename 函数重命列名。示例代码如下: df…

    python 2023年5月13日
    00
  • 在 cx_Freeze 之后 Python 脚本未写入文件

    【问题标题】:Python script not writing on files after cx_Freeze在 cx_Freeze 之后 Python 脚本未写入文件 【发布时间】:2023-04-02 10:19:02 【问题描述】: 我正在编写一个打算用 cx_Freeze 冻结的脚本。我正在使用 Python 3.6 和 cx_Freeze 5.…

    Python开发 2023年4月8日
    00
  • Python 创建格式化字符串方法

    Python 创建格式化字符串是一个非常常用的操作,常用于输出带有特定格式的字符串。Python 提供了多种方式来创建格式化字符串,本文将为您详细讲解。 使用百分号(%)格式化字符串 使用 % 创建格式化字符串是 Python 最初提供的一种格式化字符串的方法,它是早期 C 语言的格式化字符串方法的一种简单模拟。在使用时,我们可以使用 % 等特殊字符来格式化…

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