簡體   English   中英

使用R對大數據樣本進行聚類分析

[英]Cluster Analysis using R for large data sample

我剛開始使用RI have細分電子商務零售業務的客戶數據庫。 我尋求有關進行此練習的最佳方法的一些指導。 我搜索了已經在此處發布的主題,並像dist()和hclust()一樣嘗試了它們。 但是,由於我不熟悉R,因此我遇到了一個或另一個問題,無法解決。這是我的問題的簡要說明。 到目前為止,我有大約480K的購買記錄。 數據包含以下列:

  • 電子郵件ID
  • 性別
  • 到目前為止的總交易
  • 平均籃子價值
  • 平均購物籃尺寸(一次交易中購買的商品數量)
  • 每筆交易要求的平均折扣
  • 自用戶首次購買以來的天數
  • 兩次購買之間的平均持續時間
  • 自上次交易以來的天數

此練習的業務目標是確定最有利可圖的細分,並鼓勵通過廣告系列在這些細分中重復購買。 我能否獲得一些成功完成操作的指導,而又不會遇到樣本大小或列的數據類型之類的問題?

閱讀本文以了解如何對數據幀進行子集化。 當您嘗試定義d時,您似乎在提供大量數據的方法,這可能是通過先對表進行子設置來解決的。 如果不是這樣,您可能希望對數據進行隨機抽樣而不是對所有數據進行抽樣。 假設您知道數據框cust_data 4到10列包含數字數據,那么您可以嘗試以下操作:

cust_data2 <- cust_data[, 4:10]
d <- dist(cust_data2)

對於較大的值,您可能需要對它們進行對數轉換-進行實驗,看看有什么意義。 我對此確實不確定,這只是一個建議。 也許選擇一個更合適的聚類或距離度量會更好。

最后,當您運行hclust時,您需要傳遞d矩陣,而不是原始數據集。

h <- hclust(d, "ave")

遺憾的是,您的數據不包含任何屬性,這些屬性指示哪些類型的項目/交易未促成銷售。

我不確定群集是否是解決問題的方法。

這里有一些想法:

首先將您的數據分成一個訓練集(例如70%)和一個測試集。

建立一個簡單的線性回歸模型,例如將“平均籃子值”作為響應變量,並將所有其他變量作為自變量。

fit <-lm(averagebasketvalue ~., data = custdata)

在訓練集上運行模型,確定重要屬性(在summary(fit)輸出中至少具有一顆星的屬性),然后關注這些變量。

通過計算測試集上的R平方和誤差平方和(SSE),檢查測試集上的回歸系數。 您可以使用predict()函數,調用看起來像

fitpred <- predict(fit, newdata=testset)
summary(fitpred) # will give you R²

也許“城市”包含太多獨特的價值,以至於沒有意義。 嘗試通過引入新的屬性CityClass來概括它們(例如BigCity-MediumCity-SmallCity ...或任何對您的城市有用的分類方案)。 您也可以將模型設為“性別”。 刪除“電子郵件ID”。

這可能會持續一段時間...使用模型以嘗試獲得更好的R平方和SSE。

我認為基於樹的模型(rpart)在這里也可以很好地工作。

然后,您可能會在以后更改為聚類分析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM