分类的概念很简单,就是给出一个样本x,判断样本所属的类别y,分类器就是映射函数f: y=f(x)。当然,这个函数是需要根据以往的经验(大量已知类别的样本集)来构造的。这个构造的过程,称为训练,而如何构造,就是分类算法了。
数据挖掘中分类算法有很多,它们通过对已知类别训练集的分析,从中发现分类规则,以此预测新数据的类别。分类算法应用非常广泛,银行中风险评估、客户类别分类、文本检索和搜索引擎分类、安全领域中的入侵检测等等。主要包括以下几种分类模型:
相似度模型:K-近邻,Rocchio
概率模型:贝叶斯
线性模型:SVM
非线性模型:神经网络,决策树
K-近邻与Rocchio
KNN(K-Nearest Neighbor)算法来源于向量空间模型理论(Vector Space Model)。VSM的基本思想是用向量来表示一个文本,之后的过程就可以转化为空间中向量的运算。通常采用TF-IDF来实现。TF-IDF通常用来评估某个特征对于一个文件或文件集的重要程度。特征的重要性与它在文件中出现的次数成正比,与它在语料库中出现的频率成反比。每个文件都表示为一个N维向量,N即特征个数,向量分量是特征的权重。将这些向量都保存下来。给定一个未知文本,首先生成它的特征向量,搜索之前的向量,找出相似度最接近的K个样本,在K个样本中出现次数最多的类别即为答案。相似度可以通过欧几里得或cosin来度量。
可以发现,KNN是一种懒惰的方法,没有学习过程,只是存放所有训练实例直到接到分类命令才建立分类。正因如此,KNN训练过程较快,而且随时可以添加新训练样本。但分类时间复杂度较高,训练样本的存储也需要较大空间开销,有看法认为在小数据集上KNN表现优异。KNN在多类分类问题上表现也很不错。
当然,在实现的时候,可以进行一些优化:倒排索引。实现方法是将每个词设一个指针,指向包含该词的所有文档的序号。这样在查询时先找到与待分类文本有交集的训练文本向量,然后再计算相似度。
Rocchio与KNN类似,只不过它不是保存每个训练文本的向量,而是先计算每类文档向量的平均值作为类别特征向量,即用一个向量代表一个类。对于待分类的文本,只需要与类别向量计算相似度,选取最相似的就OK了。该算法简单易行且分类速度较快。
贝叶斯
朴素贝叶斯(Naive Bayes)是一种统计学分类方法,它基于贝叶斯定理。从理论上,朴素贝叶斯分类的出错概率最小,就试验结果来看,朴素贝叶斯在大型数据集上表现出难得的速度和准确率。但它基于属性之间的条件独立关系,现实中往往是不成立的。小数据集上表现不好。
P( Category | Document) = P ( Document | Category ) * P( Category) / P(Document)
贝叶斯的改进有诸如树扩展的贝叶斯(Tree Augument NB),加权贝叶斯(Weighted NB)和贝叶斯网络(Bayes Net)。
支持向量机
支持向量机(Support Vector Mechine)是一种有坚实理论基础的新颖的小样本学习方法,不同于现有的统计方法。SVM的最终决策函数只由少数的支持向量所确定,计算复杂性取决于支持向量的数目,而不是样本空间的维数。SVM的目标是对特征空间划分的最优超平面,其核心思想是最大化分类边际。缺点是难以适应大规模训练样本,对多类问题效果不好。
决策树
决策树(Decision Tree)是一种贪心算法,采用自顶向下的方式在训练集的基础上构造决策树。深度越小的节点(特征)具有的区分能力越强(信息增益高)。分类时,取未知文本的属性,在决策树上测试路径由根节点到叶节点,从而得到该文本所属类别。它的优点是很好的抵抗噪声。缺点是大规模数据构造决策树效率比较低下。
相关推荐
"数据分类算法综述" 本文对常用的数据分类算法进行了概述,通过查找大量文献,总结了三种常见的分类方法:KNN 法、支持向量机和朴素贝叶斯分类法。 KNN 法 KNN 法即 K 最近邻法,是一种常用的分类算法。该方法的...
### 数据挖掘分类算法综述 #### 一、引言 数据挖掘分类算法是现代数据分析领域的重要组成部分,旨在从海量数据中提取有价值的信息。本文聚焦于数据挖掘中的分类算法,包括决策树、关联规则分类、神经网络、贝叶斯...
数据挖掘中的文本挖掘的分类算法综述 数据挖掘是指从大量数据中提取有价值的信息或模式的过程。数据挖掘技术可以应用于许多领域,如客服管理、市场营销、医疗保健等。文本挖掘是数据挖掘的一个子领域,主要是从大量...
文本分类中的特征提取和分类算法综述 文本分类是信息检索和过滤过程中的一项关键技术,其任务是对未知类别的文档进行自动处理,判别它们所属于的预定义类别集合中的类别。在文本分类中,特征提取和分类算法是两个...
数据挖掘中的数据分类算法综述 数据挖掘中的数据分类算法综述是数据挖掘领域中的一个重要组成部分,对于有效地管理和使用数据资源具有重要意义。本文将对数据挖掘中的数据分类算法进行全面综述,包括其应用场景、...
文章标题《近十年脑机接口分类算法综述》以及描述《A review of classification algorithms for EEG-based brain–computer interfaces a 10 year update》表明这篇文章是对基于脑电图(EEG)的脑机接口(BCI)分类...
"基于卷积神经网络的图像分类算法综述" 基于卷积神经网络的图像分类算法综述是近年来深度学习领域的一篇重要文献。该论文首先介绍了传统图像分类方法的局限性,然后对基于卷积神经网络的图像分类方法进行了系统的...
"基于深度神经网络的遥感图像分类算法综述" 本文主要介绍了基于深度神经网络的遥感图像分类算法综述,讨论了遥感图像分类的研究现状和发展趋势。文章首先介绍了遥感图像分类的重要性和挑战,然后分析了深度神经网络...
大数据挖掘技术是当今信息技术领域中的关键研究方向,其中数据分类算法作为大数据挖掘的核心内容,对于分析海量数据并提取有价值的信息起到了至关重要的作用。随着技术的不断发展,众多数据分类算法应运而生,如决策...
数据挖掘是一种从海量数据中提取有用信息并转化为知识的过程,其中数据分类算法是核心工具之一。本文主要探讨了数据挖掘中的数据分类算法,特别是C4.5决策树分类算法。 决策树是一种直观的、易于理解的分类模型,它...
1. KNN文本分类算法:KNN是一种基于实例的学习,通过计算待分类文本与训练集中已知类别的文本之间的相似度(如余弦相似度),选择最接近的K个邻居,根据邻居的类别分布决定待分类文本的类别。 2. 特征选择:为了降低...
分类算法是解决分类问题的方法,有许多经典的分类方法,包括决策树、贝叶斯、人工神经网络、基于关联规则的分类以及支持向量机等。决策树归纳算法是一种有向无环图(DAG),它通过信息增益等信息论概念来选择具有...