我刚刚开始使用R我为电子商务零售业务分割客户数据库。我寻求关于进行此练习的最佳方法的一些指导。 我已经搜索了已发布在这里的主题,并像dist()和hclust()一样自己尝试了。但是我遇到了一个或另一个问题,因为我不习惯使用R而无法克服它。 以下是我的问题的简要说明。 到目前为止,我有大约480K的客户记录。该数据包含以下列:
此练习的业务目标是识别利润最高的细分受众群,并鼓励使用广告系列在这些细分受众群中重复购买。我是否可以获得有关如何成功完成此操作的指导,而不会遇到样本大小或列数据类型等问题?
答案 0 :(得分:1)
阅读this以了解如何对数据框进行子集。当您尝试定义d时,看起来您正在为大量数据提供方法,这可能通过首先对您的表进行子集化来修复。如果没有,您可能需要随机抽取数据而不是全部数据。假设您知道名为cust_data
的数据框的第4列到第10列包含数字数据,那么您可以尝试这样做:
cust_data2 <- cust_data[, 4:10]
d <- dist(cust_data2)
对于较大的值,您可能需要记录转换它们 - 只需进行实验并查看有意义的内容。我真的不确定这个,这只是一个建议。也许选择更合适的聚类或距离度量会更好。
最后,当你运行hclust时,你需要传入d矩阵,而不是原始数据集。
h <- hclust(d, "ave")
答案 1 :(得分:0)
可悲的是,您的数据不包含任何表明哪些类型的商品/交易未导致销售的属性。
我不确定聚类是否可以到达此处。
以下是一些想法:
首先将您的数据分成训练集(比如70%)和测试集。
设置一个简单的线性回归模型,例如,“平均篮子值”作为响应变量,所有其他变量作为自变量。
fit <-lm(averagebasketvalue ~., data = custdata)
在训练集上运行模型,确定重要属性(summary(fit)
输出中至少有一个星的属性),然后关注这些变量。
通过计算测试集上的R平方和平方误差和(SSE),检查测试集上的回归系数。你可以使用predict()函数,调用看起来像
fitpred <- predict(fit, newdata=testset)
summary(fitpred) # will give you R²
也许“city”包含太多有意义的唯一值。尝试通过引入一个新属性CityClass来推广它们(例如BigCity-MediumCity-SmallCity ...或任何分类方案对您的城市有用)。您也可以在“性别”上调整模型。删除“电子邮件ID”。
这可以持续一段时间......与模型一起尝试获得更好的R平方和SSE。
我认为基于树的模型(rpart)在这里也可能运行良好。
然后您可能会在以后更改为聚类分析。