2011-04-14 125 views
2

我目前正在研究一個項目,關於基於植物的分割的地理區域,每個植物生長在多個重要層上(也就是說,每個分割層的含義是唯一的其他圖層)分類邏輯迴歸,庫

這樣做,我們使用邏輯迴歸從區域列表中去,它們在每個圖層中屬於它們的片段,它們包含哪些植物,植物生長的概率段的每個組合。目前,我們正在使用SPSS,鏈接到分割的C#實現。

到目前爲止,這麼好。問題是,SPSS在寒冷的日子裏就像糖蜜一樣緩慢。對於整套(2500個工廠和565個地區),單次運行需要大約半個月的時間。那是我們沒有的時間,所以現在我們使用縮略數據集,但即使這樣也需要幾個小時。

我們通過邏輯迴歸(特別是Accord.NET和Extreme Optimization)研究了其他圖書館,但都沒有分類邏輯迴歸。

在這一點上,我應該指定我的意思是分類邏輯迴歸。鑑於數據集中的每一行我們都向統計引擎提供了每個圖層的變量,而對於我們目前感興趣的工廠則有一個變量,圖層變量的值被視爲類別。 0不好或差於1,它只是不同而已。我們想要的統計引擎是每個圖層變量的每個類別的值(當然還有一個截距),所以在一個包含3段和1段2段的圖層的設置中,我們會得到5值和截距。

我應該注意到我們已經在Accord.NET(它必須在庫之外完成)和Extreme Optimization(它有一些庫中支持它)的情況下進行了虛擬或指示變量的實驗,但是這並沒有產生必要的結果。

TL; DR

所以,長話短說,沒有人知道在C#中分類Logistic迴歸一個很好的解決方案呢?這可以是一個類庫,或者只是一個插入外部統計引擎的接口,只要它穩定且合理快速即可。

+0

您能更清楚地瞭解您使用的模型嗎?您提到的5個值可以解釋爲2 + 3或2 * 3-1 ... – 2011-09-29 03:29:13

回答

0

使用分類輸入變量生成邏輯迴歸的標準方法是將分類變量轉換爲虛擬變量。因此,只要您對輸入數據執行適當的轉換,就應該能夠使用您在問題中提到的任何邏輯迴歸庫。

從一個具有n個類別的分類變量到n-1個數字虛擬變量的映射稱爲對比。 This post進一步解釋瞭如何將對比放在一起。

請注意,虛擬變量的數量少於類別值的數量1。如果您嘗試爲每個類別值使用一個虛擬變量,您會發現最後一個虛擬變量不獨立於前面的虛擬變量,並且如果嘗試將回歸模型擬合到它,您將會收到錯誤(或無意義的係數)。因此,以具有截距,3級分類輸入變量和2級分類輸入變量的模型爲例,學習者的數量將是1 +(3-1)+(2-1) = 4.