40 道數據挖掘面試真題大放送

40 道數據挖掘面試真題大放送

作者 | 汪雯琦

出品 | CSDN博客

1、在 PCA 中為什麼要做正交變換?

PCA 的思想是將 n 維特徵映射到 k 維上(k

2、給定一個數據集,這個數據集有缺失值,且這些缺失值分佈在離中值有 1 個標準偏差的範圍內。百分之多少的數據不會受到影響?為什麼?

由於數據分佈在中位數附近,先假設這是一個正態分佈。在一個正態分佈中,約有 68%的數據位於跟平均數(或眾數、中位數)1 個標準差範圍內的,那樣剩下的約 32%的數據是不受影響的。因此,約有 32%的數據將不受到缺失值的影響。

3、給你一個癌症檢測的數據集,你已經建好了分類模型,取得了96%的精度。如果不滿意你的模型性能的話,你可以做些什麼呢?

40 道數據挖掘面試真題大放送

癌症檢測結果是不平衡數據,在不平衡數據集中,精度不應該被用來作為衡量模型的標準,因為 96%(按給定的)可能只有正確預測多數分類,但我們感興趣是那些少數分類(4%),是那些被診斷出癌症的人。

因此,為了評價模型的性能,應該用靈敏度(真陽性率),特異性(真陰性率),F 值用來確定這個分類器的“聰明”程度。如果在那 4%的數據上表現不好,我們可以採取以下步驟:

1.使用欠採樣、過採樣或 SMOTE 讓數據平衡。

2.通過概率驗證和利用 AUC-ROC 曲線找到最佳閥值來調整預測閥值。

3.給分類分配權重,那樣較少的分類獲得較大的權重。

4.使用異常檢測。

4、對於不平衡數據集,有什麼應對方案?

即數據集中,每個類別下的樣本數目相差很大。例如,在一個二分類問題中,共有 100 個樣本(100 行數據,每一行數據為一個樣本的表徵),其中 80 個樣本屬於 class 1,其餘的 20 個樣本屬於 class 2,class 1:class2=80:20=4:1,這便屬於類別不均衡。當然,類別不均衡問題同樣會發生在多分類任務中。

解決不平衡分類問題的策略可以分為兩大類:一類是從訓練集入手 , 通過改變訓練集樣本分佈,降低不平衡程度;另一類是從學習算法入手 , 根據算法在解決不平衡問題時的缺陷 , 適當地修改算法使之適應不平衡分類問題。平衡訓練集的方法主要有訓練集重採樣 (re-sampling)方法和訓練集劃分方法。學習算法層面的策略包括分類器集成 、代價敏感學習和特徵選擇方法等。

40 道數據挖掘面試真題大放送

5、什麼是 K-fold 交叉驗證?

K-fold 交叉驗證就是把原始數據隨機分成 K 個部分,在這 K 個部分中選擇一個作為測試數據,剩餘的 K-1 個作為訓練數據。交叉驗證的過程實際上是將實驗重複做 K 次,每次實驗都從 K 個部分中選擇一個不同的部分作為測試數據,剩餘的數據作為訓練數據進行實驗,最後把得到的 K 個實驗結果平均,用於評價模型的泛化能力,從而進行模型選擇。

6、簡述準確率(accuracy)、召回率(Recall)統計量的含義?

40 道數據挖掘面試真題大放送

召回率(Recall)是覆蓋面的度量,度量有多個正例被分為正例的比例(查全率):

40 道數據挖掘面試真題大放送

準確率(accuracy)有時候準確率高並不能代表一個算法就好:

40 道數據挖掘面試真題大放送

精確率(precision)表示被分為正例的示例中實際為正例的比例(查準率)。

7、簡述 F 值(F-Measure)統計量的含義?

F-Measure 是 Precision 和 Recall 加權調和平均:

40 道數據挖掘面試真題大放送

若參數 a=1 時即 F1-Measure,是綜合這二者指標的評估指標,用於綜合反映整體的指標。當然希望檢索結果 Precision 越高越好,同時 Recall 也越高越好,但事實上這兩者在某些情況下有矛盾的。比如極端情況下,我們只搜索出了一個結果,且是準確的,那麼 Precision 就是 100%,但是 Recall 就很低;而如果我們把所有結果都返回,那麼比如 Recall 是 100%,但是 Precision 就會很低。因此在不同的場合中需要自己判斷希望 Precision 比較高或是 Recall 比較高。如果是做實驗研究,可以繪製 Precision-Recall 曲線來幫助分析。

例如有一個池塘裡面共有 1000 條魚,含 100 條鯽魚。機器學習分類系統將這 1000 條魚全部分類為“不是鯽魚”,那麼準確率也有 90%(顯然這樣的分類系統是失敗的),然而查全率為 0%,因為沒有鯽魚樣本被分對。這個例子顯示出一個成功的分類系統必須同時考慮 Precision 和 Recall,尤其是面對一個不平衡分類問題。

8、簡述 ROC 曲線統計量的含義?

ROC 曲線 X 軸為 false positive rate(FPR),Y 軸為 true positive rate(TPR):

40 道數據挖掘面試真題大放送

考慮 ROC 曲線圖中的四個點和一條線。第一個點(0,1),即 FPR=0, TPR=1,這意味著 FN(false negative)=0,並且 FP(false positive)=0。Wow,這是一個完美的分類器,它將所有的樣本都正確分類。第二個點,(1,0),即 FPR=1,TPR=0,類似地分析可以發現這是一個最糟糕的分類器,因為它成功避開了所有的正確答案。第三個點,(0,0),即 FPR=TPR=0,即 FP(false positive)=TP( true positive ) =0 ,可以發現該分類器預測所有的樣本都為負樣本(negative)。類似的,第四個點(1,1),分類器實際上預測所有的樣本都為正樣本。經過以上的分析,我們可以斷言,ROC 曲線越接近左上角,該分類器的性能越好。

考慮 ROC 曲線圖中的虛線 y=x 上的點。這條對角線上的點其實表示的是一個採用隨機猜測策略的分類器的結果,例如(0.5,0.5),表示該分類器隨機對於一半的樣本猜測其為正樣本,另外一半的樣本為負樣本。

當測試集中的正負樣本的分佈變化的時候,ROC 曲線能夠保持不變。在實際的數據集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試數據中的正負樣本的分佈也可能隨著時間變化。下圖是 ROC 曲線和 Precision-Recall 曲線的對比:

40 道數據挖掘面試真題大放送

(a)和(c)為 ROC 曲線,(b)和(d)為 Precision-Recall 曲線。(a)和(b)展示的是分類其在原始測試集(正負樣本分佈平衡)的結果,(c)和(d)是將測試集中負樣本的數量增加到原來的 10 倍後,分類器的結果。可以明顯的看出,ROC 曲線基本保持原貌,而 Precision-Recall 曲線則變化較大。

9、如何畫出一個 ROC 曲線?

In signal detection theory, a receiver operating characteristic (ROC), or simply ROC curve, is a graphical plot which illustrates the performance of a binary classifier system as its discrimination threshold is varied。20 個測試樣本,“Class”一欄表示每個測試樣本真正的標籤,p 表示正樣本,n表示負樣本),“Score”表示每個測試樣本屬於正樣本的概率。

