2012-03-17 92 views
1

我正在訓練線性迴歸模型,使用在區間[0,10]中具有實值標籤的數據集。我在測試集的預測值有一些預測超過10.有沒有辦法將預測限制爲10.使用scikit的上限線性迴歸預測值

我在考慮做一個條件檢查,如果預測超過10,我明確地將其設置爲10

有沒有更好的方法?

+0

這個問題很模糊。除非你更具體一些,否則任何人都不能給你一個「更好的方式」。 – 2012-03-17 22:15:52

+0

通過更好的我只是意味着比寫一個明確的if(value> 10)value = 10類型的語句更好的迴歸模型發出的每個值執行。這似乎是一個相當通常的情況,所以我希望有一個標準的方式來做到這一點。這是否更清楚?我會很高興編輯任何使問題模糊的 – atlantis 2012-03-17 22:27:28

+0

如果我正確理解這一點,檢查線性函數的範圍並停止計算相應域之外的值不是更好嗎? – 2012-03-17 22:38:09

回答

4

如果y是迴歸對象的predict方法的輸出,那麼你可以與NumPy的minimum把它蓋以10:

y = np.minimum(y, 10.) 

要還低於上限是零,做

y = np.maximum(np.minimum(y, 10.), 0.) 

或更短:

y = np.clip(y, 0., 10.)