什么是KNN算法及对新闻分类示例分析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关什么是KNN算法及对新闻分类示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 什么是KNN算法KNN的全称是(K
千家信息网最后更新 2026年11月01日什么是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安全错误
数据库的锁怎样保障安全
科技互联网
广州紫鲸互联网科技有限公司
互联网科技公司起名
善班互联网科技
世界互联网领先科技成果
成都互联网科技公司
亿账通互联网科技
上游互联网科技
成都狮子座互联网科技
上海亿帐通互联网科技
美国互联网前沿科技
盛创互联网科技有限公司
科技大学互联网专业好不好
荆州市昕露互联网络科技有限公司
互联网与医疗科技
卓翼科技产业互联网合作
互联网方面的科技前沿
广州千川互联网科技有限公司
本届互联网大会上的黑科技
互联网科技对化妆品行业
猪兼强互联网科技
科技赋能互联网健康
天速互联网络科技有限公司
华服互联网科技官网
受益于互联网科技的高速发展
爱医互联网络科技
城市宝互联网科技有限公司
有人说阿里系是互联网科技企业
上海同邻互联网科技有限公司规模
上海互联网科技园景观