機器學習的問題的時候經常要把問題對映到更 維的空間,怎麼 要進 降維?

時間 2021-10-23 01:18:18

1樓:夏一二

降維的原因可能有多種。

例如場景1,我要做乙個非監督學習聚類演算法,訓練集的特徵過多,例如我有上萬甚至更多的特徵,這意味著我的我將有上萬個維度,這會導致乙個情況叫做「維度的詛咒」。這樣的話訓練過程會非常緩慢(或者幾乎無法訓練),因此我們可以通過去除一些不重要的特徵降維,例如你要通過身高劃分類別,那我愛不愛看美女這個特徵就不重要了,可以去掉。

例如場景2,你選去的資料的特徵們高度相關,例如有三個特徵,1性別:男,2是否愛看美女:是,3是否看過小電影:

是。對乙個男生來說幾乎99%愛看美女,90%看過小電影。那麼我可以在很大程度上認為這3個特徵其實只能算乙個特徵,一回事。

因為只要知道了性別為男,那麼幾乎就能知道後面2個特徵,既然如此我何苦考慮餘下特徵浪費算力。所有你可以用一些演算法降維。

2樓:CW不要無聊的風格

首先明確,任何操作都要和任務/目標有相關。

公升維是構造出更多的維度,使得模型能夠學習更充分的特徵,從而更好地進行擬合。

SVM的假設空間是線性的,但實際許多情況並非線性可分,因此需要通過公升維、核函式等進行變換,對資料構造乙個線性可分的邊界,從而使得模型有個明確的學習目標。

降維通常是由於觀察到多種特徵之間存在高度相關性,我們可以適當對其進行「合併」或「刪減」,通常這些操作被稱為特徵選擇特徵稀疏化。這樣,資料維度下降後,模型學習時對記憶體要求更加友好;同時,在一定程度下還可以避免過擬合

3樓:時光之笛

因為有的特徵在低維是很難有線性超平面區分開的,也就是沒有好的差異特徵。但是你把它公升到高維,比如通過KPCA演算法,在高維就有很好的超平面能區分這些資料,也就是有好的差異特徵提取,在這些高維特徵中尋找重要性排名靠前的成分特徵就能達到降維效果。

比如本來5維資料,公升維至10維,再在這10維裡面選擇前3維資料即可達到公升維再降維效果。

4樓:Bravo Huang

其實本質上是和目標問題的內在特性相關的。

有些問題(甚至大部分問題),它本質核心都是低維度的,我們期望它是乙個低維manifold。

舉個例子比喻一下,人臉識別,輸入包含大量畫素,是高維的。但是其實大部分畫素都是有內在聯絡相互關聯,可以理解成線性相關,比如人眼周圍的畫素,它們的分布是存在約束的。簡單來說,它是可以降緯的。

對於SVM,由於假設空間是線性的,然後目標問題不一定是線性可分的,我們通過公升維、用基函式來進行變換,以使其可以擬合乙個分割邊界。

其實目前深度學習在很大程度上做的就是降維操作,例如 embedding 是個很典型的方式

5樓:康師傅學徒

個人理解,公升維的操作,當資料在低緯空間存在較為複雜的非線性分割面的時候,這個時候對於線性模型來說是學不出來這個非線性分割面的,為此通過公升維操作將資料變換到高維空間,此時的資料分布可以近似用線性分割面來劃分,這樣有利於像SVM等線性模型學習出相應的超平面;

而對於降維操作,從資料分布的角度考慮其在高維空間是十分稀疏的,而且之間的聯絡不明顯,通過降低維度,在低緯空間可以更加顯著地看出資料的分布差異,且能夠保留資料的資訊。

6樓:不學習我難受

對映到更高維是為了增加資料特徵feature吧,降維就通常PCA主成分分析,或者奇異值分解囉,留下權重足夠大的幾個特徵向量

7樓:Andre

你說的SVM裡的公升維其實是增加模型的複雜度,跟神經網路裡面加寬layer是類似的。

降維的目的就很多了。通常我們認為(希望)資料本身是低秩的,也就是說它雖然看起來維數很高,但(變換後)其實能用相當少的維數來表示,這樣人類才能理解它,同時還有各種去除一些資料noise啊,efficiency啊什麼的考量。

學習的時候,經常糾結已經懂了的問題。有時自己想明白了,或者看書看懂了,還是想複述給別人,要不就難受。?

劉哈哈i 我太太太太懂你了!我也是這種明知道自己已經懂了但還是不停想,就算開始下一節課腦子裡也不停回想,還會把自己弄的很煩躁。我的辦法是,想回憶就多次回憶,速度一次次加快,不要讓他在腦子裡停留太久,以你已經懂的方法想幾遍就好,結束後一定要安慰自己 你已經會啦!或者 今天晚上再想吧 這樣到晚上你就會忘...

機器學習的訓練集和測試集劃分問題?

ZongSing 剛剛也遇到這問題,並且直接用np.arange 100 這種簡單又直觀的資料下去測試這個function。我以為train test split是先分割在各自打亂 data 1,2,3,4,5,6,7,8,9,10 step1.分割 train 1,2,3,4,5,6,7,8 te...

老師提問的時候問聰明孩子難問題,簡單問題留給笨孩子,怎麼看待這個問題?

愛吃爆公尺花的 一線教師從實際情況來回答。一節課時長40到45分鐘,如果把簡單的問題給聰明孩子來回答還沒什麼問題,但是如果把乙個難度較高的問題給笨孩子來回答,並引導他理解正確答案,會很浪費課堂時間,一節課有幾次這樣的情況,留給其他孩子的教學時間就很少了,所以因為是很不划算的,也沒辦法保證其他教學任務...