什么是KNN算法及对新闻分类示例分析
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,今天就跟大家聊聊有关什么是KNN算法及对新闻分类示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 什么是KNN算法KNN的全称是(K
千家信息网最后更新 2025年01月24日什么是KNN算法及对新闻分类示例分析
今天就跟大家聊聊有关什么是KNN算法及对新闻分类示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1. 什么是KNN算法
KNN的全称是(K Nearest Neighbors) K最邻算法,意思是K个最近的邻居。是最简单的分类算法之一。 KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
算法流程
对每一个未知点执行:
计算未知点到所有已知类别点的距离
按距离排序(升序)
选取其中前k个与未知点离得最近的点
统计k个点中各个类别的个数
上述k个点里类别出现频率最高的作为未知点的类别
优缺点
优点:
简单有效、易理解缺点:
k近邻需要保存全部数据集,因此对内存消耗大,当数据集较大时对设备要求非常高;
需要计算每个未知点到全部已知点的距离,可能会很耗时;
分类结果不易理解
2.示例
根据新闻文本判断进行分类,如是科技新闻还是体育新闻等。
训练数据样表类型:
# -*- coding: utf-8 -*-import pandas as pdimport matplotlib.pyplot as pltimport matplotlibimport jiebafrom sklearn.feature_extraction.text import CountVectorizerfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.metrics import confusion_matriximport seaborn as sns####1.解决中文乱码问题#指定默认字体 matplotlib.rcParams['font.sans-serif'] = ['SimHei'] matplotlib.rcParams['font.family']='sans-serif' #解决负号'-'显示为方块的问题 matplotlib.rcParams['axes.unicode_minus'] = False###2 。导入数据raw_train = pd.read_csv("./train_sample_utf8.csv",encoding="utf-8")raw_test = pd.read_csv("./test_sample_utf8.csv",encoding="utf8")### 3. 查看数据print(raw_train.head(5))print(raw_train.shape)print(raw_test.shape)####4. 对数据进行分类图表显示##plt.figure(figsize=(15, 8))##plt.subplot(1, 2, 1) ####要生成一行两列,这是第一个图plt.subplot('行','列','编号')##raw_train["分类"].value_counts().sort_index().plot(kind="barh",title='训练集新闻主题分布')##plt.subplot(1, 2, 2)##raw_test["分类"].value_counts().sort_index().plot(kind="barh",title='测试集新闻主题分布')####5. 定义 对文章进行分词函数def news_cut(text): return " ".join(list(jieba.cut(text)))#简单测试下分词效果#test_content = "六月初的一天,来自深圳的中国旅游团游客纷纷拿起相机拍摄新奇刺激的好莱坞环球影城主题公园场景。"##print(news_cut(test_content)) ###6. 利用封装的分词函数,对训练集和测试集中的新闻内容进行分词处理raw_train["分词文章"] = raw_train["文章"].map(news_cut)raw_test["分词文章"] = raw_test["文章"].map(news_cut)###查看数据print(raw_train.head(5))####7. 加载停用词stop_words = []file = open("./stopwords.txt",encoding="utf-8") for line in file: stop_words.append(line.strip())file.close()####8.利用CountVectorizer统计词出现频率,并转为向量vectorizer = CountVectorizer(stop_words=stop_words)X_train = vectorizer.fit_transform(raw_train["分词文章"])X_test = vectorizer.transform(raw_test["分词文章"])#####9. 利用knn算法进行预测 knn = KNeighborsClassifier(n_neighbors=10,weights="distance")knn.fit(X_train, raw_train["分类"])Y_test = knn.predict(X_test)##将真实测试值 与预测图较,并绘制热力图展示 ax = sns.heatmap(confusion_matrix(raw_test["分类"].values,Y_test),linewidths=.5,cmap="Greens", annot=True, fmt='d',xticklabels=knn.classes_, yticklabels=knn.classes_)ax.set_ylabel('真实')ax.set_xlabel('预测')ax.xaxis.set_label_position('top') ax.xaxis.tick_top()ax.set_title('混淆矩阵热力图')
看完上述内容,你们对什么是KNN算法及对新闻分类示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
分类
算法
数据
文章
类别
新闻
样本
内容
测试
示例
主题
特征
utf-8
训练
分析
函数
点到
空间
邻居
问题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江苏银行软件开发
数据库事务是什么的单位
联通网络安全系统
京东用的什么服务器
软件开发公司办公用电脑配置
服务器里面是显卡还是硬盘
监控系统软件开发集成
北京网络安全大会经典语录
怎样进入2t服务器
服务器nginx
视频管理服务器的特点
搭建魔域手游服务器
计算机网络技术的影响
新乡市博涵网络技术有限公司
超算中心什么数据库
达梦数据库服务实例无法启动
新型数字基础设施网络安全
人脸识别 训练数据库
dbms数据库的建立
大学数据库原理与应用答案
对数据库关系模式进行规范化
代码创建数据库视频
零基础自学网络安全需要学什么
服务器电子文档管理
审计部门网络安全应急预案
长沙国家网络安全产业前景
关系数据库中包含几个对象
冠鼎网络技术有限公司
网络技术员怎么考级
密云区网络技术咨询清单