40 道數據挖掘面試真題大放送

我們從高到低,依次將“Score”值作為閾值 threshold,當測試樣本屬於正樣本的概率大於或等於這個 threshold 時,我們認為它為正樣本,否則為負樣本。舉例來說,對於圖中的第 4 個樣本,其“Score”值為 0.6,那麼樣本 1,2,3, 4 都被認為是正樣本,因為它們的“Score”值都大於等於 0.6,而其他樣本則都認為是負樣本。每次選取一個不同的 threshold,我們就可以得到一組 FPR 和 TPR,即 ROC 曲線上的一點。這樣一來,我們一共得到了 20 組 FPR 和 TPR 的值,將它們畫在 ROC 曲線的結果如下圖:

40 道數據挖掘面試真題大放送

當我們將 threshold 設置為 1 和 0 時,分別可以得到 ROC 曲線上的(0,0)和(1,1)兩個點。將這些(FPR,TPR)對連接起來,就得到了 ROC 曲線。當 threshold 取值越多, ROC 曲線越平滑。

其實,我們並不一定要得到每個測試樣本是正樣本的概率值,只要得到這個分類器對該測試樣本的“評分值”即可(評分值並不一定在(0,1)區間)。評分越高,表示分類器越肯定地認為這個測試樣本是正樣本,而且同時使用各個評分值作為threshold。

