2017-04-17 41 views
1

我有關於Kaggle練習比賽的房屋數據,我正在使用rpart來訓練一個簡單的第一個模型來預測銷售價格。如何在rpart中應用權重?

該模型未正確識別銷售情況異常或首付的銷售。因此,我想提高這個變量的重要性,這在模型中顯然被忽略了。

我假設這是通過使用「權重」參數,但如何使用此參數?我怎樣才能確定哪些變量需要更高的權重?

+3

在'rpart'權重是*情況下權重*。他們加權觀察,而不是特徵。 – Zelazny7

+0

如何爲某個功能添加權重?只需複製觀察結果? – GreenManXY

+0

我不知道任何提供加權特徵選擇的算法。雖然我確定他們存在。我會將您的完整決策樹的輸出結果作爲第二個決策樹的輸入,並將其用作銷售條件特徵。這將構建僅具有兩個特徵的第二棵樹。如果它沒有進入,那麼它可能在另一個功能中佔了。 – Zelazny7

回答

0

documentation

可選的情況下,權重。

成本

的非負成本,一個用於在模型中每個變量的矢量。 所有變量的默認值爲1。這些是在考慮拆分時應用 的縮放,因此在決定要選擇哪個拆分時,將拆分變量 的改進除以其成本。

權重是針對行(例如,給較小的類提供更高的權重),成本是針對列的。

實施例的使用用於施加的權重參數 (不一定以限定的權重的最佳方式):

positiveWeight = 1.0/(nrow(subset(training, Y == TRUE))/nrow(training)) 
negativeWeight = 1.0/(nrow(subset(training, Y != TRUE))/nrow(training)) 

modelWeights <- ifelse(training$Y== TRUE, positiveWeight, negativeWeight) 

dtreeModel <- rpart(predFormula, training, weights = modelWeights)