1、聚类算法
聚类指事先并不知道任何样本的类别标号,希望通过某种算法来把一组未知类别的样本划分成若干类别,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起,属于 unsupervised learning (无监督学习)
2、分类算法
分类是根据一些给定的已知类别标号的样本,训练某种学习机器(即得到某种目标函数),使它能够对未知类别的样本进行分类,属于supervised learning(监督学习)。
3、回归算法
回归的目的就是预测数值型的目标值,也就是“最佳拟合”。
根据已有的数据拟合出一条最佳的直线、曲线、超平面或函数等,用于预测其它数据的目标值。如已知一系列的点(x,y),我们可能就可以拟合出一条最佳的直线y=kx+b。那么如果已知自变量x,要预测目标值y的话,就可以直接带入到该直线方程中求出y。
逻辑回归:
逻辑回归解决的是分类问题,逻辑回归输出的实例属于每个类别的似然概率,似然概率最大的类别就是分类结果。
通俗理解:逻辑就是True或False,判断出是True还是False,相当于分类了
4、分类与聚类的比较
聚类分析是研究如何在没有训练的条件下把样本划分为若干类。 在分类中,对于目标数据库中存在哪些类是知道的,要做的就是将每一条记录分别属于哪一类标记出来。 聚类需要解决的问题是将已给定的若干无标记的模式聚集起来使之成为有意义的聚类,聚类是在预先不知道目标数据库到底有多少类的情况下,希望将所有的记录组成不同的类或者说聚类,并且使得在这种分类情况下,以某种度量(例如:距离)为标准的相似性,在同一聚类之间最小化,而在不同聚类之间最大化。 与分类不同,无监督学习不依赖预先定义的类或带类标记的训练实例,需要由聚类学习算法自动确定标记,而分类学习的实例或数据样本有类别标记。
5、常见分类算法
NBC(Naive Bayesian Classifier,朴素贝叶斯分类)算法、LR(Logistic Regress,逻辑回归)算法、ID3(Iterative Dichotomiser 3 迭代二叉树3 代)决策树算法、C4.5 决策树算法、C5.0 决策树算法、SVM(Support Vector Machine,支持向量机)算法、KNN(K-Nearest Neighbor,K 最近邻近)算法、ANN(Artificial Neural Network,人工神经网络)算法等。
6、常见聚类算法
数据聚类方法主要可以分为划分式聚类方法(Partition-based Methods)、基于密度的聚类方法(Density-based methods)、层次化聚类方法(Hierarchical Methods)等。
(1)基于划分聚类算法(partition clustering)
| k-means: | 是一种典型的划分聚类算法,它用一个聚类的中心来代表一个簇,即在迭代过程中选择的聚点不一定是聚类中的一个点,该算法只能处理数值型数据 |
|---|---|
| k-modes: | K-Means算法的扩展,采用简单匹配方法来度量分类型数据的相似度 |
| k-prototypes: | 结合了K-Means和K-Modes两种算法,能够处理混合型数据 |
| k-medoids: | 在迭代过程中选择簇中的某点作为聚点,PAM是典型的k-medoids算法 |
| CLARA: | CLARA算法在PAM的基础上采用了抽样技术,能够处理大规模数据 |
| CLARANS: | CLARANS算法融合了PAM和CLARA两者的优点,是第一个用于空间数据库的聚类算法 |
| Focused CLARAN: | 采用了空间索引技术提高了CLARANS算法的效率 |
| PCM: | 模糊集合理论引入聚类分析中并提出了PCM模糊聚类算法 |
(2)基于层次聚类算法:
| CURE: | 采用抽样技术先对数据集D随机抽取样本,再采用分区技术对样本进行分区,然后对每个分区局部聚类,最后对局部聚类进行全局聚类 |
|---|---|
| ROCK: | 也采用了随机抽样技术,该算法在计算两个对象的相似度时,同时考虑了周围对象的影响 |
| CHEMALOEN(变色龙算法): | 首先由数据集构造成一个K-最近邻图Gk ,再通过一个图的划分算法将图Gk 划分成大量的子图,每个子图代表一个初始子簇,最后用一个凝聚的层次聚类算法反复合并子簇,找到真正的结果簇 |
| SBAC: | SBAC算法则在计算对象间相似度时,考虑了属性特征对于体现对象本质的重要程度,对于更能体现对象本质的属性赋予较高的权值 |
| BIRCH: | BIRCH算法利用树结构对数据集进行处理,叶结点存储一个聚类,用中心和半径表示,顺序处理每一个对象,并把它划分到距离最近的结点,该算法也可以作为其他聚类算法的预处理过程 |
| BUBBLE: | BUBBLE算法则把BIRCH算法的中心和半径概念推广到普通的距离空间 |
| BUBBLE-FM: | BUBBLE-FM算法通过减少距离的计算次数,提高了BUBBLE算法的效率 |
(3)基于密度聚类算法:
| DBSCAN: | DBSCAN算法是一种典型的基于密度的聚类算法,该算法采用空间索引技术来搜索对象的邻域,引入了“核心对象”和“密度可达”等概念,从核心对象出发,把所有密度可达的对象组成一个簇 |
|---|---|
| GDBSCAN: | 算法通过泛化DBSCAN算法中邻域的概念,以适应空间对象的特点 |
| DBLASD: | |
| OPTICS: | OPTICS算法结合了聚类的自动性和交互性,先生成聚类的次序,可以对不同的聚类设置不同的参数,来得到用户满意的结果 |
| FDC: | FDC算法通过构造k-d tree把整个数据空间划分成若干个矩形空间,当空间维数较少时可以大大提高DBSCAN的效率 |
(4)基于网格的聚类算法:
| STING: | 利用网格单元保存数据统计信息,从而实现多分辨率的聚类 |
|---|---|
| WaveCluster: | 在聚类分析中引入了小波变换的原理,主要应用于信号处理领域。(备注:小波算法在信号处理,图形图像,加密解密等领域有重要应用,是一种比较高深和牛逼的东西) |
| CLIQUE: | 是一种结合了网格和密度的聚类算法 |
| OPTIGRID: |
(5)基于神经网络的聚类算法:
| 自组织神经网络SOM: | 该方法的基本思想是--由外界输入不同的样本到人工的自组织映射网络中,一开始时,输入样本引起输出兴奋细胞的位置各不相同,但自组织后会形成一些细胞群,它们分别代表了输入样本,反映了输入样本的特征 |
|---|
(6)基于统计学的聚类算法:
| COBWeb: | COBWeb是一个通用的概念聚类方法,它用分类树的形式表现层次聚类 |
|---|---|
| CLASSIT: | |
| AutoClass: | 是以概率混合模型为基础,利用属性的概率分布来描述聚类,该方法能够处理混合型的数据,但要求各属性相互独立 |
几种常用的聚类算法从可伸缩性、适合的数据类型、高维性(处理高维数据的能力)、异常数据的抗干扰度、聚类形状和算法效率6个方面进行了综合性能评价,评价结果如表1所示:
| 算法名称 | 可伸缩性 | 适合的数据类型 | 高维性 | 异常数据的抗干扰性 | 聚类形状 | 算法效率 |
|---|---|---|---|---|---|---|
| WaveCluster | 很高 | 数值型 | 很高 | 较高 | 任意形状 | 很高 |
| ROCK | 很高 | 混合型 | 很高 | 很高 | 任意形状 | 一般 |
| BIRCH | 较高 | 数值型 | 较低 | 较低 | 球形 | 很高 |
| CURE | 较高 | 数值型 | 一般 | 很高 | 任意形状 | 较高 |
| K-Prototypes | 一般 | 混合型 | 较低 | 较低 | 任意形状 | 一般 |
| DENCLUE | 较低 | 数值型 | 较高 | 一般 | 任意形状 | 较高 |
| OptiGrid | 一般 | 数值型 | 较高 | 一般 | 任意形状 | 一般 |
| CLIQUE | 较高 | 数值型 | 较高 | 较高 | 任意形状 | 较低 |
| DBSCAN | 一般 | 数值型 | 较低 | 较高 | 任意形状 | 一般 |
| CLARANS | 较低 | 数值型 | 较低 | 较高 | 球形 | 较低 |