10、簡述 PR 曲線統計量的含義?

40 道數據挖掘面試真題大放送

注:ROC 與 PR 類似,只是橫座標與縱座標換成成了 FPR 與 TPR。

11、什麼是 SMOTE 算法?

Synthetic Minority Oversampling Technique 即合成少數類過採樣技術:

1,對於少數類中每一個樣本 x,以歐氏距離為標準計算它到少數類樣本集 Smin 中所有樣本的距離,得到其 k 近鄰。

2,根據樣本不平衡比例設置一個採樣比例以確定採樣倍率 N,對於每一個少數類樣本 x,從其 k 近鄰中隨機選擇若干個樣本,假設選擇的近鄰為 Xn。

3,對於每一個隨機選出的近鄰 Xn,分別與原樣本按照如下的公式構建新的樣本:

40 道數據挖掘面試真題大放送
40 道數據挖掘面試真題大放送

對於新產生的青色數據點與其他非青色樣本點距離最近的點,構成一對 Tomek link,如圖框。

定義規則:

以新產生點為中心,Tomek link 的距離為範圍半徑,去框定一個空間,空間內的少數類的個數/多數類的個數=最低閥值的時候,在進行保留並納入 smote 訓練的初始少類樣本集合中去抽樣所以,剔除左側的青色新增點,只保留右邊的新增數據如下:

40 道數據挖掘面試真題大放送

12、簡述 G-mean 統計量的含義?

40 道數據挖掘面試真題大放送

13、簡述 AUC 曲線統計量的含義?

AUC(Area Under Curve)被定義為 ROC 曲線下的面積,顯然這個面積的數值不會大於 1。又由於 ROC 曲線一般都處於 y=x 這條直線的上方,所以 AUC 的取值範圍在 0.5 和 1 之間。使用 AUC 值作為評價標準是因為很多時候 ROC 曲線並不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應 AUC 更大的分類器效果更好。

首先 AUC 值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本,當前的分 類算法根據計算得到的 Score 值將這個正樣本排在負樣本前面的概率就是 AUC 值。當然,AUC 值越大,當前的分類算法越有可能將正樣本排在負樣本前面,即 能夠更好的分類。

顯然 A 點為最優點,ROC 曲線越靠近 A 點代表模型表現越好,曲線下面積(Area Under Curve, AUC)越大,AUC 是衡量模型表現好壞的一個重要指標。

40 道數據挖掘面試真題大放送

14、SMOTE 算法有什麼缺點?如何改進?

由於對每個少數類樣本都生成新樣本,因此容易發生生成樣本重疊(Overlapping)的問題,為了解決 SMOTE 算法的這一缺點提出一些改進算法,其中的一種是 Borderline-SMOTE 算法,該方法把少數類樣本分為安全樣本、邊界樣本和噪聲樣本 3類,並對邊界樣本進行近鄰插值,考慮到了少數類內部的分佈不均的現象,但對邊界樣本之間的差異未做考慮。

15、簡述什麼是調和平均數並指出其應用及性質?

調和平均的哲學意義是在一個過程中有多少條平行的路徑,經過這些平行的路徑後,等效的結果就是調和平均。

電子散射:電子在導體裡流動並不是一帆風順的,他會被雜質散射,晶格散射,缺陷散射,這就是一個電子上路後的三種平行的路徑,最後電子遷移率可以用調和平均等效,即 Matthiessen’s Rule。

電子空穴複合:當材料被光照射後,電子吸收光子能量,從價帶激發到導帶,這電子空穴也有兩條路徑複合,輻射覆合和非輻射覆合:

40 道數據挖掘面試真題大放送

①調和平均數易受極端值的影響,且受極小值的影響比受極大值的影響更大。

②只要有一個標誌值為 0,就不能計算調和平均數。

16、EasyEnsemble 算法?

記多數類的樣本集合為 L,少數類的樣本集合為 S,用 r=|S|/|L|表示少數類與多數類的比例。集成方法(Ensemble)是一個最簡單的集成方法,即不斷從多數類中抽取樣本,使得每個模型的多數類樣本數量和少數類樣本數量都相同,最後將這些模型集成起來。

