Regression

為什麼通過輸出離散化將回歸模型簡化為分類模型會改進模型?

  • May 8, 2017

在回歸問題中,如果將輸出離散化為 bin/categories/clusters 並用作標籤,則模型會簡化為分類模型。

我的問題是:做這種減少背後的**理論或應用動機是什麼?**在我從文本預測位置的特定實驗中,當我將問題建模為分類而不是回歸時,我經常看到改進。

在我的特殊情況下,輸出是 2d 但我正在尋找更一般的解釋。

更新: 假設輸入是 BoW 文本,輸出是坐標(例如,在地理標記的 Twitter 數據中)。在回歸中,任務是使用平方誤差損失來預測給定文本的緯度/經度。如果我們對訓練 lat/lon 點進行聚類並假設每個聚類是一個類,那麼我們可以通過優化分類模型中的交叉熵損失來預測一個類。

評估:

對於回歸,預測位置和黃金位置之間的平均距離。

對於分類,預測集群中的中值訓練點與黃金位置之間的平均距離。

讓我們看一下分類預測的誤差來源,與線性預測的誤差來源進行比較。如果你分類,你有兩個錯誤來源:

  1. 分類到錯誤的 bin 時出錯
  2. bin 中位數與目標值(“黃金位置”)之間的差異產生的誤差

如果您的數據具有低噪聲,那麼您通常會分類到正確的 bin 中。如果您也有很多垃圾箱,那麼第二個錯誤來源將很低。相反,如果您有高噪聲數據,那麼您可能經常將錯誤分類到錯誤的 bin 中,這可能會主導整個錯誤 - 即使您有很多小 bin,所以如果您正確分類,第二個錯誤源很小。再說一次,如果你的 bin 很少,那麼你會更經常地正確分類,但你的 bin 內錯誤會更大。

最後,它可能歸結為噪聲和 bin 大小之間的相互作用。

這是一個小玩具示例,我運行了 200 次模擬。與噪聲的簡單線性關係,只有兩個 bin:

訓練

現在,讓我們以低噪音或高噪音運行它。(上面的訓練集有很高的噪聲。)在每種情況下,我們都記錄了來自線性模型和分類模型的 MSE:

nn.sample <- 100
stdev <- 1
nn.runs <- 200
results <- matrix(NA,nrow=nn.runs,ncol=2,dimnames=list(NULL,c("MSE.OLS","MSE.Classification")))

for ( ii in 1:nn.runs ) {
   set.seed(ii)
   xx.train <- runif(nn.sample,-1,1)
   yy.train <- xx.train+rnorm(nn.sample,0,stdev)
   discrete.train <- yy.train>0
   bin.medians <- structure(by(yy.train,discrete.train,median),.Names=c("FALSE","TRUE"))

   # plot(xx.train,yy.train,pch=19,col=discrete.train+1,main="Training")

   model.ols <- lm(yy.train~xx.train)
   model.log <- glm(discrete.train~xx.train,"binomial")

   xx.test <- runif(nn.sample,-1,1)
   yy.test <- xx.test+rnorm(nn.sample,0,0.1)

   results[ii,1] <- mean((yy.test-predict(model.ols,newdata=data.frame(xx.test)))^2)
   results[ii,2] <- mean((yy.test-bin.medians[as.character(predict(model.log,newdata=data.frame(xx.test))>0)])^2)
}

plot(results,xlim=range(results),ylim=range(results),main=paste("Standard Deviation of Noise:",stdev))
abline(a=0,b=1)
colMeans(results)
t.test(x=results[,1],y=results[,2],paired=TRUE)

低噪聲 高噪音

正如我們所看到的,分類是否能提高準確性歸結為這個例子中的噪聲水平。

您可以使用模擬數據或不同的 bin 大小進行一些操作。

最後,請注意,如果您嘗試不同的 bin 大小並保留性能最佳的 bin 大小,那麼您應該不會對它的性能優於線性模型感到驚訝。畢竟,你實際上是在增加更多的自由度,如果你不小心(交叉驗證!),你最終會過度擬合垃圾箱。

引用自:https://stats.stackexchange.com/questions/278196

comments powered by Disqus