数据挖掘笔记(六)

以下笔记来自于学堂在线上清华大学的视频网课《80240372X 数据挖掘:理论与算法》,本笔记仅用于个人学习。如有错误,感谢指正。

一、聚类简介

  • 对数据集划分的簇应满足:簇内距离尽量小,簇间距离尽量大。
  • 聚类属于无监督学习:无标签,且聚类结果没有对错之分。
  • 应用:市场营销对客户划分、地震对区域划分、社区发现、色块聚类做图像分割
  • 要求:需要处理任意形状的数据、能处理噪点和离群点等
  • 坐标变换的选取、标准化的与否等预处理都可能会造成不同的结果!

二、K-Means算法

  • 太常用了,不细写过程了。
  • 时间复杂度:O(tkn),t为迭代次数,k为中心点数(通常不会很大),n为数据点个数。
  • 反映了最大期望的优化思想。
  • 优点: 对球形、高斯数据的分簇效果好;收敛非常快;简单。
  • 缺点: k值不能预先判断;可能会形成局部最优点(迭代的算法都会遇到该问题,可以通过重新初始化随机点来避免该问题);噪点等异常点造成的影响大;球形以外的簇形效果不好。

三、Sequential Leader聚类

  • 原理类似K-Means。
  • 时间复杂度:O(kn)
  • 对计算过程的理解:每个新来的点和原来类别的距离若低于阈值,则纳入原来的类别,否则认为为新类别。
  • 优点:不需要迭代,非常简单;可以处理流数据,因为它是一个一个计算的;不需要K值。
  • 缺点:流入数据的顺序对结果有影响;局部最优。

四、基于模型的聚类:高斯混合模型

  • 基于数学模型的算法结果更准确,计算将得到属于簇类的概率是多少,数据将属于概率最高的簇。
  • 决定高斯函数的两个参数:μ、σ²
  • 期望最大(EM):模型参数与隐含参数反复迭代得到结果(K-Means也用到了这种思路)。
  • 优点:更精确,还可以将模型拿来生成数据(这才是真正掌握数据的特征)。
  • 缺点:只适用于基本符合高斯分布的数据;局部最优。

五、基于密度的聚类:DBSCAN

  • 利用连通性/可达性:簇内能有一条路径到达。
  • 理解:直接密度可达则将被纳为一个簇。
  • 涉及的参数:Epsilon(在半径内的点将直接密度可达;该值越大,决定最终簇数可能越少)、Minpoint(每个簇内的最少点,簇内的点数若少于该值,认为无法形成簇,该簇的点被视为噪声点)。
  • 优点:可处理非规则图形(!!!),能够实现降噪处理。
  • 缺点:难以确定上述的两个参数的值。

六、层次聚类

  • 基于最小/最大距离
  • 优点:任意多簇。
  • 缺点:距离计算方法不同,聚类的结果也将不同。

七、聚类算法结果的评价

  • 无监督学习无法说明聚类结果的对错,只能对结果的**内聚性(簇内)耦合性(簇间)**进行评价!
  • 评价指标1——Je,计算公式如下:
    在这里插入图片描述 其中,mi:
    在这里插入图片描述
    je越小,说明越紧密,该指标反映了内聚性,但没有考虑耦合性(簇间)。
  • 轮廓系数:
    在这里插入图片描述

该参数同时考虑了内聚性和耦合性!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据挖掘学习笔记主要包括以下几个方面的内容:Python基础知识、Python爬虫技术、Python数据分析与数据挖掘。其中,Python基础知识部分介绍了Python编程语言的基本语法、数据类型、流程控制等内容,为数据挖掘的学习打下了基础。Python爬虫技术部分介绍了如何使用Python编写爬虫程序,从网页中获取所需数据。Python数据分析与数据挖掘部分则介绍了使用Python进行数据分析和数据挖掘的相关技术和工具。 在Python数据挖掘中,还涉及到一些扩展库的使用,可以使用pip或apt-get进行安装,例如numpy库可以使用命令"sudo pip install numpy"或"sudo apt-get install python-numpy"进行安装。 另外,Matplotlib是Python中最常用的绘图库之一,主要用于绘制二维图形,也可以绘制简单的三维图形。下面是一个使用Matplotlib进行简单绘图的示例代码: ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 1000) y = np.sin(x) z = np.cos(x ** 2) plt.figure(figsize=(8, 4)) plt.plot(x, y, label='$\sin x$', color='red', linewidth=2) plt.plot(x, z, 'b--', label='$\cos x^2$') plt.xlabel('Time(s)') plt.ylabel('Volt') plt.title('A Simple Example') plt.ylim(0, 2.2) plt.legend() plt.show() ``` 这段代码使用了numpy库生成了一组x轴的数据,然后分别计算了对应的y轴和z轴的数值。接下来使用Matplotlib进行绘图,其中plt.plot函数用于绘制曲线,plt.xlabel和plt.ylabel分别设置x轴和y轴的标签,plt.title设置图的标题,plt.ylim设置y轴的范围,plt.legend用于显示图例,plt.show用于显示图形。 通过学习这些内容,你可以掌握Python数据挖掘的基本知识和常用技术,为进一步的学习和实践打下坚实的基础。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python数据挖掘学习笔记](https://blog.csdn.net/yinghuoai/article/details/88392141)[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_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python数据挖掘笔记](https://blog.csdn.net/djm82755/article/details/101452842)[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_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值