原生python实现knn分类算法

yizhihongxing

下面就是详细讲解“原生Python实现KNN分类算法”的完整攻略。

1. KNN算法简介

KNN(K-Nearest Neighbor)算法是一种基本的分类和回归算法。KNN分类算法是根据所求点的k个样本中所属类别最多的一类来对所求点分类。

2. KNN算法步骤

2.1 数据集预处理

将整个数据集分为两部分:训练集和测试集。我们用训练集来进行模型的训练,用测试集来进行模型的验证。

2.2 计算距离

计算测试数据与训练数据之间的欧几里德距离,选取k个距离最近的点。

2.3 进行分类

对选取的k个点进行分类,统计出k个点中所属类别最多的一种类别作为测试数据的类别。

2.4 计算分类准确率

将测试数据的标签与预测结果相比较,统计出准确率。

3. Python代码实现KNN算法

以下是Python代码实现KNN算法的示例:

import numpy as np
import operator

# KNN分类算法实现
def classify0(inX, dataSet, labels, k):
    dataSetSize = dataSet.shape[0]
    diffMat = np.tile(inX, (dataSetSize,1)) - dataSet
    sqDiffMat = diffMat**2
    sqDistances = sqDiffMat.sum(axis=1)
    distances = sqDistances**0.5
    sortedDistIndicies = distances.argsort()
    classCount={}
    for i in range(k):
        voteIlabel = labels[sortedDistIndicies[i]]
        classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1
    sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True)
    return sortedClassCount[0][0]

# 测试数据集
def createDataSet():
    group = np.array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
    labels = ['A','A','B','B']
    return group,labels

# 主函数
def main():
    group,labels = createDataSet()
    print(classify0([0,0], group, labels, 3))

if __name__ == '__main__':
    main()

以上代码是一个简单的分类实现,我们可以根据实际需求对代码进行修改。

4. 示例说明

我们以鸢尾花数据集为例。首先,我们将数据集分为训练集和测试集,并将转化为NumPy数组。以下是示例代码:

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

# 加载数据集并划分数据集
iris = load_iris()
data = iris.data
target = iris.target
train_data, test_data, train_target, test_target = train_test_split(data, target, test_size=0.3)

接下来,我们使用KNN分类算法来对数据进行分类。以下是示例代码:

# 定义KNN模型并训练
knn = neighbors.KNeighborsClassifier(n_neighbors=5)
knn.fit(train_data, train_target)

# 预测并计算准确率
predicted = knn.predict(test_data)
accuracy = metrics.accuracy_score(test_target, predicted)
print('KNN准确率:%.2f%%' % (accuracy * 100))

在上述代码中,我们使用sklearn库的neighbors包来定义KNN模型并训练。然后,我们使用测试集对模型进行测试,并计算KNN的准确率。

5. 总结

通过本篇攻略的阅读和示例代码的运行,相信你已经了解了KNN分类算法的基本原理和Python代码实现方法。在实际应用中,可以根据需求对代码进行修改和扩展,实现更加丰富和实用的分类功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生python实现knn分类算法 - Python技术站

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

相关文章

  • python 实现查询Neo4j多节点的多层关系

    以下是“python实现查询Neo4j多节点的多层关系”的完整攻略。 步骤一:安装Neo4j与python的驱动库 Neo4j是一款开源图数据库,我们需要先安装它。安装教程可以参见官网:https://neo4j.com/docs/operations-manual/current/installation/。 其次,我们要为python安装neo4j的驱动…

    python 2023年5月14日
    00
  • Python filter()接收或舍弃数据

    下面是Python filter()函数的详细讲解。 一、简介 Python中filter()函数是内置的高阶函数,用于筛选序列中符合条件的元素,返回一个迭代器对象。 filter()函数的语法格式如下: filter(function, iterable) function:表示一个函数,用于判断iterable中的元素是否符合条件,需要返回一个Boole…

    python-answer 2023年3月25日
    00
  • python接口自动化之正则用例参数化的示例详解

    以下是“Python接口自动化之正则用例参数化的示例详解”的完整攻略: 一、问题描述 在Python接口自动化中,我们可以使用正则表达式来对接口参数进行参数化。本文将详细讲解如何使用正则表达式来对接口参数进行参数化,并提供两个示例说明。 二、解决方案 2.1 正则表达式 在Python中,我们可以使用正则表达式来对接口参数进行参数化。以下是一个示例,演示了如…

    python 2023年5月14日
    00
  • Python colorama 彩色打印实现代码

    下面是关于Python colorama 彩色打印实现代码的详细攻略: 什么是colorama colorama是一个Python包,它允许给输出字符串添加ANSI彩色样式和终端控制字符。它是一个跨平台的解决方案,可以在Windows,Linux和Mac等平台使用。具体而言,colorama通过使用Windows的命令提示符的WinAPI实现在Windows…

    python 2023年6月5日
    00
  • Pandas的DataFrame如何做交集,并集,差集与对称差集

    Pandas是Python语言中用于数据分析和操作的常用库之一,而DataFrame是Pandas库中最重要的数据结构之一,它类似于Excel中的表格,可以方便地进行数据处理和运算。在DataFrame对象中,可以实现交集、并集、差集和对称差集的操作。 1. DataFrame的交集 利用Pandas的DataFrame对象的intersection()方法…

    python 2023年5月14日
    00
  • 详解Python中Addict模块的使用方法

    详解Python中Addict模块的使用方法 什么是Addict模块 Addict模块是Python中一款轻量级的字典扩展类,它能够在字典基础上提供额外的功能,比如key的自动创建、递归访问等。 Addict模块的安装 可以使用pip安装Addict模块: pip install addict Addict模块的基本用法 创建Addict对象 使用Addic…

    python 2023年6月3日
    00
  • 详解在Python中用Pillow将PNG转换为ICO

    首先需要安装Pillow库,Pillow库是Python中使用最广泛的图像处理库之一。 在命令行中输入: pip install Pillow 安装成功后可以运行以下Python代码: from PIL import Image # 打开png文件 with Image.open(‘test.png’) as im: # 把PNG转换为ICO im.save…

    python-answer 2023年3月25日
    00
  • 用Python调用win命令行提高工作效率的实例

    首先我们需要明确一点,使用Python调用win命令行是一种非常实用的工作方式,通过这种方式我们可以快速地完成一系列复杂的操作,提高工作效率。 下面是用Python调用win命令行的完整攻略: 1. 准备工作 首先,我们需要确保计算机上已经安装 Python 环境,并且系统环境变量中已经添加了 Python 的路径。如果没有,请先安装 Python 并设置环…

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