有一批顾客都购买了某种产品,我想知道用什么算法能找出这些顾客的共性?

0
如果我想知道哪些顾客买了A产品,可以用聚类算法,但是如果我已经知道有哪些顾客买了A产品,也就是说,我的数据集就是购买A产品的顾客,我现在想知道这些顾客的共性,哪些因素驱使他购买了这个A产品,比如说性别,收入等,用什么算法?
已邀请:
7

brucelu - 大数据、数据仓库、数据挖掘均有涉猎 2013-07-11 回答

细致地看了下主题,主题的目的是为了了解客户的共性,研究这些共性中哪些因素对购买产品的客户产生较大的驱动影响,不是为了做预测。
工作环境用的clementine建模:
模型建立.jpg

先上个决策树的图:
决策树.jpg

可以看到,这个树状图是利用已知事件计算发生概率,然后直观运用概率分析的一种图解的方法。
那么,首先在方法上决策树目前还是用不到的(决策树是分类决策,但是我们这边已经知道是买了A产品的客户,已经定类了)
还是继续分析主题,主题分析的是已购买A产品的客户,即购买状态为 ”1“ ,已经了解哪些客户买了A产品,也就是说大致了解客户的基本属性。那么下面我们要做的就是分析步骤:分析客户的共性,其实就是分析客户购买A产品的某种或多种属性影响比重。
(说明一下,影响产品购买的因素不仅仅止于客户自身因素,也可能天气、时间等因素影响,我就仅仅围绕客户简单说一下)
(1)如果客户的基本属性较少,可以做简单的频次统计
比如:只有客户基础属性只有年龄、性别,买A产品的客户年龄频次各阶段都有,分布较乱,而性别很一致都是男性,那么影响A产品购买的重点因素就是性别了。
QQ图片20130711152221.jpg

如图所示,显而易见。
(2)如果客户的基本属性较多,比如有10多个属性,那如何处理呢?哪些属性(因素)影响客户购买呢?首先可考虑的是主成分(因子)分析,这个方法其实就是属于降维的过程,从这10多个属性中选取影响系数较大的属性,选出主要影响因素。
测试数据(只有7个影响因素,如果喜欢可以设置更多个进行测试):
测试数据.jpg

先上个图看看主成分分析的效果:
主成分.jpg

经过处理,图中主成分就变成5个了,维度减少2了,但是一个纠结的地方就是,总结原因,除非你事先打算好了。我就拿主成分1说吧,性别、年龄、学历、是否已婚影响成分1的比重较大,累计贡献度23.5%,说明客户的阅历(性别、年龄、学历、是否已婚我不知道怎么称呼就简称阅历了)对其购买该产品影响较大,其他主成分可以同1类似比较。
除此之外用K-means进行分类测试过,但是K-means的缺点也是有的,分类是自己去设定的,事先并不知道影响因素该划分为哪几类等缺陷,可以考虑TwoStep-Cluster两步聚类(自动选择聚类数量)。
K-means.jpg

除此之外KNN、bayes分类、SVM这些分类算法都是可以去学习一下,支持向量机算法个人感觉很不错(不一定使用此主题)。
目前本人了解的方法大致有这么一些,部分算法不好一一赘述,大家可以酌情使用。
3

悲伤穿成佛珠 2013-07-11 回答

某段时间内比如6月份,顾客分为两类,1——购买A产品,0——未购买A产品。

然后收集6月份之前所有可能影响顾客是否购买A产品的任何结构化信息,

可能是性别,年龄,教育程度,收入,之前的R,F,M,也可能是之前购买的产品,之前的购买渠道,还可能是是否投诉,是否经常接触,等等你能收集到的信息。但是注意,很相关的两个因素,只取其中的一个,比如销售额和毛利,否则会加强这个因素对结果的影响。你可能收集100个,200个因素,都没有关系。把数据处理一下离群值,极值,不合常理的值, 选择一种算法,剩下的就都交给机器去做了。

算法方面主要是:决策树和神经网络,又分别包含不同的子算法,这些网上可以找到相关资料。

软件方面,容易上手的事SPSS和clementime,也可以去找相关教程。

影响是否购买的因素作为输入变量,是否购买作为输出变量,让机器去找:哪些变量对结果是0或1影响更大。

在这些步骤里面,最重要的,我认为还是对业务的理解:找到那些可能影响是否购买这个结果的因素,并且恰当的把这些因素用结构化语言表示出来。有些变量是离散值,如年龄,你要把它处理成分类值。等等。
3

vipchg - 少一事不如多一事 2013-08-02 回答