40 道數據挖掘面試真題大放送
40 道數據挖掘面試真題大放送

17、什麼是凸包?

在多維空間中有一群散佈各處的點,「凸包」是包覆這群點的所有外殼當中,表面積容積最小的一個外殼,而最小的外殼一定是凸的。

40 道數據挖掘面試真題大放送

「凸」的定義是:圓形內任意亮點的連線不會經過圓形外部。「凸」並不是指表面呈弧狀隆起,事實上凸包是由許多平坦表面組成的。

40 道數據挖掘面試真題大放送

當數據是線性可分的,凸包就表示兩個組數據點的外邊界。一旦凸包建立,我們得到的最大間隔超平面(MMH)作為兩個凸包之間的垂直平分線。MMH 是能夠最大限度地分開兩個組的線。

18、BalanceCascad 算法和 EasyEnsemble 有什麼異同?

這個方法跟 EasyEnsemble 有點像,但不同的是,每次訓練 adaboost 後都會扔掉已被正確分類的樣本,經過不斷地扔掉樣本後,數據就會逐漸平衡。

19、你會在時間序列數據集上使用什麼交叉驗證技術?是用 k 倍或LOOCV?

都不是。對於時間序列問題,k 倍可能會很麻煩,因為第 4 年或第 5 年的一些模式有可能跟第 3 年的不同,而對數據集的重複採樣會將分離這些趨勢,我們可能最終是對過去幾年的驗證,這就不對了。相反,我們可以採用如下所示的 5 倍正向鏈接策略(1,2,3,4,5,6 代表年份):

fold 1 : training [1], test [2]

fold 2 : training [1 2], test [3]

fold 3 : training [1 2 3], test [4]

fold 4 : training [1 2 3 4], test [5]

fold 5 : training [1 2 3 4 5], test [6]

20、常見的過採樣方法有哪些以用來應對樣本不平衡問題?

我們可以通過欠抽樣來減少多數類樣本的數量從而達到平衡的目的,同樣我們也可以通過,過抽樣來增加少數類樣本的數量,從而達到平衡的目的。

Random oversampling of minority class:通過有放回的抽樣,不斷的從少數類的抽取樣本,不過要注意的是這個方法很容易會導致過擬合。我們通過調整抽樣的數量可以控制使得 r=0.5。

21、給你一個缺失值多於 30%的數據集?比方說,在 50 個變量中,有 8 個變量的缺失值都多於 30%。你對此如何處理?

1.把缺失值分成單獨的一類,這些缺失值說不定會包含一些趨勢信息。

2.我們可以毫無顧忌地刪除它們。

3.或者,我們可以用目標變量來檢查它們的分佈,如果發現任何模式,我們將保留那些缺失值並給它們一個新的分類,同時刪除其他缺失值。

22、什麼是協同過濾算法?

協同過濾 (Collaborative Filtering, 簡稱 CF)協同過濾一般是在海量的用戶中發掘出一小部分和你品位比較類似的,在協同過濾中,這些用戶成為鄰居,然後根據他們喜歡的其他東西組織成一個排序的目錄作為推薦給你,分 User CF 和 Item CF 兩種。

23、當在解決一個分類問題時,出於驗證的目的,你已經將訓練集隨機抽樣地分成訓練集和驗證集。你對你的模型能在未看見的數據上有好的表現非常有信心,因為你的驗證精度高。但是,在得到很差的精度後,你大失所望。什麼地方出了錯?

在做分類問題時,應該使用分層抽樣而不是隨機抽樣。隨機抽樣不考慮目標類別的比例。相反,分層抽樣有助於保持目標變量在所得分佈樣本中的分佈。

24、在 k-means 或 kNN,我們是用歐氏距離來計算最近的鄰居之間的距離。為什麼不用曼哈頓距離?

我們不用曼哈頓距離,因為它只計算水平或垂直距離,有維度的限制。另一方面,歐式距離可用於任何空間的距離計算問題。因為,數據點可以存在於任何空間,歐氏距離是更可行的選擇。例如:想象一下國際象棋棋盤,象或車所做的移動是由曼哈頓距離計算的,因為它們是在各自的水平和垂直方向的運動。

25、考慮到機器學習有這麼多算法,給定一個數據集,你如何決定使用哪一個算法?

