資料壓縮不僅能夠減小儲存空間,並且能夠加速學習演算法。那麼什麼是資料壓縮呢?下面給出了乙個簡單的例子:
圖1.資料壓縮的概念
舉了兩個例子,乙個是橫軸x1是厘公尺,縱軸特徵x2是英呎,這明顯是冗餘的,但是在真正的實施過程中,這並不常見,這並不是乙個好例子。
另乙個例子是,橫軸是駕駛員的技術,縱軸是駕駛員的快樂程度,曲線的含義是駕駛員的能力,那麼比較明顯的是,可以捨去駕駛員的快樂程度這個特徵。即將資料集從2維轉向1維。
圖2.二維資料壓縮
在圖中,將綠線投影到乙個軸上,那麼如果點的排列方式能夠一一對應,並且反映原來的順序,那麼就可以用其中乙個特徵來表示兩個,從x(1)二維轉換到z(1)一維,從而實現了資料壓縮。這種方法能讓演算法執行的更快,同時也能夠減少資料儲存空間。
圖2.三維資料壓縮
在實際中,有將1000維壓縮到100維的,但是不方便進行畫圖展示。如圖中,三維的可以觀察出資料基本上同一平面內,所以圖2中就新構建了乙個二維的平面圖,將資料都投影到二維平面上,將三維降低到二維。
圖3.高維資料
比如得到了各個國家的乙個高維資料圖,有很多指標,那麼如何來進行視覺化呢?如下圖,選取幾個指標來表示國家,比如兩個:
圖4.二維資料視覺化
比如橫軸表示國家的大小/gdp,縱軸表示,人均gdp的數量,從圖中可對點進行現實意義的分析。
圖5.主成分問題規劃
將資料從二維到一維,需要找到乙個向量的方向,將其他點投影,這個方向是滿足最小化投影誤差。那麼就可將資料降維。
從三維降到二維,需要兩個投影向量組成乙個平面,將其他點投影,作最小化投影誤差。
從n維降到k維,就需要選k個向量進行投影,並且最小化投影誤差。
那麼從左圖中看,pca似乎和線性回歸很像,那麼二者之間有何關係呢?
實際兩者是完全不同的演算法,pca是找到乙個低維的平面進行資料的投影,以便最小化投影誤差。
圖6.資料預處理
首先求出m個資料的均值每個維度的均值,並且對i個資料,每個對應的維度都變成平均的,圖中下邊給的公式是在有監督學習中,每個資料的i維-均值,並且除以s_j,通常是max-min或者是均方誤差。這樣讓不同含義的資料都能夠進行歸一,又可以比較的值。
圖7.主成分分析演算法
首先,第乙個公式中,左邊的σ不是求和符號,而是表示矩陣,那麼它是乙個n*n的矩陣,也就是協方差矩陣。
然後再計算協方差矩陣σ的特徵向量,可以使用svd函式。令協方差矩陣是正定矩陣。現在就可以用[u,s,v]是用svd命令來計算協方差矩陣。
圖8.演算法
取u的前k列,得到乙個u_reduce是n*k的,那麼用它的t*訓練集中的每個x,最終會得到乙個k維的向量,這個就是投影壓縮之後的。
第十五章預習
public class yuxi15 else 字串的比較 字串1.equals 字串2 比較兩個字串的值是否相同,返回boolean型別的值.如果相同,則返回真值,否則返回假值.字串1.equalsignorecase 字串2 忽略大小寫比較字串1和字串2.如果都相同則返回真值 否則返回假值 改...
learn with python 第十五章 繼承
第十六章 繼承 16.1繼承 物件導向語言所擁有的特性是繼承,繼承指定義乙個新的類擁有原來類的方法。繼承最大的好處就是可以在不改變現存 的情況下新增新的方法,稱之為繼承是因為新定義的類擁有父類的所有方法。新建立的類知之為子類。繼承是乙個功能強大的特性,某些情況下如果沒有繼承,一些層序幾乎無法實現。同...
第十五章 磁碟管理
uuid 掛載點swap 產品型別swap 掛載選項預設值default 預設不檢測,檢測順序 0 0 檢視分割槽 swapon s s表示show 手動掛載 swapon dev sda3 缺點 重啟後就消失,想永久生效,寫配置檔案 解除安裝分割槽 swapoff dev sda3 vim etc...