数据挖掘流程

FLowchart:

Created with Raphaël 2.2.0 原始数据 数据探索与预处理 数据建模 分析反馈

获取原始数据

采用爬虫或者其他方法获取航空公司客户的相关数据

数据探索

  • 对数据进行缺失值异常值分析,去除空值项和异常项。统计每列属性的特征:最大值,最小值等;把握数据的规律。

数据预处理

在了解数据的一般特征后,对数据进行清洗,属性规约,数据变换等操作。

  • 数据清洗:对于缺失值:原始数据量的则可以直接清楚缺失项;异常值过大或者过小也一样。 Pandas模块;根据数据的语义分析,去除不合理项。
  • 属性规约:丢弃与挖掘目标不相关的属性或冗余属性。
  • 数据变换:将数据转换为合适的格式和将原始数据的属性转换为便于挖掘的属性,适应后续建模的需要。比如单位转换;属性间的计算。

数据建模

此次挖掘目标是对航空公司的客户进行价值分析,并分类。

  • 采用K-Means聚类算法对数据进行客户分群。这里聚成5类(k=5)。Scikit-Learn库的sklearn.cluster子库
  • 得到5维的聚类中心点。
  • 对客户价值进行分析:数据可视化

K-Means聚类算法详解

算法思想

k-means算法的思想比较简单,假设我们要把数据分成K个类,大概可以分为以下几个步骤:

  • 随机选取k个点,作为聚类中心;

  • 计算每个点分别到k个聚类中心的聚类,然后将该点分到最近的聚类中心,这样就行成了k个簇;

  • 再重新计算每个簇的质心(均值);

  • 重复以上2~4步,直到质心的位置不再发生变化或者达到设定的迭代次数。

算法流程图解

例:

  • 假设我们首先拿到了这样一个数据,要把它分成两类,K=2:

数据挖掘实践

  • 首先我们随机选取两个点作为聚类中心(因为已经明确是分为两类):

数据挖掘实践

  • 接下来就可以开始计算每个点到红点和蓝点的距离了,离红点近就标记为红色,离蓝点近就标记为蓝色。结果为下图:

数据挖掘实践

  • 很明显,这样完全不是我们想要的结果,接下来我们进行第三步,重新计算聚类中心的位置。
    数据挖掘实践
  • 红X和蓝X都向中间靠拢了一点。我们可以看到,聚类中心发生改变后,其他点离两个聚类中心的距离也跟随着发生了变化。
  • 然后我们重复第二步,根据每个点到两个聚类中心的距离远近来进行重新分类,离红X近的归为红类,离蓝X近的归为蓝类。

数据挖掘实践

  • 之前站错了队伍的一些点重新进行了调整,现在的分类离我们的目标越来越近了,但还没有达到最佳的分类效果。
  • 接下来继续重复上面的步骤,重新计算聚类中心的位置,再重新分类,不断迭代,直至聚类中心的位置不再变化(变化范围达到设定值)或达到迭代次数为止。

数据挖掘实践

算法优化

判断依据

要使K-Means最后的分类结果最好,也就是要是K-均值最小化,即所有的数据点与其所关联的聚类中心点之间的距离之和最小。

合理选择K的大小

  • 即分成几类,根据挖掘需求和经验选取。虽然随着K值的增大,所有的数据点与其所关联的聚类中心点之间的距离之和会逐渐减小,但不是越大越好,需要合乎挖掘求进行分类。

合理初始化聚类中心

  • 选取原有数据作为聚类中心
  • 进行多次随机聚类中心选取,选取迭代完成后效果最好的一次。说明聚类效果最优,

相关文章:

  • 2021-12-03
  • 2021-11-02
  • 2021-11-02
  • 2022-12-23
  • 2021-04-08
  • 2021-09-25
  • 2021-12-10
猜你喜欢
  • 2021-08-20
  • 2021-08-09
  • 2021-09-08
  • 2022-01-06
  • 2021-11-29
  • 2021-12-06
  • 2021-10-18
相关资源
相似解决方案