2019阿里校招數據挖掘/數據開發一面總結

前兩天剛面完一面,明天面二面,趁着印象還算深刻,記錄下來,不管個人成功與否,希望對你們有參考意義;

面試7點40開始,是一位小姐姐來電面的(二面得知,這個小姐姐是二面小哥的Boss......),感覺應該是統計學/數學專業的,至於爲什麼會有這樣的猜想,後續會提到;

1、上來就是對第二篇論文進行提問了,圍繞這篇論文進行展開;

1.1、層次採樣時什麼意思,代價敏感是什麼意思?

回答:之所以提出這兩個方法,是因爲目前在做的是傾斜數據集上的建模,如果直接建模,模型無法對少數類進行預測,所以需要在數據層面和算法層面進行改進;數據層面改進的方法就是進行層次採樣,即根據數據集上每個類別的數據量的大小,對多數類進行欠採樣(爲了疏離噪聲點,自定義採樣半徑),少數類進行過採樣(在原有數據集上,進行有放回採樣,之後SMOTE算法進行一定的合成);再問,採樣半徑是是什麼,如何計算並選擇合適的採樣半徑?答曰:採樣半徑是多數類樣本的一簇,儘管可能存在極其少數的噪聲樣本(噪聲定義爲異常且稀少),但是多數類的樣本平均值是無法改變的;所以通過限制採樣半徑R,能夠在一定程度上避免採樣噪聲樣本,計算是通過標準化之後的歐式距離;接着馬上問了,爲什麼不是馬氏距離?之後補充:馬氏距離(通過協方差計算)儘管可以消除特徵量綱的影響,數據集的協方差不一定存在或難以計算,更進一步而言,歐式距離通用性更廣,對特徵進行標準化之後,能夠消除量綱影響,因此選擇歐式距離計算,至於怎麼樣選擇,是通過實驗法。面試官問到我時候做了數據集分佈的測試,因爲歐式距離適用於球形數據集,而其他分佈的數據集是不適用的,這點我覺得沒有太理解,也在找資料證實;回到代價敏感問題,是通過對樣本類進行加權,使得模型能夠有偏側重於少數類(少數類往往更重要),提高整體性能,權重設置一般是樣本數量倒數,再進一步可以通過搜索方法;

1.2、SMOTE算法是一個怎麼樣算法?

答曰:Smote算法是樣本生成方法,通過對任意一個樣本,找出其近鄰樣本,在此基礎之上,加上一個高斯白噪聲,生成一個新的樣本,因爲重複採樣之後,數據集信息可能無法擴充,通過這個方法,能夠進行一定的信息補充,不足之處是需要對新樣本進行篩選,因爲近鄰不可控的性質;

1.3、講一下隨機森林算法原理

答曰:此處省略,可以自行百度

1.4、如何做的特徵工程

答曰:對於類別型特徵,通過ONE-HOT編碼(不宜使用數值編碼,數值編碼的問題在於本身無序的特徵,因爲編碼之後,就有序了,對原始的數據造成了影響),再進一步,數據集的數值型特徵分散並不是很大,所以直接進行了使用,並未進行分塊處理;更進一步,做好特徵的預處理之後,再通過heat-map熱圖,觀察特徵之間的相關性(通過皮爾遜相關性計算【協方差/彼岸準差】),篩選出低相關性特徵;目的在於消除部分冗餘特徵,便於後面的RF OOB貪心搜索;針對論文的東西基本就講完了

2、如何看模型是否過擬合,如何克服過擬合,稀疏化的作用(我提到了L1,L2稀疏之後補充問的)

答曰:模型表現過擬合,即訓練過程偏差bias低,而在測試過程variance高,模型就陷入了過擬合狀態,一般採用的方法有:數據集層面:增加樣本數量,減少數據集噪聲,有些算法對噪聲極其敏感,如硬間隔SVM,KNN;在算法層面:通過L1,L2正則限制算法的複雜度,通過early-stop觀察擬合過程,出現過擬合時,立馬停止;既然談到L1,L2正則,它們的稀疏有什麼不同,稀疏的作用是什麼?

L1在限制模型複雜度的時候,使得某些特徵權重爲0,而L2使得模型特徵接近於0,L2相對於L1更加平滑;出現這樣的原因在於L1正則在原點附件二階導數不存在,而L2是可以的,這是背後的理論推導;補充一下:在特別高維度(500W維度)特徵下,L1往往表現的更好,稀疏的作用:降低數據存儲壓力,將特徵映射到高維度,使得其更加可分;小姐姐說:還可以減少計算量,這點我們進行了討論,我也舉了一個SVM例子,通過核函數映射到高緯度,但是計算還是在低維進行的,儘管高維很多置0了,但是也是需要計算的,小姐姐也沒說什麼。整個過程其實涉及到很多數學的東西,尤其是數據分佈,假設檢驗的東西在裏面,很受益,之前關注度並不是那麼高。

面試是一個相互學習的過程,平靜面對,相互討論和學習,查缺補漏,幫助成長,不要有過大的心理壓力!

陸續要二面了,期待ing!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章