网站首页 > 技术文章 正文
1 聚类是将数据对象分组为多个类或簇(cluster),同类对象间具有较高的相似性,不同类的对象间具有较大的差异性。聚类的过程属于无监督学习,数据样本不需要预先标记类别,也没有预先定义的类别。直观地理解,聚类是设法通过特征和聚类模型来挖掘隐含在各种样本数据内部的相似关系,并把相似的样本数据聚集在一起。聚类方法的性能完全依赖样本特征的表示、相似度的计算以及聚类的工作原理(聚类方法)。聚类方法类型:基于质心的聚类方法,如k-均值、k-中心点聚类;层次聚类方法,如凝聚型层次聚类、分裂型层次聚类。基于密度的聚类方法,流行的算法是DBSCAN和OPTICS;基于分布的聚类模型。
2 文本聚类(Text Cluster)是自动地按照内容的相似度将文本分组聚为若干类。在文本聚类过程中,文档特征、文档相似度和聚类模型是三个主要问题。文本聚类的目标:通过聚类,找到满足如下条件的一些类的集合:类内部的文本相似度尽可能大,而类之间的文本相似度尽可能小。文本聚类的性能与所使用的特征和模型密切相关,常用的模型包括k-均值(k-means)聚类、k-中心点(k-medoids)聚类、近邻传播(Affinith Propagation, AP)聚类。
3 文本聚类的常用特征表示
文本聚类是将相似的文档聚在一起,而文本分类是一具文档的内容将文档归到相应的类别中,二者都需要文档特征的表示。目前许多文本聚类的特征表示方法与文本分类相同。词袋模型;TF-IDF模型等;通过将文本中的词项表示为向量后,文本就处于向量空间中,对文本内容的聚类处理就转化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度。
2.1 k-均值聚类
基本思想:事先确定常数k,常数k意味着最终的聚类类别数。首先随机选定初始点为质心,并通过计算每一个样本与质心之间的欧式距离,将样本点归到最相似的类中,接着重新计算每个类的质心(即为类中心),重复该过程,直到质心不再改变,最终就确定了每个样本所属的类别以及每个类的质心。质心:同一类中所有对象求均值作为该类的质心。质心并不一定是聚类中的真实对象,可看作是一个虚拟对象。聚类结果:每个对象对所在类的质心的距离相比到其他类质心的距离都小。
2.1 k-均值聚类
工作过程:1.初始划分:从n个数据对象任意选择(或按照某种策略选择)k个对象作为初始聚类中心。2.对象划分到类:计算各个对象与聚类中心的距离,然后将他们分别归到最近的中心所在的类中。3.计算新的聚类中心:依据上一步的聚类结果,计算各个类中所有对象的均值,并将其作为新的各个聚类中心。4.终止条件:如果新的聚类中心与上一次聚类中心没有变化(即各个对象的类别不发生变化),或达到指定的迭代次数则聚类完成;否则回到步骤2进行下一次迭代计算。
2.1 k-均值聚类
特点:1.k值需要预先指定。2.初始聚类中心的选择对聚类结果有较大影响。3.k-均值算法通过距离衡量到聚类中心的接近程度,各个类属于球形聚类空间,不能解决非球形聚类。4.对噪声和离群值非常敏感。
实现(python)
KMeans()中的可选参数:
n_clusters:类的个数,即你想聚成几类
max_iter:最大迭代次数
N_init:用不同的初始化质心运行算法的次数,默认为10.
init:选择初始质心的方式,默认为k-means++
KMeans()中的属性
cluster_centers_:返回最终聚类质心的坐标,向量形式,[n_clusters, n_features]
Labels_: 每个对象的类别
inertia_: 每个点到所在类的质心的距离之和
KMeans()中的方法:
fit(X[,y]): 计算数据X的k-means聚类
fit_predict(X[,y]): 计算所在类质心并给每个样本预测类
fit_transform(X[,y]):聚类并 transform X to cluster-distance space。
predict(X):predict(X) :给每个样本估计最接近的簇。
score(X[,y]): 计算聚类误差 transform(X[,y]): 将X转换为群集距离空间。
- 上一篇: 了解随机游走模型和移动平均过程(Python)
- 下一篇: Python方差分析
猜你喜欢
- 2025-01-14 整理20个Pandas统计函数
- 2025-01-14 一文带您精通Python 函数:全方位指南
- 2025-01-14 python机器学习:线性回归中的哑变量转换
- 2025-01-14 Python启航:30天编程速成之旅(第21天)- random
- 2025-01-14 字节跳动全链路压测(Rhino)的实践
- 2025-01-14 一次Java和Python的简单且直观的比较
- 2025-01-14 关于Python函数,你应该知道以下几点基础知识
- 2025-01-14 Python实现概率分布,学数据统计的需要收藏
- 2025-01-14 Python方差分析
- 2025-01-14 了解随机游走模型和移动平均过程(Python)
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)