Power BI 中不被人知的聚类函数 KMEANSCLUSTERING

今天,讲聚类分析。

静态聚类分析

在 Power BI 中,有一种最简单的做法来实现聚类分析,那就是:

0d17185e68a0fa54d1e9adc61d42a23c.png

自动查找群集。

这个功能是非常容易学会的。只需要选择群集数即可,如下:

5867d47e17ba22c7e1d76e8c55ed749a.png

效果如下:

5c6d0b0b7f952e38299beccc0dcde750.png

至此,Power BI 已经帮助我们零代码实现了聚类分群的操作。

但这个划分,是静态的。当我们选择一个内容的时候,例如,某个产品分类,则得到:

212aadc1f38637e0af3cc2517334cfc7.png

这些客户会叠在一起,因为在这类产品类别下,并没有重新分群,而还是按照刚才的全局分群实现的。

动态聚类分析

来理解下,什么是动态效果,如下:

2660994e09b70d891b63c48ac6af34f9.gif

动态效果的含义,就是不论用户怎么选择,都可以动态做出分群,甚至根据群数来动态划分。

DAX 函数 KMEANSCLUSTERING

这里有一个重要的 DAX 函数,这个函数不保存在任何文档中,因此,你知道了这个函数,你就可以用来做很多可能。它就是:

KMEANSCLUSTERING

我们来实现刚刚的 4 分群,新建计算表,如下:

5f7c8d288716d593cf5d5fdba7fed929.png

新建计算表的 DAX 表达式为:

CustomerCluster = 
VAR __DS0Core = 
  SUMMARIZECOLUMNS(
      '客户'[客户名称], 
      "KPI_Sales", 'DAX'[KPI.Sales], 
      "KPI_Profit", 'DAX'[KPI.Profit])
  
VAR __Data = 
    SELECTCOLUMNS(
      __DS0Core,
      "客户名称", [客户名称],
      "KPI_Sales", [KPI_Sales],
      "KPI_Profit", [KPI_Profit]
    )
VAR __Result =
  KMEANSCLUSTERING(
    __Data,
    {
        ( "[KPI_Sales]"        , "Attribute"),
          ( "[KPI_Profit]"    , "Attribute"),
          ( "[客户名称]"        , "Item")
    },
    {
        ( "[客户名称]",     BLANK() ),
          ( "所属分群",     "ClusterId")
    },
    4
  )
  
RETURN 

    __Result

这里使用的 KMEANSCLUSTERING 根本不在 DAX 的文档中,如果你去查看相关文档,只能是该函数不存在,但实际上,这个函数是存在的,这是一个神奇的函数,它封装了 K-Means 聚类算法的精华。该函数接受四个参数:

  • 数据表

  • 输入格式定义

  • 输出格式定义

  • 分群数量

其中,输入格式定义中的 Attribute 表示这是一个分群时要考虑的属性;而 Item 表示要进行分群的元素。输出格式定义中的 BLANK () 表示不做定义;ClusterId 表示将计算得到的集群序号赋予此列。分群数量必须是 0 到 25 之间的整数。

特别注意,这里的 "[KPI_Sales]" 必须是 "[KPI_Sales]",而不能是 "KPI_Sales",这是一个特别的格式,记住就行了。

由于,在这个世界上根本没有这个函数的说明,以上规律通过实验得到,大家可以当作模板使用。

总结

本文给出了聚类分析的 DAX 函数以及模板用法,可以直接套用,同时指出了静态聚类与动态聚类分析的区别,对于如何进一步实现动态聚类分析可以关注后续文章。作为普通用户,请先理解本文,并先学习使用本文的聚类分析模板,高手可以自己尝试实现动态聚类分析。我们会在后续文章进一步给出解法。

在订阅了BI佐罗讲授的《BI真经》之《BI进行时》课程区,除了可以下载本文案例,还可以观看视频讲解。

a88bd495c531820226280d6f7a13bae3.png

Power BI 终极系列课程《BI真经》

52a3e2d68db5058910e3f78c716107be.jpeg

BI真经 - 让数据真正成为你的力量

BI佐罗严选推荐:必学书籍 精英眼镜 线下沙龙

扫码与精英一起讨论 Power BI,验证码:data2023

2b09587fffeadb35f2e2a22d9b6ada38.png

点击“阅读原文”进入学习中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值