首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚类混合数据

聚类混合数据
EN

Data Science用户
提问于 2017-11-19 16:37:13
回答 1查看 446关注 0票数 -1

我有90000条客户细分记录,包括数字、标称和序数变量:

代码语言:javascript
复制
*houselhold_ID* ID for household

*quantity*: integer, number of products bought

*price*: values 1 to 3 with 1 for 0-5, 2 for 5-8 and 3 for 8-10

*product name*: nominal values 1 to 9 representing 9 different products like different kind of cheese...

*duration*: days from the current buy to the next buy.

*age*: catgeorical age groups: 1: 0-24 years, 2: 25-39 years, 3: 40-59 etc.

*salary*: 1: to 1499 2 : 1500 bis 2499 3 : 2500 bis 3499 4 : 3500 or more 

*number_of_persons_household*: integer 

*price_con*: price conscious: 1 to 4 for not price conscious 
to very price conscious

*education*: 1 to 3 for lower education to high school/university.

我已经做了异常点的检测,并删除了他们的小频率。大多数家庭有40次购买。

我想在R中进行聚类分析,以便在这些数据中找到模式。

我目前运行kmodes,并希望测试kproto。

但我的问题是:

有什么可能像Hopkin统计数据那样的聚类,比如数值吗?

如果我有两个以上的类,是否也有一种可视化?这样就可以将数据点可视化到组中。

也许有人有处理这类数据的经验。我对分析这些数据的提示和技巧持开放态度。

编辑:

下面是kmodes的肘形图,共有15次迭代和20000条记录,全部为90000次:

那么2或3个簇是好的吗?

EDIT2:

我现在在R中做了一个多因素分析,另外,我做了一些持续时间变量的工程。我将变量分为三组,分别按低、中、高时长的平均分位数和分位数划分。

代码语言:javascript
复制
library("FactoMineR")
library("factoextra")
    res.mfa <- MFA(dat[1:20000,], 
                   group = c(1, 1, 1, 1,1,1,1,1,1), 
                   type = c("c", "n", "n", "n", "n","c","n","n","n"),
                   name.group = c("quantity","price","product",
                                  "age","salary","persn","price_con","edu", "duration"),

                   graph = FALSE)

我对每个变量都使用了一个组。结果似乎很糟糕。只有30%的方差可以用6个维度来解释?!这么糟?

有什么想法吗?

EN

回答 1

Data Science用户

回答已采纳

发布于 2017-11-19 23:14:13

尝试HAC与高尔的相似性。

这是一种非常启发式的方法--没有什么能使你免于加权变量--但值得一试。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/24923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档