演算法面試題(一)-- 統計學習與模式識別面試題
題目:
答案解析:
第一部分:
1.統計學習是關於計算機基於資料構建概率統計模型並運用模型對資料進行預測與分析的一門學科,又稱為統計機器學習;
特點:以計算機為平臺;以資料為物件;以方法為中心;以概率論、統計學、資訊理論以及最優化理論等為理論依託;目的是實現對資料的預測和分析;
三要素:模型、策略、演算法;
2.
3.特徵選擇:基於兩個問題:1如何評價一組特徵是否有效;2尋優演算法
特徵提取:其實就是特徵變換,通過一個線性變換將高維特徵對映到低維空間,說白了就是降維變換
4.好的特徵標準:數量多,辨別能力好,區域性性好,準確性,速度快
當前流行的影象特徵:fast sift surf BRISK Harris ORB MSER
5.迴歸和分類區別:當待識別的物件變數是連續的,就是一個迴歸問題;反之就是一個分類問題
聯絡:都屬於監督學習;
舉例:房價與尺寸和房間數的關係,如果房價是連續量,就需要線性迴歸;反之如果房價取特殊的離散量(house和department),就是一個兩類分類問題;
6.決策樹的優點:簡單,既可以處理連續數值特徵,也可以處理離散非數值特徵;決策時不需要判別函式,只需要確定樹結構的每一層節點特徵;
決策樹步驟:
1)計算所有樣本的熵不純度;
2)計算候選特徵劃分的樣本熵不純度;
3)計算每一個候選特徵的資訊增益或資訊增益率;
4)確定根節點特徵;
5)同上依次確定出每一層的節點,直到葉節點;
CART演算法:思想與ID3和C4.5相同,最大的不同在於,CART在每個節點都採用二分法,即每個節點都只有兩個子節點,最後構成的是二叉樹;CART就可以用於分類問題也可以用於迴歸;
第二部分
1.SVD可以獲取另一個方向上的主成分,而PCA只能獲得單個方向上的主成分;SVD計算偽逆;通過SVD可以得到PCA相同的結果,但是SVD通常比直接使用PCA更穩定;SVD一般是用來診斷兩個場的相關關係的,而PCA是用來提取一個場的主要資訊的(即主分量)。兩者在具體的實現方法上也有不同,SVD是通過矩陣奇異值分解的方法分解兩個場的協方差矩陣的(兩個場的維數不同,不對稱),而PCA是通過Jacobi方法分解一個場的協方差矩陣(T'*T).
PCA的實現一般有兩種,一種是用特徵值分解去實現的,一種是用奇異值分解去實現的。在上篇文章中便是基於特徵值分解的一種解釋。特徵值和奇異值在大部分人的印象中,往往是停留在純粹的數學計算中。而且線性代數或者矩陣論裡面,也很少講任何跟特徵值與奇異值有關的應用背景。奇異值分解是一個有著很明顯的物理意義的一種方法,它可以將一個比較複雜的矩陣用更小更簡單的幾個子矩陣的相乘來表示,這些小矩陣描述的是矩陣的重要的特性。
LDA,就是Fisher判別分析,基本和PCA是一對雙生子,它們之間的區別就是PCA是一種unsupervised的對映方法而LDA是一種supervised對映方法,都可以實現降維,但是LDA是將高維對映到一維;
2.AdaBoost基本思想:融合多個弱分類器,來提高分類器的分類效能;
3.稀疏表達的意義在於降維,但這個降維並非侷限於節省空間;在模式識別問題中,往往需要大量的先驗知識,而稀疏性是其中最主要的一種先驗知識,這一洗屬性使得許多病態問題變得不在病態,得以讓演算法進行下去;另外一種理解就是稀疏表達比較簡單,奧卡姆剃刀定律中說過,如果兩個模型的解釋力相同,選擇較簡潔的那個,而稀疏表達正好滿足這一定律。
現實問題中,很多問題都是稀疏的或近似成稀疏的,如:
1)DL中提取特徵;
2)小波變換;
3)模式識別中的特徵選擇和特徵提取;
如有疏漏和錯誤,還望大神補充指正。。