首先看到这个题目“有一批顾客都购买了某种产品,我想知道用什么算法能找出这些顾客的共性?”,觉得很熟悉,但是又觉得和一般的分析模型有些区别。
一般的数据仓库建模很容易分析关于这种顾客交易案例。典型的模型就是:事实表(顾客购买事实表),顾客维度,产品维度。显然这样分析是达不到这个题目的要求:找出顾客的共性,最初的感觉就是本来顾客一般是维度,这里却分析顾客维度的某种事实。事出无常,必有妖,呵呵。
那么,怎么分析呢,我就用常用的方法来套用,一步一步开始打草稿好了。
时间万物,万变不离其宗。所有的信息先罗列一下:有三个基本信息:(1):顾客信息(年龄,地址,学历,收入……等各种属性)。 (2):商品信息(生产产地,包装,售出地点,是否打折……)。 (3):就是顾客购买商品的行为(购买记录信息,每次顾客购买了哪些商品)。 有了上面三个基本信息后,就开始分析我们最终要分析的目标:购买了商品的顾客的共性。 哪些共性呢,具体点嘛。
a: 年龄在10-20岁有多少,20-30有多少……
b:收入是在1000以下,1000-2000……有多少
c:性别是男的占所有的百分比是多少……
f:…………………………
凡是我们觉得哪些可能有分析价值的都写在上面好了。 写完了后,心里有些窃喜,为什么呢,貌似这些分析目标有个很容易识别的结论:都是数字,百分比啊,年龄段啊,收入段啊什么的。恩,这不正是事实表的分析事实指标吗?
回头想想,一般的事实表都存在一个动态的行为,销售记录,每个顾客买了某些产品就在表了增加一条销售记录,而顾客和商品是这个事实表的两个维度。显然,顾客和商品在这里基本上不能作为事实表。那就只剩下顾客购买商品这个销售事实了。但是这个销售记录里面并没有我们的目标想要的那种年龄啊,收入啊,性别啊这种数字事实信息,没关系。如果能关联到事实表里面不就可以了吗。
数据仓库有一个难点,貌似是如何确定事实表。记得书上给出了一个方法,就是,要能用一句话来描述事实表的每一行是什么意思。 这里我也套用一下试试:“每个顾客购买了某种商品”。那指标呢,那就按照我们的目标一个一个往事实表里面添加: 比如:性别,男,女,显然,通过顾客id可以关联出这条记录的顾客的性别,要么是男(1表示),要么是女(0表示),显然,一个case语句就可以做到把性别添加到事实表形成指标。显然,如果有一个性别维度的话,这不就很容易分析出下面的结论:性别维度、商品维度,销售事实,这样的信息完全符合一般数据仓库建模的要求。ok……貌似做出了第一个顾客的共性:即购买了A商品(商品维度)的事实中,男女的占总是得百分比各是多少。
接下里做第二个,收入共性? 这个可以用事实表的顾客id与顾客信息表关联出顾客的收入具体数据放到事实表里面,接下来很容易想到,把收入分段形成收入分段维度,一个case when 就可搞定。于是,在上面的模型里面增加一个收入段维度表。这样,然后再这样……呵呵,你懂的。
接下来分析第三个共性,年龄,慢着,这貌似和上面是一样的哦,于是,这样,再这样……

按照上面的模型来设计的话,基本上可以做出来了。回头再看看有没有什么问题哦,比如:如果要用户想再分析一个共性,比如购买了某商品的结过婚的比例是多少? 怎么办呢,那明显是要增加一个维度,再增加事实列即可。这就带来了另外一个问题,随着用户需求的增加,模型里面的维度会越来越多,会不会有几十个维度存在呢,到最后? 显然是可能的。
那有没有办法避免这种维度随时都在增加呢? 等等,为什么要增加维度,好像是因为增加了指标(共性)导致的,那如果我们在设计模型的时候就已经把客户的所有需求都考虑进去了的话,那就可以避免反复修改模型的痛苦了。这个恐怕就是模型分析师该考虑的问题了,而不能等用户哪天想起一个提一个需求了。
如果这样设计的话,分析师可能最初就会得出二三十个维度模型,这还是没有解决维度过多的问题哦?怎么办呢?,怎么办呢?????? 等下次分解了,等你来解决罗。
0

尘埃落定 - The Best Way to Learn is to Teach! 2013-07-11 回答

这个题属于数据挖掘中的分类方法,算法可以用决策树算法。数据挖掘相关技术我接触的少,希望大牛们能详细说下。
0

leon - 我吃掉了一辆奔驰 2015-08-05 回答

很高深的内容,学习下

要回复问题请先登录注册