機器學習算法的選擇完全取決於數據的類型。如果給定的一個數據集是線性的,線性迴歸是最好的選擇。如果數據是圖像或者音頻,那麼神經網絡可以構建一個穩健的模型。如果該數據是非線性互相作用的的,可以用 boosting 或 bagging 算法。

如果業務需求是要構建一個可以部署的模型,我們可以用迴歸或決策樹模型(容易解釋和說明),而不是黑盒算法如 SVM,GBM 等。

26、什麼時候正則化在機器學習中是有必要的?

當模型過度擬合或者欠擬合的時候,正則化是有必要的。這個技術引入了一個成本項,用於帶來目標函數的更多特徵。因此,正則化是將許多變量的係數推向零,由此而降低成本項。這有助於降低模型的複雜度,使該模型可以在預測上(泛化)變得更好。

27、考慮到機器學習有這麼多算法,給定一個數據集,你如何決定使用哪一個算法?

從數學的角度來看,任何模型出現的誤差可以分為三個部分。以下是這三個部分:

40 道數據挖掘面試真題大放送

偏差誤差在量化平均水平之上預測值跟實際值相差多遠時有用。高偏差誤差意味著我們的模型表現不太好,因為沒有抓到重要的趨勢。

另一方面,方差量化了在同一個觀察上進行的預測是如何彼此不同的。高方差模型會過度擬合你的訓練集,而在訓練集以外的數據上表現很差。

28、OLS 是用於線性迴歸,最大似然是用於邏輯迴歸。請解釋以上描述。

OLS 和最大似然是使用各自的迴歸方法來逼近未知參數(係數)值的方法。簡單地說,普通最小二乘法(OLS)是線性迴歸中使用的方法,它是在實際值和預測值相差最小的情況下而得到這個參數的估計。最大似然性有助於選擇使參數最可能產生觀測數據的可能性最大化的參數值。

29、一個有 1000 列和 1 百萬行的訓練數據集。這個數據集是基於分類問題的。你來降低該數據集的維度以減少模型計算時間。你的機器內存有限,你會怎麼做?(你可以自由做各種實際操作假設)

1.由於我們的 RAM 很小,首先要關閉機器上正在運行的其他程序,包括網頁瀏覽器,以確保大部分內存可以使用。

2.我們可以隨機採樣數據集。這意味著,我們可以創建一個較小的數據集,比如有 1000 個變量和 30 萬行,然後做計算。

3.為了降低維度,我們可以把數值變量和分類變量分開,同時刪掉相關聯的變量。對於數值變量,我們將使用相關性分析。對於分類變量,我們可以用卡方檢驗。

4.另外我們還可以使用 PCA(主成分分析),並挑選可以解釋在數據集中有最大偏差的成分。

5.利用在線學習算法,如 VowpalWabbit(在 Python 中可用)是一個可能的選擇。

6.利用 Stochastic GradientDescent(隨機梯度下降)法建立線性模型也很有幫助。

7.我們也可以用我們對業務的理解來估計各預測變量對響應變量的影響大小。但是,這是一個主觀的方法,如果沒有找出有用的預測變量可能會導致信息的顯著丟失。

注意:對於第 4 點和第 5 點,請務必閱讀有關在線學習算法和隨機梯度下降法的內容。這些是高階方法。

30、KNN 中的 K 是如何選取的?

如李航博士的一書「統計學習方法」上所說:

1.如果選擇較小的 K 值,就相當於用較小的領域中的訓練實例進行預測,“學習”近似誤差會減小,只有與輸入實例較近或相似的訓練實例才會對預測結果起作用,與此同時帶來的問題是“學習”的估計誤差會增大,換句話說,K 值的減小就意味著整體模型變得複雜,容易發生過擬合;

2.如果選擇較大的 K 值,就相當於用較大領域中的訓練實例進行預測,其優點是可以減少學習的估計誤差,但缺點是學習的近似誤差會增大。這時候,與輸入實例較遠(不相似的)訓練實例也會對預測器作用,使預測發生錯誤,且 K 值的增大就意味著整體的模型變得簡單。

3.K=N,則完全不足取,因為此時無論輸入實例是什麼,都只是簡單的預測它屬於在訓練實例中最多的累,模型過於簡單,忽略了訓練實例中大量有用信息。

