您的位置:首页 > 理论基础 > 计算机网络

社会化搜索与推荐浅析-聚类与分类

2012-03-23 11:50 309 查看
分类与聚类的主要区别在于:

分类算法中,类别是已知的,类别数不变;而

聚类中,类别是未知的,类别数不确定。

分类需要依赖先验概率,把所有的数据点所组成的空间进行划分,组成一个个不同类别的集合,这些集合通常是不重合的

 

聚类:没有先验知识,属于无监督学习

 适用与多维度,连续变量,基本的思路是概念建模和迭代优化

 
凝聚型层次聚类算法

 1:定义初始树,类似与B+树,所有数据都在叶子节点

 2:逐步提高层级值,判断哪些元素可以构成新的聚类

 eg:ROCK链接型聚类 :处理非线性的数据,如关键字,布尔值,枚举等,通过雅可比相似度来反映距离

 分裂型层次聚类算法:

 自上而下将数据拆成更小的聚类

 
k-means算法:效率最高(空间复杂度,时间复杂度),但是无法处理类别型数据,也无法处理异常点(实际上远离任何聚类的点)

 通过配置k值来确定中心点的数量

 根据数据到中心点的距离不断迭代调整中心点的位置,直到中心点不在大幅改变的时候

 (距离可采用欧几里德距离和Kullback-Leibler发散度等)

 
DBSCAN:基于密度的空间聚类算法(相较与k-means复杂度增大了,但是可以有效的去除异常点)

 用于根据eps(聚类圈的半径)和miniPoints(聚类内最小数据点数)找出数据集中的密度和噪声

 
BIRCH:通过数据挤压算法对大规模数据进行聚类算法

 

大数据规模下的聚类算法应该:

 1:通过采样,索引等的实现减少对数据的寻址

 2:随时都能够给出一个当前最好的结果

 3:算法能够暂停和恢复

 4:充分考虑内存限制

分类

通常我们将分类分为二分类和多分类
二分类:回答是或者否
多分类又分成离散的或者连续的

例如:

我们根据一段时间的股票情况来推测明天的股票,如果我们只想知道明天是涨还是跌那么就是离散的,如果我们想得到一个确切的预测值那么就是连续的

分类常使用的算法有:
统计算法
 1:回归算法:预测连续变量的值,通过一个待处理数据的线性函数,来拟合我们的数据,其本质是找到与数据最拟合的公式

  回归算法适合处理连续的数值变量,而不适合处理散列的数据(枚举等)常用的有logistic回归

 2:贝叶斯理论:常用的有朴素贝叶斯

 3:贝叶斯网络:将贝叶斯理论与概率网络结构组合在一起,描述变量间的依赖关系

结构算法

 1:基于规则的算法:决策树

 2:基于距离的算法:适用于低纬度,低复杂度的情况

  函数式分类器:类似回归,找出数据的近似数值

  最近邻算法:计算数据点与有效类别的距离,常用的有k最近邻k nearest neighbors,KNN 和 学习矢量量化learning vector quantization,LVQ

 3:神经网络:通过有计算能力的节点构造人工神经网络,来模拟人脑中神经元与连接神经元突触的结构(需要相当的数学背景)

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 网络 vector 优化
相关文章推荐