第36課 PCA 利用數學工具提取主要特徵

2021-10-09 16:34:00 字數 755 閱讀 1650

維度災難

維數災難(curse of dimensionality,也可以直接翻譯為「維度詛咒」)是一種在分析或組織高維(通常是幾百維或者更高維度)資料時會遇到的現象。既然叫災難或者詛咒,可見不是好現象。

這個說法,最早是由理查德·貝爾曼(richard e. bellman)——美國應用數學家,同時也是動態規劃演算法創始人——提出來的。

他是在思考動態優化的過程中發現了這件事:當資料維度增加時,由於向量空間體積呈指數級增加,會遇到許多在低維資料中很難出現的問題。比如:

$100$個平均分布的點能把乙個一維的單位區間均分為$100$份,也就是說$100$個均勻分布的取樣點就可以在一維的單位空間裡形成精度為$0.01$的取樣。

而要在二維的單位空間裡形成同樣密度的取樣,就需要$10000$個點;三維需要$1000000$個點;十維空間則需要$10^$個取樣點……

那要是一千維呢?所需取樣數根本就是天文數字,現實當中,我們怎麼可能去找那麼多樣本資料?

以上是當年理查德·貝爾曼舉的例子。

資料稀疏

其實這個問題反過來想更直接。

在現實生活中,無論我們是做統計分析還是機器學習,能獲得的樣本的數量(至少是量級)是相對固定的,畢竟現實資料都有其獲取成本。

同樣數量的樣本,如果我們只選取一維特徵,那麼這些樣本在特徵空間中的密度肯定會比在二維、三維或者更高維度空間中大得多。

下圖這個例子顯示了20個樣本,

提高第36課時,實踐3,專案3 各種「棋盤」

檔名稱 main.c 作 者 金葉 完成日期 2015 5 26 版本號 v1.0 問題描述 專案3 各種 棋盤 定義乙個8行8列的二維陣列a 8 8 1 為二維陣列中的資料賦50以內的隨機數 程式模板中setdata 函式已經完成,利用產生隨機數的系統函式實現 可能的取值如圖所示 2 設計函式ou...

3 6 最快效率求出亂序陣列中第k小的數

以盡量高的效率求乙個亂序陣列中第k小的元素 演算法1用快排先將陣列排序,然後直接找第k個元素,時間複雜度為o nlgn 演算法2思路用分割槽查詢的思想,同樣有點排序的感覺,畢竟分割槽就是將小於主元的元素放左邊,大於主元的元素放右邊。與排序完再查詢不同的是 對於一次遞迴呼叫來說 比如原來陣列10個元素...

第7課 分支結構程式體驗 計算兩數正差值,周薪計算

1.兩數正差值計算 檔名稱 main.c 作 者 田銘 完成日期 2015年05月31日 版本號 v1.0 問題描述 計算兩個整數的正差值 結果必須是正數 include int main else printf 兩數正差值為 d x return 0 執行結果 知識點 將運算結果賦值與其它變數的使...