線性迴歸和分類縮放我在做三兩件事:使用MATLAB
-
使用線性分類
- 分類採用logistic迴歸
我在二維數據
的數據是其中x範圍爲15000至80000 和y從1000二維(X和Y),以5500
兩個迴歸線1類和類0被發現使用線性迴歸。爲此,我縮放了數據,計算了權重並使用了縮放數據的權重,這些數據也是在圖片中看到的未縮放的數據上。我想這是正確的,因爲權重只是定義了斜率。 但是,只要在下圖中看到的數據從0到1縮放,數據就不會分離。
現在我迷茫的時候我應該做的擴展我的數據。因爲對於線性分類,我無法對數據進行縮放,因爲它不會顯而易見。 不結垢,我發現使用梯度下降算法如下分型面:
關於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
爲未縮放的數據。
下圖是帶有刻度的數據:
的基本問題是,當我要擴展我的數據? 何時使用縮放或未縮放的數據集?
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的範圍:
是否有更好的命令繪製表面?網格,trisurf?
但是當我做二維數據的分類時,我得到一個三維權重向量w。 'w0 * x0 + w1 * x1 + w2 * x2'對於使用線性分類的不同類別等於或大於零。怎樣才能得到分界線而不是飛機? – evolved
我沒有這臺計算機上的Matlab來測試它輸出的內容,但我的猜測是第一個'w0'對應於一個偏移量,即你實際擁有的是'w0 + w1 * x1 + w2 * x2'。 – RPM