「維度」這個詞在機器學習裡面,應該是一個高頻詞,它經常出現在人們的視野中,比如說隨機森林是通過隨機抽取特徵來建樹,以避免高維計算;再比如說,sklearn中導入特徵矩陣,必須是至少二維;特徵選擇的目的是通過降維來降低算法的計算成本……這些語言都很正常地被我用來使用,直到有一天,一個小夥伴問了我,」維度「到底是什麼?我……
我認真思考之後,總結如下:
1. 對於數組和Series來說
對於數組和Series來說,維度就是功能shape返回的結果,shape中返回了幾個數字,就是幾維。索引以外的數據,不分行列的叫一維(此時shape返回唯一的維度上的數據個數),有行列之分叫二維(shape返回行x列),也稱為表。一張表最多二維,複數的表構成了更高的維度。當一個數組中存在2張3行4列的表時,shape返回的是(更高維,行,列)。當數組中存在2組2張3行4列的表時,數據就是4維,shape返回(2,2,3,4)。
數組中的每一張表,都可以是一個特徵矩陣或一個DataFrame,這些結構永遠只有一張表,所以一定有行列,其中行是樣本,列是特徵。針對每一張表,維度指的是樣本的數量或特徵的數量,一般無特別說明,指的都是特徵的數量。除了索引之外,一個特徵是一維,兩個特徵是二維,n個特徵是n維。
2. 對於圖像來說
對圖像來說,維度就是圖像中特徵向量的數量。特徵向量可以理解為是坐標軸,一個特徵向量定義一條直線,是一維,兩個相互垂直的特徵向量定義一個平面,即一個直角坐標系,就是二維,三個相互垂直的特徵向量定義一個空間,即一個立體直角坐標系,就是三維。三個以上的特徵向量相互垂直,定義人眼無法看見,也無法想像的高維空間。
3. 降維算法中的「降維」
降維算法中的」降維「,指的是降低特徵矩陣中特徵的數量。上周的課中我們說過,降維的目的是為了讓算法運算更快,效果更好,但其實還有另一種需求:數據可視化。從上面的圖我們其實可以看得出,圖像和特徵矩陣的維度是可以相互對應的,即一個特徵對應一個特徵向量,對應一條坐標軸。所以,三維及以下的特徵矩陣,是可以被可視化的,這可以幫助我們很快地理解數據的分布,而三維以上特徵矩陣的則不能被可視化,數據的性質也就比較難理解。
好了,以上就是關於降維的總結啦,如果你有新的見解,歡迎一起探討~