python实现KNN分类算法

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, y_train)

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

# 输出预测结果
print(y_pred)

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

示例1:鸢尾花分类

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

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

# 加载数据
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_neighbors3)

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

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

# 输出预测准确率
print("Accuracy: ", accuracy_score(y, 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

# 加载数据
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分类器k = KNeighborsClassifier(n_neighbors=3)

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

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

# 输出预测准确率
print("Accuracy: ", accuracy_score, 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日

相关文章

  • Python 解析Access对象

    首先,我们需要安装pyodbc模块,pyodbc提供了Python3访问Microsoft Access数据库的接口,可以通过pip进行安装: !pip install pyodbc 接着,在Python脚本中导入pyodbc和pandas模块: import pyodbc import pandas as pd Python解析Access对象可以使用以下…

    python-answer 2023年3月25日
    00
  • Python编程实现简单的微博自动点赞

    下面是Python编程实现微博自动点赞的攻略: 1. 准备工作 首先,需要使用Python开发环境,如Anaconda、PyCharm等,并安装必要的Python库,如Selenium、Chrome Driver等。此外,还需要一个微博账号并登录。 2. 获取微博链接 在微博网站上选择要点赞的微博,然后在浏览器地址栏中复制该微博链接。该链接通常以https:…

    python 2023年5月19日
    00
  • 超级实用的8个Python列表技巧

    以下是详细讲解“超级实用的8个Python列表技巧”的完整攻略。 超级实用的8个Python列表技巧 在编程中,列表是一种非常常用的数据类型。下面将介绍8个超实用的Python列表技巧,帮助你更加高效地使用列表。 技巧1:使用列表推导式 列表推导式是Python中常常用的一种语法,它可以速地生成一个列表。下面是一个示例,演示了如何使用列表推导式生成一个包含1…

    python 2023年5月13日
    00
  • python-docx如何缩进两个字符

    要让python-docx生成的Word文档内容缩进两个字符,可以使用Python字符串的缩进操作。 首先,我们需要安装python-docx库。可以使用pip命令进行安装: pip install python-docx 然后,我们可以使用python-docx库创建一个Word文档,并添加段落和文本内容: from docx import Documen…

    python 2023年6月5日
    00
  • Python字符串处理之count()方法的使用

    Python字符串处理之count()方法也就是字符串计数方法,它用于统计字符串中某个子字符串出现的次数。下面进入详细的讲解。 一、count()方法的基本语法 count()方法的基本语法如下: string.count(sub[, start[, end]]) string:代表要统计的字符串。 sub:代表子字符串,在string字符串中出现的次数需要…

    python 2023年6月3日
    00
  • python绘制横竖条形图的方法

    Python 是一种优秀的编程语言,在数据可视化中有着举足轻重的地位。在 Python 中,绘制条形图是非常简单的。本文将为大家详细介绍如何用 Python 绘制横竖条形图。 绘制竖条形图 在 Python 中,绘制竖条形图可以使用 matplotlib 库的 bar 方法来实现。 import matplotlib.pyplot as plt import…

    python 2023年5月19日
    00
  • Python中typing模块的具体使用

    Python中的typing模块提供了类型提示功能,允许开发者对变量、函数参数和返回值等进行类型注释,以提高代码的可读性和可维护性。下面让我详细讲解一下typing模块的具体使用: 1. 基本类型注解 typing模块中提供了一些基本类型注解,如List、Dict、Tuple、Set、Iterable、Iterator、Any、Union等。 这些类型可以用…

    python 2023年5月14日
    00
  • Python 请求二进制内容

    【问题标题】:Python Request binary contentPython 请求二进制内容 【发布时间】:2023-04-01 21:55:01 【问题描述】: 我正在尝试从 Google 趋势 URL 获取 JSON,但我无法将其转换为 JSON,因为内容为 b”。我怎样才能得到这个结果作为 JSON? 我的简单代码: import reque…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部