博客:www.jiaopengzi.com

焦棚子的文章目录

请点击下载附件

1、背景

昨天在看论坛帖子时候(帖子),看到一个关于SKU组合的问题,有很多M大佬都给出了处理方案,于是想用dax也写一个。

注:

原贴有dax的写法,这里主要说明下GENERATE之笛卡尔积、排列、组合处理过程。

上效果图


左起依次表名:data、笛卡尔积、排列、组合

2、问题

1、大前提是使我们要使用data的数据做购物篮分析分组;

2、在问题1已的基础上,笛卡尔积表(5*5)存在类似黄色区域问题,SKU两两相同,这是不需要看到的;

3、在问题1的基础上,排列表(见图中公式)存在类似绿色区域的问题,SKU1对SKU2和SKU2对SKU1其实是一样的,这也是我们不需要看到的;

4、基于以上,我们通过笛卡尔积-排列-组合这样 处理下来得到我们要的购物篮分组。

3、上DAX

1、笛卡尔积

DEFINE
VAR T1 =
SELECTCOLUMNS ( data, "SKUA", data[SKU] )
VAR T2 =
SELECTCOLUMNS ( data, "SKUB", data[SKU] )
VAR T3 =
GENERATE ( T1, T2 )
EVALUATE
T3
ORDER BY
[SKUA],
[SKUB] ASC

2、排列

DEFINE
VAR T1 =
SELECTCOLUMNS ( data, "SKUA", data[SKU] )
VAR T2 =
SELECTCOLUMNS ( data, "SKUB", data[SKU] )
VAR T3 =
GENERATE ( T1, T2 )
VAR T4 =
FILTER ( T3, [SKUA] <> [SKUB] )
EVALUATE

T4

ORDER BY

[SKUA],

[SKUB] ASC

4、组合

DEFINE
VAR T1 =
SELECTCOLUMNS ( data, "SKUA", data[SKU] )
VAR T2 =
SELECTCOLUMNS ( data, "SKUB", data[SKU] )
VAR T3 =
GENERATE ( T1, T2 )
VAR T4 =
FILTER ( T3, [SKUA] <> [SKUB] )
VAR T5 =
DISTINCT (
SELECTCOLUMNS (
ADDCOLUMNS (
T4,
"AB", IF ( [SKUA] < [SKUB], [SKUA] & [SKUB], [SKUB] & [SKUA] )
),
"AB", [AB]
)
)
VAR T6 =
FILTER ( ADDCOLUMNS ( T4, "AB", [SKUA] & [SKUB] ), [AB] IN T5 )
VAR T7 =
SUMMARIZE ( T6, [SKUA], [SKUB] )
EVALUATE
T7
ORDER BY
[SKUA],
[SKUB] ASC

4、总结

1、以上问题基于购物篮分析产生,所以需要组合结果;

2、在实际需求中肯定这三种都是有需求的;

3、处理GENERATE,两列名称不能相同,于是有了上述的GENERATE ( T1, T2 ),而不是GENERATE ( T1, T1);

4、处理从排列到组合的思路主要是利用两两组合排序后去重即可,分步体会从T1-T7的过程。

by 焦棚子

焦棚子的文章目录