在實際應用中,K 值一般取一個比較小的數值,例如採用交叉驗證法(簡單來說,就是一部分樣本做訓練集,一部分做測試集)來選擇最優的 K 值。

31、防止過擬合的方法有哪些?

過擬合的原因是算法的學習能力過強;一些假設條件(如樣本獨立同分布)可能是不成立的;訓練樣本過少不能對整個空間進行分佈估計。處理方法有:

a. 早停止,如在訓練中多次迭代後發現模型性能沒有顯著提高就停止訓練 ;

b. 數據集擴增,原有數據增加、原有數據加隨機噪聲、重採樣;

c. 正則化 d.交叉驗證 e.特徵選擇/特徵降維。

32、機器學習中為何要經常對數據做歸一化?

維基百科給出的解釋:1)歸一化後加快了梯度下降求最優解的速度;2)歸一化有可能提高精度。

1)歸一化後加快了梯度下降求最優解的速度:

如下圖所示,藍色的圈圈圖代表的是兩個特徵的等高線。其中左圖兩個特徵 X1 和 X2 的區間相差非常大,X1 區間是[0,2000],X2 區間是[1,5],其所形成的等高線非常尖。當使用梯度下降法尋求最優解時,很有可能走“之字型”路線(垂直等高線走),從而導致需要迭代很多次才能收斂;而右圖對兩個原始特徵進行了歸一化,其對應的等高線顯得很圓,在梯度下降進行求解時能較快的收斂。因此如果機器學習模型使用梯度下降法求最優解時,歸一化往往非常有必要,否則很難收斂甚至不能收斂。

40 道數據挖掘面試真題大放送

2)歸一化有可能提高精度:

一些分類器需要計算樣本之間的距離(如歐氏距離),例如 KNN。如果一個特徵值域範圍非常大,那麼距離計算就主要取決於這個特徵,從而與實際情況相悖(比如這時實際情況是值域範圍小的特徵更重要)。

33、什麼是欠採樣和過採樣?

使用不同的數據集。有兩種方法使不平衡的數據集來建立一個平衡的數據集:欠採樣和過採樣。欠採樣是通過減少豐富類的大小來平衡數據集,當數據量足夠時就該使用此方法。通過保存所有稀有類樣本,並在豐富類別中隨機選擇與稀有類別樣本相等數量的樣本,可以檢索平衡的新數據集以進一步建模。當數據量不足時就應該使用過採樣,它嘗試通過增加稀有樣本的數量來平衡數據集,而不是去除豐富類別的樣本的數量。通過使用重複、自舉或合成少數類過採樣等方法(SMOTE)來生成新的稀有樣品。

欠採樣和過採樣這兩種方法相比而言,都沒有絕對的優勢。這兩種方法的應用取決於它適用的用例和數據集本身。另外將過採樣和欠採樣結合起來使用也是成功的。

34、不平衡數據集處理中基於數據集的應對方案有哪些?

Edited Nearest Neighbor (ENN):將那些 L 類的樣本,如果他的大部分 k 近鄰樣本都跟他自己本身的類別不一樣,我們就將它刪除。

40 道數據挖掘面試真題大放送

Repeated Edited Nearest Neighbor:這個方法就是不斷的重複上述的刪除過程,直到無法再刪除為止。

40 道數據挖掘面試真題大放送

Tomek Link Removal:如果有兩個不同類別的樣本,它們的最近鄰都是對方,也就是 A 的最近鄰是 B,B 的最近鄰是 A,那麼 A,B 就是 Tomek link。我們要做的就是講所有 Tomek link 都刪除掉。那麼一個刪除 Tomek link 的方法就是,將組成 Tomek link 的兩個樣本,如果有一個屬於多數類樣本,就將該多數類樣本刪除掉。

40 道數據挖掘面試真題大放送

35、二分類問題如何轉化為一分類問題?

對於二分類問題,如果正負樣本分佈比例極不平衡,我們可以換一個完全不同的角度來看待問題:把它看做一分類(One Class Learning)或異常檢測(Novelty Detection)問題。這類方法的重點不在於捕捉類間的差別,而是為其中一類進行建模,經典的工作包括 One-class SVM 等,如下圖所示:

