机器学习 之 K近邻(K-NearestNeighbor)文本算法的精确率

2023-11-01 06:10

本文主要是介绍机器学习 之 K近邻(K-NearestNeighbor)文本算法的精确率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 0、推荐
  • 1、背景
  • 2、效果图
  • 3、本次实验整体流程
  • 4、这里不用词向量,而是用TF-IDF预处理后的向量
  • 5、源代码
  • 6、知识点普及
    • 6.1 K近邻优点
    • 6.2 K近邻缺点

0、推荐

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。

1、背景

最近的项目中,用到了很多机器学习的算法,每个机器学习的算法在不同的样本下的精准率是不同的。为了验证每个算法在每种不同样本数量的能力,就做了一下实验,本文讲的是“K近邻”在文本算法中的精准率。

相关其它机器学习算法的精准率:
决策树:机器学习 之 决策树(Decision Tree)文本算法的精确率
逻辑回归:机器学习 之 逻辑回归(LogisticRegression)文本算法的精确率
支持向量机:机器学习 之 支持向量机(SupportVectorMachine)文本算法的精确率
朴素贝叶斯:机器学习 之 朴素贝叶斯(Naive Bayesian Model)文本算法的精确率
随机森林:机器学习 之 随机森林(Random Forest)文本算法的精确率

机器学习各个算法对比:人工智能 之 机器学习常用算法总结 及 各个常用分类算法精确率对比

2、效果图

先看一下没有任何调参的情况下的效果吧!

K近邻:
在这里插入图片描述
通过以上数据可以看出在样本数量较低的情况下还不错,在样本数量在5000的时候效果还可以,但是到达20000的时候,准确率已经在65%左右了。

3、本次实验整体流程

1、先把整体样本读到内存中

2、把整体样本按照8:2的比例,分为80%的训练集,20%的测试集

3、然后“训练集”的样本 先分词,再转换为词向量

4、接着把训练集的样本和标签统一的传入算法中,得到拟合后的模型

5、把“测试集”的样本 先分词,再得到词向量

6、把测试集得出的词向量丢到拟合后的模型中,看得出的结果

7、把结果转换为准确率的形式,最后做成表格形式以便观看

这里应该多跑几遍不同样本,然后把结果取平均值,每次的结果还是稍有不同的。

4、这里不用词向量,而是用TF-IDF预处理后的向量

这里我们直接取得词向量,而不是经过TF-IDF处理过的词向量。如果处理过,效果会不如现在的好。

TF-IDF(词频-逆文本频率),前面的TF也就是常说到的词频,我们之前做的向量化也就是做了文本中各个词的出现频率统计,并作为文本特征,这个很好理解。关键是后面的这个IDF,即“逆文本频率”如何理解。有些句子中的词,比如说“的”,几乎所有句子都会出现,词频虽然高,但是重要性却应该比 主语、宾语等低。IDF就是来帮助我们来反应这个词的重要性的,进而修正仅仅用词频表示的词特征值。
概括来讲, IDF反应了一个词在所有文本中出现的频率,如果一个词在很多的文本中出现,那么它的IDF值应该低

加了TF-IDF处理后的效果:
在这里插入图片描述
经过TF-IDF处理后的效果比不处理效果好。所以,这里就要经过TF-IDF处理了哈。
以下源码中,如果加TF-IDF处理,只需要在jiabaToVector()函数中增加True这个参数就OK了

    vector_train = jiabaToVector(m_text_train, False, True)......vector_test = jiabaToVector(m_text_test, True, True)

5、源代码

import jieba
import datetime
# 向量\测试集\训练集\得分比对
from sklearn.model_selection  import train_test_split
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction

这篇关于机器学习 之 K近邻(K-NearestNeighbor)文本算法的精确率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/321016

相关文章

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取