2016-08-01 21 views
3

我有3個月的10k客戶的歷史購買數據,我想用這些數據來預測他們在未來3個月內的購買情況。我使用客戶ID作爲輸入變量,因爲我希望xgboost學習不同類別之間的個人消費。有沒有一種方法可以調整,所以強調要根據每個人的購買情況瞭解更多?或者更好的解決這個問題的方法?我該如何調整xgboost以賦予變量更多的權重?

回答

1

你可以使用權重向量,你可以通過weight參數在xgboost中;大小等於nrow(trainingData)的矢量。然而,這通常用於懲罰分類錯誤中的錯誤(想想只有銷售在一個月左右發生一次的項目的稀疏數據;您想要了解銷售情況,那麼您需要給銷售實例更多權重,否則所有預測都將零)。顯然你正在嘗試自我變量的重量,我不能很好地理解。

學習因變量的行爲(在你的案例中是銷售)是機器學習模型的作用,你應該讓它做它的工作。你不應該調整它來強制學習某些功能。對於學習購買行爲聚類的無監督技術將更有用。

要包含用戶特定的行爲,首先要做的是對每個用戶進行聚類並識別索引不足和索引過多的類別。然後,您可以使用這些標誌創建一些分類功能。 PS:有些數據來解釋你的問題可以幫助別人更好地幫助你。

+1

我認爲要求是加權特徵而不是個人,也就是說確保模型包含一些與代替其他變量(如購買次數或簡單產品佔有量)有關的變量。 –

+0

正如Eric在上面提到的那樣,我的目標是我想給用戶一些權重,以便xgboost學習的功能,對個人趨勢也有一些說法,而不是所有用戶羣中的所有泛化趨勢。 – muni

+0

是的..我試圖回答這兩個問題......權重可能在記錄上,但不是在功能上。輸入一些權重的功能將使模型不那麼強大,即。如果你知道樹的第一個破損點(最重要的一個);通過它分裂數據,然後學習將是很好的。樹木可以去除像CART這樣的單一樹木的高度變化。強制變量會導致高變化。一個人不能在縮小和使其中一個變量imp比其他迴歸方式在這裏,因爲樹是獨立的規模...我試圖反對思考功能IMP這種方式思想。只是把樣本數據幫助。 – abhiieor

相關問題