One Class SVM 是指你的訓練數據只有一類正(或者負)樣本的數據, 而沒有另外的一類。在這時,你需要學習的實際上你訓練數據的邊界。而這時不能使用最大化軟邊緣了,因為你沒有兩類的數據。所以呢,文章“Estimating the support of a high-dimensional distribution”中,Schölkopf 假設最好的邊緣要遠離特徵空間中的原點。左邊是在原始空間中的邊界,可以看到有很多的邊界都符合要求,但是比較靠譜的是找一個比較緊的邊界(紅色的)。這個目標轉換到特徵空間就是找一個離原點比較遠的邊界,同樣是紅色的直線。當然這些約束條件都是人為加上去的,你可以按照你自己的需要採取相應的約束條件。比如讓你 data 的中心離原點最遠。說明:對於正負樣本極不均勻的問題,使用異常檢測,或者一分類問題,也是一個思路。

36、如何通過增加懲罰項來提高稀有數據的預測準確率?

通過設計一個代價函數來懲罰稀有類別的錯誤分類而不是分類豐富類別,可以設計出許多自然泛化為稀有類別的模型。例如,調整 SVM 以懲罰稀有類別的錯誤分類。

40 道數據挖掘面試真題大放送

37、L1 和 L2 有什麼區別?

L1 範數(L1 norm)是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規則算子”(Lasso regularization)。

比如 向量 A=[1,-1,3], 那麼 A 的 L1 範數為 |1|+|-1|+|3|。

簡單總結一下就是:

L1 範數: 為 x 向量各個元素絕對值之和。

L2 範數: 為 x 向量各個元素平方和的 1/2 次方,L2 範數又稱 Euclidean 範數或 Frobenius範數。

Lp 範數: 為 x 向量各個元素絕對值 p 次方和的 1/p 次方。

在支持向量機學習過程中,L1 範數實際是一種對於成本函數求解最優的過程,因此, L1 範數正則化通過向成本函數中添加 L1 範數,使得學習得到的結果滿足稀疏化,從而方便人類提取特徵。

L1 範數可以使權值稀疏,方便特徵提取。L2 範數可以防止過擬合,提升模型的泛化能力。

38、CNN 最成功的應用是在 CV,那為什麼 NLP 和 Speech 的很多問題也可以用 CNN 解出來?為什麼 AlphaGo 裡也用了 CNN?這幾個不相關的問題的相似性在哪裡?CNN 通過什麼手段抓住了這個共性?

以上幾個不相關問題的相關性在於,都存在局部與整體的關係,由低層次的特徵經過組合,組成高層次的特徵,並且得到不同特徵之間的空間相關性。如下圖:低層次的直線/曲線等特徵,組合成為不同的形狀,最後得到汽車的表示。

40 道數據挖掘面試真題大放送

CNN 抓住此共性的手段主要有四個:局部連接/權值共享/池化操作/多層次結構。局部連接使網絡可以提取數據的局部特徵;權值共享大大降低了網絡的訓練難度,一個 Filter 只提取一個特徵,在整個圖片(或者語音/文本) 中進行卷積;池化操作與多層次結構一起,實現了數據的降維,將低層次的局部特徵組合成為較高層次的特徵,從而對整個圖片進行表示。

39、實現對比 LSTM 結構推導,為什麼比 RNN 好?

推導 forget gate,input gate,cell state, hidden information 等的變化;因為 LSTM 有進有出且當前的 cell informaton 是通過 input gate 控制之後疊加的,RNN 是疊乘,因此 LSTM 可以防止梯度消失或者爆炸。

40、請簡要說說 EM 算法?

有時候因為樣本的產生和隱含變量有關(隱含變量是不能觀察的),而求模型的參數時一般採用最大似然估計,由於含有了隱含變量,所以對似然函數參數求導是求不出來的,這時可以採用 EM 算法來求模型的參數的(對應模型參數個數可能有多個),EM 算法一般分為 2 步:

E 步:選取一組參數,求出在該參數下隱含變量的條件概率值;

M 步:結合 E 步求出的隱含變量條件概率,求出似然函數下界函數(本質上是某個期望函數)的最大值,重複上面 2 步直至收斂。

原文鏈接:https://vicky.blog.csdn.net/article/details/104770540

40 道數據挖掘面試真題大放送"


分享到:


相關文章: