分类和聚类的区别以及各自常见的算法
搬运工
参考:
[1] 百度回答:点击打开链接
[2] 博客:点击打开链接
简单地说,分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类。简单地说,聚类是指事先没有“标签”而通过某种成团分析找出事物之间存在聚集性原因的过程。 区别是,分类是事先定义好类别 ,类别数不变 。分类器需要由人工标注的分类训练语料训练得到,属于有指导学习范畴。聚类则没有事先预定的类别,类别数不确定。 聚类不需要人工标注和预先训练分类器,类别在聚类过程中自动生成 。分类适合类别或分类体系已经确定的场合,比如按照国图分类法分类图书;聚类则适合不存在分类体系、类别数不确定的场合,一般作为某些应用的前端,比如多文档文摘、搜索引擎结果后聚类(元搜索)等。 分类的目的是学会一个分类函数或分类模型(也常常称作分类器 ),该模型能把数据库中的数据项映射到给定类别中的某一个类中。 要构造分类器,需要有一个训练样本数据集作为输入。训练集由一组数据库记录或元组构成,每个元组是一个由有关字段(又称属性或特征)值组成的特征向量,此外,训练样本还有一个类别标记。一个具体样本的形式可表示为:(v1,v2,...,vn; c);其中vi表示字段值,c表示类别。分类器的构造方法有统计方法、机器学习方法、神经网络方法等等。 聚类(clustering)是指根据“物以类聚”原理,将本身没有类别的样本聚集成不同的组,这样的一组数据对象的集合叫做簇,并且对每一个这样的簇进行描述的过程。它的目的是使得属于同一个簇的样本之间应该彼此相似,而不同簇的样本应该足够不相似。与分类规则不同,进行聚类前并不知道将要划分成几个组和什么样的组,也不知道根据哪些空间区分规则来定义组。其目的旨在发现空间实体的属性间的函数关系,挖掘的知识用以属性名为变量的数学方程来表示。聚类技术正在蓬勃发展,涉及范围包括数据挖掘、统计学、机器学习、空间数据库技术、生物学以及市场营销等领域,聚类分析已经成为数据挖掘研究领域中一个非常活跃的研究课题。常见的聚类算法包括:K-均值聚类算法、K-中心点聚类算法、CLARANS、 BIRCH、CLIQUE、DBSCAN等。
当把聚类(Clustering)和分类(Classification)放到一起时,很容易弄混淆两者的概念,下分别对两个概念进行解释。
1 聚类(Clustering):
将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。
聚类分析的一般做法是,先确定聚类统计量,然后利用统计量对样品或者变量进行聚类。对N个样品进行聚类的方法称为Q型聚类,常用的统计量称为“距离”;对于m个变量进行聚类的方法称为R型聚类,常用的统计量称为“相似系数”。
Method name | Parameters | Scalability | Usecase | Geometry (metric used) |
---|---|---|---|---|
K-Means | number of clusters | Very large n_samples, medium n_clusterswith MiniBatch code | General-purpose, even cluster size, flat geometry, not too many clusters | Distances between points |
Affinity propagation | damping, sample preference | Not scalable with n_samples | Many clusters, uneven cluster size, non-flat geometry | Graph distance (e.g. nearest-neighbor graph) |
Mean-shift | bandwidth | Not scalable withn_samples | Many clusters, uneven cluster size, non-flat geometry | Distances between points |
Spectral clustering | number of clusters | Medium n_samples, small n_clusters | Few clusters, even cluster size, non-flat geometry | Graph distance (e.g. nearest-neighbor graph) |
Ward hierarchical clustering | number of clusters | Large n_samples andn_clusters | Many clusters, possibly connectivity constraints | Distances between points |
Agglomerative clustering | number of clusters, linkage type, distance | Large n_samples andn_clusters | Many clusters, possibly connectivity constraints, non Euclidean distances | Any pairwise distance |
DBSCAN | neighborhood size | Very large n_samples, medium n_clusters | Non-flat geometry, uneven cluster sizes | Distances between nearest points |
Gaussian mixtures | many | Not scalable | Flat geometry, good for density estimation | Mahalanobis distances to centers |
Birch | branching factor, threshold, optional global clusterer. | Large n_clusters andn_samples | Large dataset, outlier removal, data reduction. | Euclidean distance between points |
2 分类(Classification):
在已有分类标准下,对新数据进行划分,分类。
常用分类算法:
朴素贝叶斯(Naive Bayes, NB)
超级简单,就像做一些数数的工作。如果条件独立假设成立的话,NB将比鉴别模型(如Logistic回归)收敛的更快,所以你只需要少量的训练数据。即使条件独立假设不成立,NB在实际中仍然表现出惊人的好。如果你想做类似半监督学习,或者是既要模型简单又要性能好,NB值得尝试。
Logistic回归(Logistic Regression, LR)
LR有很多方法来对模型正则化。比起NB的条件独立性假设,LR不需要考虑样本是否是相关的。与决策树与支持向量机(SVM)不同,NB有很好的概率解释,且很容易利用新的训练数据来更新模型(使用在线梯度下降法)。如果你想要一些概率信息(如,为了更容易的调整分类阈值,得到分类的不确定性,得到置信区间),或者希望将来有更多数据时能方便的更新改进模型,LR是值得使用的。
决策树(Decision Tree, DT)
DT容易理解与解释(对某些人而言——不确定我是否也在他们其中)。DT是非参数的,所以你不需要担心野点(或离群点)和数据是否线性可分的问题(例如,DT可以轻松的处理这种情况:属于A类的样本的特征x取值往往非常小或者非常大,而属于B类的样本的特征x取值在中间范围)。DT的主要缺点是容易过拟合,这也正是随机森林(Random Forest, RF)(或者Boosted树)等集成学习算法被提出来的原因。此外,RF在很多分类问题中经常表现得最好(我个人相信一般比SVM稍好),且速度快可扩展,也不像SVM那样需要调整大量的参数,所以最近RF是一个非常流行的算法。
支持向量机(Support Vector Machine, SVM)
很高的分类正确率,对过拟合有很好的理论保证,选取合适的核函数,面对特征线性不可分的问题也可以表现得很好。SVM在维数通常很高的文本分类中非常的流行。由于较大的内存需求和繁琐的调参,我认为RF已经开始威胁其地位了。
回到LR与DT的问题(我更倾向是LR与RF的问题),做个简单的总结:两种方法都很快且可扩展。在正确率方面,RF比LR更优。但是LR可以在线更新且提供有用的概率信息。鉴于你在Square(不确定推断科学家是什么,应该不是有趣的化身),可能从事欺诈检测:如果你想快速的调整阈值来改变假阳性率与假阴性率,分类结果中包含概率信息将很有帮助。无论你选择什么算法,如果你的各类样本数量是不均衡的(在欺诈检测中经常发生),你需要重新采样各类数据或者调整你的误差度量方法来使各类更均衡。
3 举例
假设有一批人的年龄的数据,大致知道其中有一堆少年儿童,一堆青年人,一堆老年人。
聚类就是自动发现这三堆数据,并把相似的数据聚合到同一堆中。所以对于这个例子,如果要聚成3堆的话,那么输入就是一堆年龄数据,注意,此时的年龄数据并不带有类标号,也就是说我只知道里面大致有三堆人,至于谁是哪一堆,现在是不知道的,而输出就是每个数据所属的类标号,聚类完成之后,就知道谁和谁是一堆了。
而分类就是,我事先告诉你,少年儿童、青年人及老年人的年龄是什么样的,现在新来了一个年龄,输出它的类标号,就是它是属于少年儿童、青年人、老年人的哪个类。一般来说,分类器是需要训练的,也就是要告诉你的算法,每个类的特征是什么样子,它才能识别新的数据。
刚才举的是一个超级简单的例子,方便大家理解。下面再举一个实际的例子。
对于聚类,比如有些搜索引擎有“查看相似网页”的功能,这个就可以用聚类来做,把网页就行聚类,在聚类的结果中,每一个类中的网页看成是相似的。
对于分类,比如手写识别就可以看到是分类问题,比如我写了10个“我”字,然后对这10个“我”字进行特征提取,就可以告诉算法,“我”字具有什么样的特征,于是来了一个新的“我”字,虽然笔画和之前的10个“我”字不完全一样,但是特征高度相似,于是就把这个手写的字分类到“我”这个类,就识别出来了。
分类和聚类的区别以及各自常见的算法相关推荐
- 分类和聚类的区别以及各自的常见算法
1.分类和聚类的区别: Classification (分类),对于一个classifier,通常需要你告诉它"这个东西被分为某某类"这样一些例子,理想情况下,一个 classif ...
- 算法中分类与聚类的区别?
算法中分类与聚类的区别? (1) 聚类分析研究如何在没有训练的条件下把样本划分为若干类: (2) 在分类中对于目标数据库中存在哪些类是知道的,要做的就是将每一条记录分别属于哪 一类标记出来 ...
- 回归、分类与聚类:三大方向剖解机器学习算法的优缺点
回归.分类与聚类:三大方向剖解机器学习算法的优缺点 2017-05-20 13:56:14 机器学习 数学 3 0 0 在本教程中,作者对现代机器学习算法进行一次简要的实战梳理.虽然类 ...
- 基本概念—回归、分类、聚类
原文作者:机器之心 原文地址:回归.分类与聚类:三大方向剖解机器学习算法的优缺点 在本教程中,作者对现代机器学习算法进行了简要梳理.虽然类似的总结有很多,但是它们都没有真正解释清楚每个算法在实践中的好 ...
- 分类与聚类算法基础了解
分类与聚类,监督学习与无监督学习 在讲具体的分类和聚类算法之前,有必要讲一下什么是分类,什么是聚类,以及都包含哪些具体算法或问题. Classification (分类),对于一个 classifie ...
- 机器学习四大基本模型:回归、分类、聚类、降维
在本文中,我对现代机器学习算法进行了简要梳理,我通过查阅转载众多博客和资料,基于实践中的经验,讨论每个算法的优缺点,并以机器学习入门者的角色来看待各个模型. 主要内容来自<机器之心>:回归 ...
- 机器学习中分类与聚类的本质区别
机器学习中分类与聚类的本质区别 机器学习中有两类的大问题,一个是分类,一个是聚类. 在我们的生活中,我们常常没有过多的去区分这两个概念,觉得聚类就是分类,分类也差不多就是聚类,下面,我们就具体来研究下 ...
- 文本分类和聚类有什么区别
简单点说:分类是将一篇文章或文本自动识别出来,按照已经定义好的类别进行匹配,确定.聚类就是将一组的文章或文本信息进行相似性的比较,将比较相似的文章或文本信息归为同一组的技术.分类和聚类都是将相似对象归 ...
- 二分类最优阈值确定_机器学习-分类和聚类
## 机器学习-分类和聚类.分类和回归.逻辑回归和KNN 分类和聚类的概念: ** 1.分类:使用已知的数据集(训练集)得到相应的模型,通过这个模型可以划分未知数据.分类涉及到的数据集通常是带有标签 ...
- Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略
Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...
最新文章
- 超强1000个jquery极品插件!(连载中。。。。最近更新20090710)
- php sina ip api,新浪调ip地址api
- 1.为什么使用spring boot
- 函数的返回是返回给实参,然后由实参输出,返回值的作用是给输出的全部变为变量然后用.=连接好把变量存进数据库而不是输出完屏幕就拉倒了...
- 剑指 offer 编程题 C++ 版总结(上)
- 支付宝当面付接口如何计算优惠
- jquery+ajax 实现text框模糊搜索并可利用listbox实时显示模糊搜索列表结果
- ETL的增量抽取机制
- NB-IOT:物联网【无码化】体验NB-loT全流程
- 1、检测是用那个浏览器打开的
- SSMS 18.0运行时闪退
- node解决request返回内容gzip乱码问题
- 爬虫爬取金庸小说--回顾经典小说
- 世界所有国家国际域名英文缩写总结(转)
- day2----python的基本类型
- 2022年最新美股上市SaaS公司前50名排行榜单
- 数据挖掘--糖尿病遗传风险检测
- c语言数组读心术,读心术
- RRT(rapidly exploring random tree)算法学习笔记,机器人自主探索,路径规划
- 华硕传更新软件遭到劫取 安全出现严重问题
热门文章
- NIPS2019 | 2019NIPS论文 | NeurIPS2019最新更新论文~持续更新| NIPS2019百度云下载
- 2022年6月25日PMP考试通关宝典-3
- 驱动人生解锁“C盘瘦身”功能,助力电脑快速运行
- 能源消耗总量计算公式_能源统计
- android theme错误,关于android:您需要在此活动中使用Theme.AppCompat主题(或后代)。 更改为Theme.AppCompat会导致其他错误...
- OCJP认证 | 国际上最热门的IT认证之一,开启你高级认证的钥匙
- 使用maven打包bootdo并运行
- csv文件转为shp文件
- 数学建模-线性优化模型
- 离线身份证OCR识别