108_Power Pivot购物篮分析分组GENERATE之笛卡尔积、排列、组合的更多相关文章

  1. 数据算法 --hadoop/spark数据处理技巧 --(5.移动平均 6. 数据挖掘之购物篮分析MBA)

    五.移动平均 多个连续周期的时间序列数据平均值(按相同时间间隔得到的观察值,如每小时一次或每天一次)称为移动平均.之所以称之为移动,是因为随着新的时间序列数据的到来,要不断重新计算这个平均值,由于会删 ...

  2. Apriori算法在购物篮分析中的运用

    购物篮分析是一个很经典的数据挖掘案例,运用到了Apriori算法.下面从网上下载的一超市某月份的数据库,利用Apriori算法进行管理分析.例子使用Python+MongoDB 处理过程1 数据建模( ...

  3. R语言和数据分析十大:购物篮分析

    提到数据挖掘,我们的第一个反应是之前的啤酒和尿布的故事听说过,这个故事是一个典型的数据挖掘关联规则.篮分析的传统线性回归之间的主要差别的差别,对于离散数据的相关性分析: 常见的关联规则: 关联规则:牛 ...

  4. 数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)

    在各种数据挖掘算法中,关联规则挖掘算是比較重要的一种,尤其是受购物篮分析的影响,关联规则被应用到非常多实际业务中,本文对关联规则挖掘做一个小的总结. 首先,和聚类算法一样,关联规则挖掘属于无监督学习方 ...

  5. 关联规则之Aprior算法(购物篮分析)

    0.支持度与置信度 <mahout实战>与<机器学习实战>一起该买的记录数占所有商品记录总数的比例——支持度(整体) 买了<mahout实战>与<机器学习实战 ...

  6. 016 Spark中关于购物篮的设计,以及优化(两个点)

    一:介绍 1.购物篮的定义 2.适用场景 3.相关概念 4.步骤 5.编程实现 6.步骤 二:程序 1.程序 package com.ibeifeng.senior.mba.association i ...

  7. 购物篮模型&Apriori算法

    一.频繁项集 若I是一个项集,I的支持度指包含I的购物篮数目,若I的支持度>=S,则称I是频繁项集.其中,S是支持度阈值. 1.应用 "尿布和啤酒" 关联概念:寻找多篇文章中 ...

  8. 购物篮算法的理解-基于R的应用

    是无监督机器学习方法,用于知识发现,而非预测,无需事先对训练数据进行打标签,因为无监督学习没有训练这个步骤.缺点是很难对关联规则学习器进行模型评估,一般都可以通过肉眼观测结果是否合理. 一,概念术语 ...

  9. SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

    聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...

随机推荐

  1. 推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库

    推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库 0. 引言 如果你是一个游戏开发者,并且正在寻找一个可以与 JavaScript 和 HTML5 无缝工作的游戏引擎.那么 ...

  2. notification(浏览器通知)

    一.notification简介 Web Notifications是HTML5 的一个特性,目前我知道的有谷歌浏览器和windows edge对它进行了支持,用于向用户配置和显示桌面通知. 二.no ...

  3. CentOS 7.9 网络配置

    vi /etc/sysconfig/network-scripts/ifcfg-ens33 (45条消息) CentOS 7.9 网络配置_$青的博客-CSDN博客_centos7.9网卡配置

  4. nodejs全局对象简析

    Global:全局变量 定时器.控制台输出.事件 模块化相关的一些全局变量 path/url相关的一些全局变量 编码相关的 buffer:缓存(简单介绍) Process:进程(重点解析) 一.Glo ...

  5. python入门-开始

    1.为啥要学Python? 各种语言的优劣势对比视频版:https://www.bilibili.com/video/BV1y3411r7pX/?spm_id_from=autoNext 各种语言的优 ...

  6. python---十进制转换成n进制

    """ 十进制转换成n进制 例子: 100转换成8进制-----144 256除8 商32 余0 32除8 商4 余0 4除8 商0 余4 每次结果的余数进栈, 最后出栈 ...

  7. 物理层(PHY)

    一.物理层的定义 物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础.物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境.如果您想要用尽量少的词来记住这个第一层, ...

  8. vue--vuex 状态管理模式

    前言 vuex作为vue的核心插件,同时在开发中也是必不可少的基础模块,本文来总结一下相关知识点. 正文 1.基于单向数据流问题而产生了Vuex 单向数据流是vue 中父子组件的核心概念,props ...

  9. fs本地文件系统

    node 中有一个内置模块,fs全称flie system 文件系统,可以对本地文件执行增删改查操作(以下为异步相关API) 先引入内置模块   var fs=require('fs') 1,增: w ...

  10. 深度学习教程 | Seq2Seq序列模型和注意力机制

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/35 本文地址:http://www.showmeai.tech/article-det ...