数据挖掘笔记-聚类-KMeans-文档聚类

这篇笔记介绍了如何使用KMeans算法进行文档聚类。通过TF-IDF方法将文档转化为向量,利用余弦距离衡量文档间的相似性。初始聚类效果不佳,但经过特征选择和降维处理后,聚类结果得到显著改善。提供了Java实现代码链接。
摘要由CSDN通过智能技术生成

本篇主要是根据KMediods算法实现文档集的聚类。首先是要将需要聚类的文档进行向量化处理,这里采用的是TFIDF值来表示。文档之间的距离选用的是余弦距离,后面步骤没什么变化。KMediods算法聚类完成之后发现结果不是很理想,后面发现将数据降维后,结果还是比较理想的。

java实现代码如下:

public class DocKMediodsCluster extends AbstractCluster {
	
	//阀值
	public static final double THRESHOLD = 0.028;
	//迭代次数
	public static final int ITER_NUM = 10;
	
	/*
	 * 初始化数据
	 */
	public List<DataPoint> initData() {
		List<DataPoint> dataPoints = new ArrayList<DataPoint>();
		try {
			String path = DocKMediodsCluster.class.getClassLoader().getResource("测试").toURI().getPath();
			DocumentSet documentSet = DocumentLoader.loadDocumentSetByThread(path);
			List<Document> documents = documentSet.getDocuments();
			DocumentUtils.calculateTFIDF_0(documents);
			for(Document document : documents) {
				DataPoint dataPoint = new DataPoint();
				dataPoint.setValues(document.getTfidfWords());
				dataPoint.setCategory(document.getCategory());
				dataPoints.add(dataPoint);
			}
		} catch (URISyntaxException e) {
			e.printStackTrace();
		}
		return dataPoints;
	}
	
	//随机生成中心点,并生成初始的K个聚类
	public List<DataPointCluster> genInitCluster(List<DataPoint> points, int k) {
		List<DataPointCluster> clusters = new ArrayList<DataPointCluster>();
		Random random = new Random();
		Set<String> categories = new HashSet<String>();
		while
K-means聚类算法是一种常用的数据聚类算法,它通过计算样本之间的距离来将数据分成K个簇。SPSS是一款统计分析软件,也提供了K-means聚类算法的实现功能。 在SPSS中,使用K-means算法进行聚类分析的步骤如下: 1. 首先,打开数据文件,并选择要进行聚类分析的变量。 2. 然后,选择"分析"菜单下的"分类"选项,再选择"K-均值聚类"。 3. 在弹出的对话框中,将待分析的变量移动到"变量"框中,并设置聚类的数量K。 4. 可以选择对初始聚类中心进行优化,方法是勾选"K-means算法初始化K个聚类中心"选项。 5. 最后,点击"确定"按钮,SPSS会进行计算并生成聚类结果。 K-means算法对分类问题的处理简单、快速,并且在处理大数据集时相对高效。在选择初始聚类中心时,算法的基本原则是让初始聚类中心之间的相互距离尽可能远,以保证聚类结果的准确性。 至于K值的确定,可以使用层次聚类的方法进行讨论和选择。层次聚类是一种将数据层次化分组的方法,它可以帮助确定最佳的K值。 综上所述,K-means聚类算法是一种常用的数据聚类方法,在SPSS中可以方便地进行实现和分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [清风数学建模学习笔记——K-means聚类模型详解及SPSS操作流程](https://blog.csdn.net/weixin_43819566/article/details/113794705)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [聚类算法:K-means聚类与系统(层次)聚类SPSS操作](https://blog.csdn.net/yanyanwenmeng/article/details/105794136)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值