0

線性迴歸和分類縮放我在做三兩件事:使用MATLAB

    使用線性分類
  • 分類採用logistic迴歸

我在二維數據

  • classificaiton
  • 線性迴歸我對數據的縮放感到困惑。 我的問題是,我不確定我是否正確調整數據。此外,我想改變我在matlab中的曲面圖的外觀。

    的數據是其中x範圍爲15000至80000 和y從1000二維(X和Y),以5500

    seprable because not scaled

    兩個迴歸線1類和類0被發現使用線性迴歸。爲此,我縮放了數據,計算了權重並使用了縮放數據的權重,這些數據也是在圖片中看到的未縮放的數據上。我想這是正確的,因爲權重只是定義了斜率。 但是,只要在下圖中看到的數據從0到1縮放,數據就不會分離。

    enter image description here

    現在我迷茫的時候我應該做的擴展我的數據。因爲對於線性分類,我無法對數據進行縮放,因爲它不會顯而易見。 不結垢,我發現使用梯度下降算法如下分型面:

    enter image description here

    關於MATLAB衝浪劇情第一quesiton:如何獲得一個堅實看分型面?

    對於邏輯迴歸,有必要再次縮放。我猜是因爲迴歸函數1 /(1 + exp(-w * x))的範圍。

    我縮放它使用此

    data = (values - repmat(min(values,[],1),size(values,1),1))*spdiags(1./(max(values,[],1)-min(values,[],1))',0,size(values,2),size(values,2)) 
    

    其減去最小和由範圍從除以原始值。將x和y的數據範圍從0縮放到1之後。 的權重,使用梯度上升算法來計算,結果爲

    w = 0.2493 33.7885 -36.0428 
    

    爲經縮放的數據集和

    w = 0.7610 269.3073 -102.6686 
    

    爲未縮放的數據。

    下圖是帶有刻度的數據:

    enter image description here

    的基本問題是,當我要擴展我的數據? 何時使用縮放或未縮放的數據集?

    scale data -> calc weights using scaled data -> plot using scaled or unscaled data? 
    

    calc weights using unscaled data -> plot using unscaled data? 
    

    我想邏輯函數曲線圖還範圍從15000到80000(X) 和從1000到5500(Y)。當我繪製未縮放版本,它看起來是這樣的,因爲物流功能從0到1的範圍:

    unscaled logistic regression

    是否有更好的命令繪製表面?網格,trisurf?

  • 回答

    1

    在執行線性迴歸,線性分類或邏輯迴歸之前,沒有必要對數據進行歸一化 - 雖然它不會造成任何傷害,但最終結果應該通過線性變換保持不變。

    我不認爲你需要繪製曲面。你有二維數據f(x,y),所以要分開兩個你需要一條線。

    +0

    但是當我做二維數據的分類時,我得到一個三維權重向量w。 'w0 * x0 + w1 * x1 + w2 * x2'對於使用線性分類的不同類別等於或大於零。怎樣才能得到分界線而不是飛機? – evolved

    +0

    我沒有這臺計算機上的Matlab來測試它輸出的內容,但我的猜測是第一個'w0'對應於一個偏移量,即你實際擁有的是'w0 + w1 * x1 + w2 * x2'。 – RPM