拿下阿里、華為AI技術崗,這些知識點全考了!(建議收藏)
前言
2012年起,AI越發火熱,各大公司開始陸續招AI方面的人才,很多同學也會從網上找各種各樣的機器學習筆試題、面試題,但和資料結構方面的題不同,AI的題網上極少。
本文特精選部分機器學習相關的面試題,供大家找工作中隨時查閱、複習。
一般而言,進大廠講究以下三方面的能力
- coding能力,這是最基本的能力,包括資料結構和演算法,說白了,coding能力紮實,無論幹IT還是幹AI都不會太差,但很多人會忽略這方面的能力,可能AI各模型學的滾瓜爛熟,但面試讓十分鐘寫個快速排序 遲遲動不了手;
- 機器學習、深度學習方面的能力,16年起隨著AlphaGo的橫空出世,深度學習瞬間橫掃各個領域,這裡面的重點包括各個模型:決策樹、隨機森林、xgboost、SVM、特徵工程、CNN、RNN、LSTM等等;
- 根據不同業務場景的技術能力,比如對業務的理解、建模,當然不同方向會用到不同的技術,比如CV、NLP、推薦系統等等。
值得一提的是,想進大廠而需要具備的上述三方面的能力,在CSDN和七月線上聯合開設的《機器學習集訓營》都會講,為了三個月挑戰年薪四十萬,集訓營總共設計了八大階段,十三個實戰專案(三大企業專案、十個實訓專案),涵蓋Python基礎與資料分析、機器學習原理、機器學習實戰、深度學習原理、深度學習實戰,以及CV 推薦 NLP三大方向的BAT工業級大專案實戰、面試就業指導。
想免費試聽集訓營裡svm與xgboost內容的(講得非常透徹,勝過無數資料),可以留下聯絡方式,進行諮詢。https://t.csdnimg.cn/bhvL
限於篇幅,本文不會把每一題的參考答案都載入出來,會摘出一些摘要,然後完整解析可以點選連結諮詢,大家有任何問題歡迎隨時留言、討論、糾正,thanks。
機器學習面試150題(篇幅有限,在此只摘出70題)
再次強調:本文中,每題的解析只是摘要下,詳盡解析請點選連結領取,此外,我們根據題庫4000題精選了100道題,整理出了《名企AI面試100題》PDF版,今天作為福利也可以免費送給大家交流學習!
- 請詳細說說支援向量機(support vector machine,SVM)的原理
支援向量機,因其英文名為support vector machine,故一般簡稱SVM,通俗來講,它是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規劃問題的求解。 - 哪些機器學習演算法不需要做歸一化處理?
在實際應用中,需要歸一化的模型:
1.基於距離計算的模型:KNN。
2.通過梯度下降法求解的模型:線性迴歸、邏輯迴歸、支援向量機、神經網路。但樹形模型不需要歸一化,因為它們不關心變數的值,而是關心變數的分佈和變數之間的條件概率,如決策樹、隨機森林(Random Forest)。
- 樹形結構為什麼不需要歸一化?
因為數值縮放不影響分裂點位置,對樹模型的結構不造成影響。
按照特徵值進行排序的,排序的順序不變,那麼所屬的分支以及分裂點就不會有不同。而且,樹模型是不能進行梯度下降的,因為構建樹模型(迴歸樹)尋找最優點時是通過尋找最優分裂點完成的,因此樹模型是階躍的,階躍點是不可導的,並且求導沒意義,也就不需要歸一化。 - 在k-means或kNN,我們常用歐氏距離來計算最近的鄰居之間的距離,有時也用曼哈頓距離,請對比下這兩種距離的差別
歐氏距離,最常見的兩點之間或多點之間的距離表示法,又稱之為歐幾里得度量,它定義於歐幾里得空間中.. - 資料歸一化(或者標準化,注意歸一化和標準化不同)的原因
能不歸一化最好不歸一化,之所以進行資料歸一化是因為各維度的量綱不相同。而且需要看情況進行歸一化。
有些模型在各維度進行了不均勻的伸縮後,最優解與原來不等價(如SVM)需要歸一化。
有些模型伸縮有與原來等價,如:LR則不用歸一化,但是實際中往往通過迭代求解模型引數,如果目標函式太扁(想象一下很扁的高斯模型)迭代演算法會發生不收斂的情況,所以最好進行資料歸一化。 - 請簡要說說一個完整機器學習專案的流程
1 抽象成數學問題
明確問題是進行機器學習的第一步。機器學習的訓練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。
這裡的抽象成數學問題,指的我們明確我們可以獲得什麼樣的資料,目標是一個分類還是迴歸或者是聚類的問題,如果都不是的話,如果劃歸為其中的某類問題。2 獲取資料
資料決定了機器學習結果的上限,而演算法只是儘可能逼近這個上限。
資料要有代表性,否則必然會過擬合。
而且對於分類問題,資料偏斜不能過於嚴重,不同類別的資料數量不要有數個數量級的差距。
而且還要對資料的量級有一個評估,多少個樣本,多少個特徵,可以估算出其對記憶體的消耗程度,判斷訓練過程中記憶體是否能夠放得下。如果放不下就得考慮改進演算法或者使用一些降維的技巧了。如果資料量實在太大,那就要考慮分散式了。3 特徵預處理與特徵選擇
良好的資料要能夠提取出良好的特徵.. - 邏輯斯蒂迴歸為什麼要對特徵進行離散化
如七月線上老師所說
① 非線性!非線性!非線性!邏輯迴歸屬於廣義線性模型,表達能力受限;單變數離散化為N個後,每個變數有單獨的權重,相當於為模型引入了非線性,能夠提升模型表達能力,加大擬合; 離散特徵的增加和減少都很容易,易於模型的快速迭代;② 速度快!速度快!速度快!稀疏向量內積乘法運算速度快,計算結果方便儲存,容易擴充套件;
③ 魯棒性!魯棒性!魯棒性!離散化後的特徵對異常資料有很強的魯棒性:比如一個特徵是年齡>30是1,否則0。如果特徵沒有離散化,一個異常資料“年齡300歲”會給模型造成很大的干擾;
④ 方便交叉與特徵組合:離散化後可以進行特徵交叉,由M+N個變數變為M*N個變數,進一步引入非線性,提升表達能力;
⑤ 穩定性:特徵離散化後,模型會更穩定,比如如果對使用者年齡離散化,20-30作為一個區間,不會因為一個使用者年齡長了一歲就變成一個完全不同的人。當然處於區間相鄰處的樣本會剛好相反,所以怎麼劃分割槽間是門學問;
⑥ 簡化模..
- 簡單介紹下LR
@rickjin:把LR從頭到腳都給講一遍。建模,現場數學推導,每種解法的原理,正則化,LR和maxent模型啥關係。有不少會背答案的人,問邏輯細節就糊塗了。
原理都會? 那就問工程,並行化怎麼做,有幾種並行化方式,讀過哪些開源的實現。還會,那就準備收了吧,順便逼問LR模型發展歷史。
雖然邏輯斯蒂迴歸姓迴歸,不過其實它的真實身份是二分類器。先弄清楚一個概念:線性分類器..
- overfitting怎麼解決
overfitting就是過擬合, 其直觀的表現如下圖所示,隨著訓練過程的進行,模型複雜度增加,在training data上的error漸漸減小,但是在驗證集上的error卻反而漸漸增大——因為訓練出來的網路過擬合了訓練集, 對訓練集外的資料卻不work, 這稱之為泛化(generalization)效能不好。泛化效能是訓練的效果評價中的首要目標,沒有良好的泛化,就等於南轅北轍, 一切都是無用功。 - LR和SVM的聯絡與區別
解析一
LR和SVM都可以處理分類問題,且一般都用於處理線性二分類問題(在改進的情況下可以處理多分類問題)區別:
1、LR是引數模型,svm是非引數模型,linear和rbf則是針對資料線性可分和不可分的區別;
2、從目標函式來看,區別在於邏輯迴歸採用的是logistical loss,SVM採用的是hinge loss,這兩個損失函式的目的都是增加對分類影響較大的資料點的權重,減少與分類關係較小的資料點的權重。3..
- 什麼是熵
從名字上來看,熵給人一種很玄乎,不知道是啥的感覺。其實,熵的定義很簡單,即用來表示隨機變數的不確定性。之所以給人玄乎的感覺,大概是因為為何要取這樣的名字,以及怎麼用。
熵的概念最早起源於物理學,用於度量一個熱力學系統的無序程度。在資訊理論裡面,熵是對不確定性的測量。 - 說說梯度下降法
1 什麼是梯度下降法
經常在機器學習中的優化問題中看到一個演算法,即梯度下降法,那到底什麼是梯度下降法呢?維基百科給出的定義是梯度下降法(Gradient descent)是一個一階最優化演算法,通常也稱為最速下降法。 要使用梯度下降法找到一個函式的區域性極小值,必須向函式上當前點對應梯度(或者是近似梯度)的反方向的規定步長距離點進行迭代搜尋。如果相反地向梯度正方向迭代進行搜尋,則會接近函式的區域性極大值點;這個過程則被稱為梯度上升法。..
- 牛頓法和梯度下降法有什麼不同?
牛頓法(Newton's method)
牛頓法是一種在實數域和複數域上近似求解方程的方法。方法使用函式f (x)的泰勒級數的前面幾項來尋找方程f (x) = 0的根。牛頓法最大的特點就在於它的收斂速度很快。.. - 熵、聯合熵、條件熵、相對熵、互資訊的定義
為了更好的理解,需要了解的概率必備知識有:
大寫字母X表示隨機變數,小寫字母x表示隨機變數X的某個具體的取值;
P(X)表示隨機變數X的概率分佈,P(X,Y)表示隨機變數X、Y的聯合概率分佈,P(Y|X)表示已知隨機變數X的情況下隨機變數Y的條件概率分佈;
p(X = x)表示隨機變數X取某個具體值的概率,簡記為p(x);
p(X = x, Y = y) 表示聯合概率,簡記為p(x,y),p(Y = y|X = x)表示條件概率,簡記為p(y|x),且有:p(x,y) = p(x) * p(y|x)。 - 說說你知道的核函式
通常人們會從一些常用的核函式中選擇(根據問題和資料的不同,選擇不同的引數,實際上就是得到了不同的核函式),例如: - 什麼是擬牛頓法(Quasi-Newton Methods)?
擬牛頓法是求解非線性優化問題最有效的方法之一,於20世紀50年代由美國Argonne國家實驗室的物理學家W.C.Davidon所提出來。Davidon設計的這種演算法在當時看來是非線性優化領域最具創造性的發明之一。不久R. Fletcher和M. J. D. Powell證實了這種新的演算法遠比其他方法快速和可靠,使得非線性優化這門學科在一夜之間突飛猛進。
擬牛頓法的本質思想是改善牛頓法每次需要求解複雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來近似Hessian矩陣的逆,從而簡化了運算的複雜度。擬牛頓法和最速下降法一樣只要求每一步迭代時知道目標函式的梯度。通過測量梯度的變化,構造一個目標函式的模型使之足以產生超線性收斂性。這類方法大大優於最速下降法,尤其對於困難的問題。..
-
點選連結,留下您的聯絡方式,即可快速諮詢,免費領取資料:https://t.csdnimg.cn/bhvL
- kmeans的複雜度?
時間複雜度:O(tKmn),其中,t為迭代次數,K為簇的數目,m為記錄數(也可認為是樣本數),n為維數
空間複雜度:O((m+K)n),其中,K為簇的數目,m為記錄數(也可認為是樣本數),n為維數.. - 請說說隨機梯度下降法的問題和挑戰?
那到底如何優化隨機梯度法呢?詳情請點選:論文公開課第一期:詳解梯度下降等各類優化演算法(含視訊和PPT下載)(連結:https://ask.julyedu.com/question/7913) - 說說共軛梯度法?
共軛梯度法是介於梯度下降法(最速下降法)與牛頓法之間的一個方法,它僅需利用一階導數資訊,但克服了梯度下降法收斂慢的缺點,又避免了牛頓法需要儲存和計算Hessian矩陣並求逆的缺點,共軛梯度法不僅是解決大型線性方程組最有用的方法之一,也是解大型非線性最優化最有效的演算法之一。在各種優化演算法中,共軛梯度法是非常重要的一種。其優點是所需儲存量小,具有逐步收斂性,穩定性高,而且不需要任何外來引數。 - 對所有優化問題來說, 有沒有可能找到比現在已知演算法更好的演算法?
沒有免費的午餐定理:
對於訓練樣本(黑點),不同的演算法A/B在不同的測試樣本(白點)中有不同的表現,這表示:對於一個學習演算法A,若它在某些問題上比學習演算法 B更好,則必然存在一些問題,在那裡B比A好。
也就是說:對於所有問題,無論學習演算法A多聰明,學習演算法 B多笨拙,它們的期望效能相同。但是:沒有免費午餐定理假設所有問題出現機率相同,實際應用中,不同的場景,會有不同的問題分佈,所以,在優化演算法時,針對具體問題進行分析,是演算法優化的核心所在。
- 什麼是最大熵
熵是隨機變數不確定性的度量,不確定性越大,熵值越大;若隨機變數退化成定值,熵為0。如果沒有外界干擾,隨機變數總是趨向於無序,在經過足夠時間的穩定演化,它應該能夠達到的最大程度的熵。
為了準確的估計隨機變數的狀態,我們一般習慣性最大化熵,認為在所有可能的概率模型(分佈)的集合中,熵最大的模型是最好的模型。換言之,在已知部分知識的前提下,關於未知分佈最合理的推斷就是符合已知知識最不確定或最隨機的推斷,其原則是承認已知事物(知識),且對未知事物不做任何假設,沒有任何偏見..
- LR與線性迴歸的區別與聯絡
LR工業上一般指Logistic Regression(邏輯迴歸)而不是Linear Regression(線性迴歸). LR線上性迴歸的實數範圍輸出值上施加sigmoid函式將值收斂到0~1範圍, 其目標函式也因此從差平方和函式變為對數損失函式, 以提供最優化所需導數(sigmoid函式是softmax函式的二元特例, 其導數均為函式值的f*(1-f)形式)。請注意, LR往往是解決二元0/1分類問題的, 只是它和線性迴歸耦合太緊, 不自覺也冠了個迴歸的名字(馬甲無處不在). 若要求多元分類,就要把sigmoid換成大名鼎鼎的softmax了。 - 簡單說下有監督學習和無監督學習的區別
有監督學習:對具有標記的訓練樣本進行學習,以儘可能對訓練樣本集外的資料進行分類預測。(LR,SVM,BP,RF,GBDT)
無監督學習:對未標記的樣本進行訓練學習,比發現這些樣本中的結構知識。(KMeans,PCA).. - 請問(決策樹、Random Forest、Boosting、Adaboot)GBDT和XGBoost的區別是什麼?
整合學習的整合物件是學習器. Bagging和Boosting屬於整合學習的兩類方法. Bagging方法有放回地取樣同數量樣本訓練每個學習器, 然後再一起整合(簡單投票); Boosting方法使用全部樣本(可調權重)依次訓練每個學習器, 迭代整合(平滑加權).
決策樹屬於最常用的學習器, 其學習過程是從根建立樹, 也就是如何決策葉子節點分裂. ID3/C4.5決策樹用資訊熵計算最優分裂, CART決策樹用基尼指數計算最優分裂, xgboost決策樹使用二階泰勒展開係數計算最優分裂..
- 機器學習中的正則化到底是什麼意思?
其中,誤差/損失函式鼓勵我們的模型儘量去擬合訓練資料,使得最後的模型會有比較少的 bias。而正則化項則鼓勵更加簡單的模型。因為當模型簡單之後,有限資料擬合出來結果的隨機性比較小,不容易過擬合,使得最後模型的預測更加穩定。
但一直沒有一篇好的文章理清到底什麼是正則化?
說到正則化,得先從過擬合問題開始談起..
- 說說常見的損失函式?
對於給定的輸入X,由f(X)給出相應的輸出Y,這個輸出的預測值f(X)與真實值Y可能一致也可能不一致(要知道,有時損失或誤差是不可避免的),用一個損失函式來度量預測錯誤的程度。損失函式記為L(Y, f(X)),用來估量你模型的預測值f(x)與真實值Y的不一致程度.. - 為什麼xgboost要用泰勒展開,優勢在哪裡?
xgboost使用了一階和二階偏導, 二階導數有利於梯度下降的更快更準. 使用泰勒展開取得函式做自變數的二階導數形式, 可以在不選定損失函式具體形式的情況下, 僅僅依靠輸入資料的值就可以進行葉子分裂優化計算, 本質上也就把損失函式的選取和模型演算法優化/引數選擇分開了. 這種去耦合增加了xgboost的適用性, 使得它按需選取損失函式, 可以用於分類, 也可以用於迴歸.. - 協方差和相關性有什麼區別?
相關性是協方差的標準化格式。協方差本身很難做比較。例如:如果我們計算工資($)和年齡(歲)的協方差,因為這兩個變數有不同的度量,所以我們會得到不能做比較的不同的協方差。 - xgboost如何尋找最優特徵?是有放回還是無放回的呢?
xgboost在訓練的過程中給出各個特徵的增益評分,最大增益的特徵會被選出來作為分裂依據, 從而記憶了每個特徵對在模型訓練時的重要性 -- 從根到葉子中間節點涉及某特徵的次數作為該特徵重要性排序.
-
點選連結,留下您的聯絡方式,即可快速諮詢,免費領取資料:https://t.csdnimg.cn/bhvL
- 談談判別式模型和生成式模型?
判別方法:由資料直接學習決策函式 Y = f(X),或者由條件分佈概率 P(Y|X)作為預測模型,即判別模型。
生成方法:由資料學習聯合概率密度分佈函式 P(X,Y),然後求出條件概率分佈P(Y|X)作為預測的模型,即生成模型。
由生成模型可以得到判別模型,但由判別模型得不到生成模型。
常見的判別模型有:K近鄰、SVM、決策樹、感知機、線性判別分析(LDA)、線性迴歸、傳統的神經網路、邏輯斯蒂迴歸、boosting、條件隨機場
常見的生成模型有:樸素貝葉斯、隱馬爾可夫模型、高斯混合模型、文件主題生成模型(LDA)、限制玻爾茲曼機 - 線性分類器與非線性分類器的區別以及優劣
線性和非線性是針對,模型引數和輸入特徵來講的;比如輸入x,模型y=ax+ax^2那麼就是非線性模型,如果輸入是x和X^2則模型是線性的。
線性分類器可解釋性好,計算複雜度較低,不足之處是模型的擬合效果相對弱些。
非線性分類器效果擬合能力較強,不足之處是資料量不足容易過擬合、計算複雜度高、可解釋性不好。
常見的線性分類器有:LR,貝葉斯分類,單層感知機、線性迴歸
常見的非線性分類器:決策樹、RF、GBDT、多層感知機
SVM兩種都有(看線性核還是高斯核).. - 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和L2正則先驗分別服從什麼分佈
面試中遇到的,L1和L2正則先驗分別服從什麼分佈,L1是拉普拉斯分佈,L2是高斯分佈。 - 簡單介紹下logistics迴歸?
邏輯迴歸(Logistic Regression)是機器學習中的一種分類模型,由於演算法的簡單和高效,在實際中應用非常廣泛。
比如在實際工作中,我們可能會遇到如下問題:預測一個使用者是否點選特定的商品
判斷使用者的性別
預測使用者是否會購買給定的品類
判斷一條評論是正面的還是負面的這些都可以看做是分類問題,更準確地,都可以看做是二分類問題。要解決這些問題,通常會用到一些已有的分類演算法,比如邏輯迴歸,或者支援向量機。它們都屬於有監督的學習,因此在使用這些演算法之前,必須要先收集一批標註好的資料作為訓練集。有些標註可以從log中拿到(使用者的點選,購買),有些可以從使用者填寫的資訊中獲得(性別),也有一些可能需要人工標註(評論情感極性)。
- 說一下Adaboost,權值更新公式。當弱分類器是Gm時,每個樣本的的權重是w1,w2...,請寫出最終的決策公式。
給定一個訓練資料集T={(x1,y1), (x2,y2)…(xN,yN)}..
- 經常在網上搜尋東西的朋友知道,當你不小心輸入一個不存在的單詞時,搜尋引擎會提示你是不是要輸入某一個正確的單詞,比如當你在Google中輸入“Julw”時,系統會猜測你的意圖:是不是要搜尋“July”
使用者輸入一個單詞時,可能拼寫正確,也可能拼寫錯誤。如果把拼寫正確的情況記做c(代表correct),拼寫錯誤的情況記做w(代表wrong),那麼"拼寫檢查"要做的事情就是:在發生w的情況下,試圖推斷出c。換言之:已知w,然後在若干個備選方案中,找出可能性最大的那個c..
- 為什麼樸素貝葉斯如此“樸素”?
因為它假定所有的特徵在資料集中的作用是同樣重要和獨立的。正如我們所知,這個假設在現實世界中是很不真實的,因此,說樸素貝葉斯真的很“樸素”。
樸素貝葉斯模型(Naive Bayesian Model)的樸素(Naive)的含義是"很簡單很天真"地假設樣本特徵彼此獨立. 這個假設現實中基本上不存在, 但特徵相關性很小的實際情況還是很多的, 所以這個模型仍然能夠工作得很好。
- 請大致對比下plsa和LDA的區別
兩者的區別代表了概率學派和貝葉斯學派的區別,即後者加上了先驗概率分佈.. - 請詳細說說EM演算法
到底什麼是EM演算法呢?Wikipedia給的解釋是:
最大期望演算法(Expectation-maximization algorithm,又譯為期望最大化演算法),是在概率模型中尋找引數最大似然估計或者最大後驗估計的演算法,其中概率模型依賴於無法觀測的隱性變數。
- KNN中的K如何選取的?
關於什麼是KNN,可以檢視此文:《從K近鄰演算法、距離度量談到KD樹、SIFT+BBF演算法》(連結:http://blog.csdn.net/v_july_v/article/details/8203674)。KNN中的K值選取對K近鄰演算法的結果會產生重大影響。如李航博士的一書「統計學習方法」上所說:
如果選擇較小的K值,就相當於用較小的領域中的訓練例項進行預測,“學習”近似誤差會減小,只有與輸入例項較近或相似的訓練例項才會對預測結果起作用,與此同時帶來的問題是“學習”的估計誤差會增大,換句話說,K值的減小就意味著整體模型變得複雜,容易發生過擬合;
如果選擇較大的K值,就相當於用較大領域中的訓練例項進行預測,其優點是可以減少學習的估計誤差,但缺點是學習的近似誤差會增大。這時候,與輸入例項較遠(不相似的)訓練例項也會對預測器作用,使預測發生錯誤,且K值的增大就意味著整體的模型變得簡單。
K=N,則完全不足取,因為此時無論輸入例項是什麼,都只是簡單的預測它屬於在訓練例項中最多的累,模型過於簡單,忽略了訓練例項中大量有用資訊。
在實際應用中,K值一般取一個比較小的數值,例如採用交叉驗證法(簡單來說,就是一部分樣本做訓練集,一部分做測試集)來選擇最優的K值。 - 防止過擬合的方法
過擬合的原因是演算法的學習能力過強;一些假設條件(如樣本獨立同分布)可能是不成立的;訓練樣本過少不能對整個空間進行分佈估計。
處理方法:
1 早停止:如在訓練中多次迭代後發現模型效能沒有顯著提高就停止訓練
2 資料集擴增:原有資料增加、原有資料加隨機噪聲、重取樣
3 正則化,正則化可以限制模型的複雜度
4 交叉驗證
5 特徵選擇/特徵降維
6 建立一個驗證集是最基本的防止過擬合的方法。我們最終訓練得到的模型目標是要在驗證集上面有好的表現,而不訓練集 - 機器學習中,為何要經常對資料做歸一化
機器學習模型被網際網路行業廣泛應用,如排序(參見:排序學習實踐http://www.cnblogs.com/LBSer/p/4439542.html)、推薦、反作弊、定位(參見:基於樸素貝葉斯的定位演算法http://www.cnblogs.com/LBSer/p/4020370.html)等。
一般做機器學習應用的時候大部分時間是花費在特徵處理上,其中很關鍵的一步就是對特徵資料進行歸一化。
為什麼要歸一化呢?很多同學並未搞清楚,維基百科給出的解釋:1)歸一化後加快了梯度下降求最優解的速度;2)歸一化有可能提高精度。
- 什麼最小二乘法?
我們口頭中經常說:一般來說,平均來說。如平均來說,不吸菸的健康優於吸菸者,之所以要加“平均”二字,是因為凡事皆有例外,總存在某個特別的人他吸菸但由於經常鍛鍊所以他的健康狀況可能會優於他身邊不吸菸的朋友。而最小二乘法的一個最簡單的例子便是算術平均。
最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小。
- 梯度下降法找到的一定是下降最快的方向麼?
梯度下降法並不一定是全域性下降最快的方向,它只是目標函式在當前的點的切平面(當然高維問題不能叫平面)上下降最快的方向。在practical implementation中,牛頓方向(考慮海森矩陣)才一般被認為是下降最快的方向,可以達到superlinear的收斂速度。梯度下降類的演算法的收斂速度一般是linear甚至sublinear的(在某些帶複雜約束的問題)。by林小溪(https://www.zhihu.com/question/30672734/answer/139689869)。
- 簡單說說貝葉斯定理的
在引出貝葉斯定理之前,先學習幾個定義:
條件概率(又稱後驗概率)就是事件A在另外一個事件B已經發生條件下的發生概率。條件概率表示為P(A|B),讀作“在B條件下A的概率”。
比如,在同一個樣本空間Ω中的事件或者子集A與B,如果隨機從Ω中選出的一個元素屬於B,那麼這個隨機選擇的元素還屬於A的概率就定義為在B的前提下A的條件概率,所以:P(A|B) = |A∩B|/|B|,接著分子、分母都除以|Ω|得到.. - 怎麼理解決策樹、xgboost能處理缺失值?而有的模型(svm)對缺失值比較敏感。
本題解析來源:https://www.zhihu.com/question/58230411
首先從兩個角度解釋你的困惑:
工具包自動處理資料缺失不代表具體的演算法可以處理缺失項
對於有缺失的資料:以決策樹為原型的模型優於依賴距離度量的模型回答中也會介紹樹模型,如隨機森林(Random Forest)和xgboost如何處理缺失值。文章最後總結了在有缺失值時選擇模型的小建議。
- 請舉例說明什麼是標準化、歸一化
一、標準化(standardization)
簡單來說,標準化是依照特徵矩陣的列處理資料,其通過求z-score的方法,將樣本的特徵值轉換到同一量綱下。
公式一般為:(X-mean)/std,其中mean是平均值,std是方差。從公式我們可以看出,標準化操作(standardization)是將資料按其屬性(按列)減去平均值,然後再除以方差。
這個過程從幾何上理解就是,先將座標軸零軸平移到均值這條線上,然後再進行一個縮放,涉及到的就是平移和縮放兩個動作。這樣處理以後的結果就是,對於每個屬性(每列)來說,所有資料都聚集在0附近,方差為1。計算時對每個屬性/每列分別進行。
- 隨機森林如何處理缺失值?
@Yieshah:眾所周知,機器學習中處理缺失值的方法有很多,然而,由題目“隨機森林如何處理缺失值”可知,問題關鍵在於隨機森林如何處理,所以先簡要介紹下隨機森林吧。
隨機森林是由很多個決策樹組成的,首先要建立Bootstrap資料集,即從原始的資料中有放回地隨機選取一些,作為新的資料集,新資料集中會存在重複的資料,然後對每個資料集構造一個決策樹,但是不是直接用所有的特徵來建造決策樹,而是對於每一步,都從中隨機的選擇一些特徵,來構造決策樹,這樣我們就構建了多個決策樹,組成隨機森林,把資料輸入各個決策樹中,看一看每個決策樹的判斷結果,統計一下所有決策樹的預測結果,Bagging整合結果,得到最終輸出。
那麼,隨機森林中如何處理缺失值呢?根據隨機森林建立和訓練的特點,隨機森林對缺失值的處理還是比較特殊的。
- 隨機森林如何評估特徵重要性?
衡量變數重要性的方法有兩種,Decrease GINI 和 Decrease Accuracy: - 請說說Kmeans的優化?
解析一
k-means:在大資料的條件下,會耗費大量的時間和記憶體。優化k-means的建議:
1、減少聚類的數目K。因為,每個樣本都要跟類中心計算距離。
2、減少樣本的特徵維度。比如說,通過PCA等進行降維。
3、考察其他的聚類演算法,通過選取toy資料,去測試不同聚類演算法的效能。
4、hadoop叢集,K-means演算法是很容易進行平行計算的。 - KMeans演算法k值及初始類簇中心點的選取
KMeans演算法是最常用的聚類演算法,主要思想是:在給定K值和K個初始類簇中心點的情況下,把每個點(亦即資料記錄)分到離其最近的類簇中心點所代表的類簇中,所有點分配完畢之後,根據一個類簇內的所有點重新計算該類簇的中心點(取平均值),然後再迭代的進行分配點和更新類簇中心點的步驟,直至類簇中心點的變化很小,或者達到指定的迭代次數。
KMeans演算法本身思想比較簡單,但是合理的確定K值和K個初始類簇中心點對於聚類效果的好壞有很大的影響。
- 解釋對偶的概念
一個優化問題可以從兩個角度進行考察,一個是primal 問題,一個是dual 問題,就是對偶問題,一般情況下對偶問題給出主問題最優值的下界,在強對偶性成立的情況下由對偶問題可以得到主問題的最優下界,對偶問題是凸優化問題,可以進行較好的求解,SVM中就是將primal問題轉換為dual問題進行求解,從而進一步引入核函式的思想。 - 如何進行特徵選擇?
特徵選擇是一個重要的資料預處理過程,主要有兩個原因:一是減少特徵數量、降維,使模型泛化能力更強,減少過擬合;二是增強對特徵和特徵值之間的理解
常見的特徵選擇方式:
1. 去除方差較小的特徵
2. 正則化。1正則化能夠生成稀疏的模型。L2正則化的表現更加穩定,由於有用的特徵往往對應係數非零。
3. 隨機森林,對於分類問題,通常採用基尼不純度或者資訊增益,對於迴歸問題,通常採用的是方差或者最小二乘擬合。一般不需要feature engineering、調參等繁瑣的步驟。它的兩個主要問題,1是重要的特徵有可能得分很低(關聯特徵問題),2是這種方法對特徵變數類別多的特徵越有利(偏向問題)。
4. 穩定性選擇。是一種基於二次抽樣和選擇演算法相結合較新的方法,選擇演算法可以是迴歸、SVM或其他類似的方法。它的主要思想是在不同的資料子集和特徵子集上執行特徵選擇演算法,不斷的重複,最終彙總特徵選擇結果,比如可以統計某個特徵被認為是重要特徵的頻率(被選為重要特徵的次數除以它所在的子集被測試的次數)。理想情況下,重要特徵的得分會接近100%。稍微弱一點的特徵得分會是非0的數,而最無用的特徵得分將會接近於0。 - 衡量分類器的好壞?
這裡首先要知道TP、FN(真的判成假的)、FP(假的判成真)、TN四種(可以畫一個表格)。 - 機器學習和統計裡面的auc的物理意義是啥?
auc是評價模型好壞的常見指標之一,本題解析來自:https://www.zhihu.com/question/39840928
分三部分,第一部分是對AUC的基本介紹,包括AUC的定義,解釋,以及演算法和程式碼,第二部分用邏輯迴歸作為例子來說明如何通過直接優化AUC來訓練,第三部分,內容完全由@李大貓原創——如何根據auc值來計算真正的類別,換句話說,就是對auc的反向工程。
-
點選連結,留下您的聯絡方式,即可快速諮詢,免費領取資料:https://t.csdnimg.cn/bhvL
- 資料預處理
1. 缺失值,填充缺失值fillna:
i. 離散:None,
ii. 連續:均值。
iii. 缺失值太多,則直接去除該列
2. 連續值:離散化。有的模型(如決策樹)需要離散值
3. 對定量特徵二值化。核心在於設定一個閾值,大於閾值的賦值為1,小於等於閾值的賦值為0。如影像操作
4. 皮爾遜相關係數,去除高度相關的列 - 觀察增益gain, alpha和gamma越大,增益越小?
xgboost尋找分割點的標準是最大化gain. 考慮傳統的列舉每個特徵的所有可能分割點的貪心法效率太低,xgboost實現了一種近似的演算法。大致的思想是根據百分位法列舉幾個可能成為分割點的候選者,然後從候選者中計算Gain按最大值找出最佳的分割點。它的計算公式分為四項, 可以由正則化項引數調整(lamda為葉子權重平方和的係數, gama為葉子數量).. - 什麼造成梯度消失問題?
Yes you should understand backdrop-Andrej Karpathy
How does the ReLu solve the vanishing gradient problem?
神經網路的訓練中,通過改變神經元的權重,使網路的輸出值儘可能逼近標籤以降低誤差值,訓練普遍使用BP演算法,核心思想是,計算出輸出與標籤間的損失函式值,然後計算其相對於每個神經元的梯度,進行權值的迭代。
梯度消失會造成權值更新緩慢,模型訓練難度增加。造成梯度消失的一個原因是,許多啟用函式將輸出值擠壓在很小的區間內,在啟用函式兩端較大範圍的定義域內梯度為0,造成學習停止。 - 到底什麼是特徵工程?
首先,大多數機器學習從業者主要在公司做什麼呢?不是做數學推導,也不是發明多高大上的演算法,而是做特徵工程,如下圖所示(圖來自:http://www.julyedu.com/video/play/18) - 你知道有哪些資料處理和特徵工程的處理?
- 準備機器學習面試應該瞭解哪些理論知識?
- 資料不平衡問題
這主要是由於資料分佈不平衡造成的。解決方法如下:
取樣,對小樣本加噪聲取樣,對大樣本進行下采樣
資料生成,利用已知樣本生成新的樣本
進行特殊的加權,如在Adaboost中或者SVM中
採用對不平衡資料集不敏感的演算法
改變評價標準:用AUC/ROC來進行評價
採用Bagging/Boosting/ensemble等方法
在設計模型的時候考慮資料的先驗分佈 - 特徵比資料量還大時,選擇什麼樣的分類器?
線性分類器,因為維度高的時候,資料一般在維度空間裡面會比較稀疏,很有可能線性可分。 - 常見的分類演算法有哪些?他們各自的優缺點是什麼?
貝葉斯分類法
優點:
1)所需估計的引數少,對於缺失資料不敏感。
2)有著堅實的數學基礎,以及穩定的分類效率。缺點:
1)假設屬性之間相互獨立,這往往並不成立。(喜歡吃番茄、雞蛋,卻不喜歡吃番茄炒蛋)。
2)需要知道先驗概率。
3)分類決策存在錯誤率。 - 常見的監督學習演算法有哪些?
感知機、svm、人工神經網路、決策樹、邏輯迴歸 - 說說常見的優化演算法及其優缺點?
1)隨機梯度下降
優點:容易陷入區域性最優解
缺點:收斂速度較快
2)批量梯度下降
優點:可以一定程度上解決區域性最優解的問題 - 特徵向量的歸一化方法有哪些?
線性函式轉換,表示式如下:
y=(x-MinValue)/(MaxValue-MinValue)
對數函式轉換,表示式如下:
y=log10 (x)
反餘切函式轉換 ,表示式如下:
y=arctan(x)*2/PI
減去均值,除以標準差:
y=(x-means)/ Standard Deviation - RF與GBDT之間的區別與聯絡?
1)相同點:都是由多棵樹組成,最終的結果都是由多棵樹一起決定。
2)不同點:
a 組成隨機森林的樹可以分類樹也可以是迴歸樹,而GBDT只由迴歸樹組成;
b 組成隨機森林的樹可以並行生成,而GBDT是序列生成
c 隨機森林的結果是多數表決表決的,而GBDT則是多棵樹累加之和
d 隨機森林對異常值不敏感,而GBDT對異常值比較敏感
e 隨機森林是減少模型的方差,而GBDT是減少模型的偏差f GBDT的會累加所有樹的結果,而這種累加是無法通過分類完成的,因此GBDT的樹都是CART迴歸樹,而不是分類樹(儘管GBDT調整後也可以用於分類但不代表GBDT的樹為分類樹)
- 試證明樣本空間中任意點 x 到超平面 (w,b) 的距離公式
- 請比較下EM演算法、HMM、CRF
這三個放在一起不是很恰當,但是有互相有關聯,所以就放在這裡一起說了。注意重點關注演算法的思想。
(1)EM演算法
EM演算法是用於含有隱變數模型的極大似然估計或者極大後驗估計,有兩步組成:E步,求期望(expectation);M步,求極大(maxmization)。本質上EM演算法還是一個迭代演算法,通過不斷用上一代引數對隱變數的估計來對當前變數進行計算,直到收斂。
注意:EM演算法是對初值敏感的,而且EM是不斷求解下界的極大化逼近求解對數似然函式的極大化的演算法,也就是說EM演算法不能保證找到全域性最優值。對於EM的匯出方法也應該掌握。
後記
通過學習面試題可以入門機器學習,但想進一步轉型、就業、提升,則再次推薦機器學習集訓營,至於想試聽集訓營裡svm與xgboost內容的,也可以留下您的聯絡方式,領取免費試聽資料。https://t.csdnimg.cn/bhvL
相關文章
- 53K!拿下阿里Python崗,這些技術點全考了!阿里Python
- 網易裁員事件,我給大家挖了這些法律知識,建議收藏!事件
- 拿下阿里一等獎,轉型 AI,這位技術老炮兒要說這些!阿里AI
- 【建議收藏】Go語言關鍵知識點總結Go
- Tungsten Fabric知識庫丨這裡有18個TF補丁程式,建議收藏
- 你所不知道的 Python 冷知識!(建議收藏)Python
- 這些鮮為人知的前端冷知識,你都GET了嗎?前端
- Kotlin知識點總結與初寫時的一些建議Kotlin
- 萬字長文肝Git--全流程知識點包您滿意【建議收藏】Git
- 解密國內BAT等大廠前端技術體系-阿里篇(長文建議收藏)解密BAT前端阿里
- 你所不知道的 Python 冷知識!(二)(建議收藏)Python
- 給技術人員一些技術以外的建議
- 你需要知道這些關於技術美術的知識構成
- 在這些根技術裡,讀懂華為的“三觀”
- python入門學習這篇夠了,強烈建議收藏!Python
- 乾貨分享,值得收藏:搞懂這些redis知識點,還怕幹不過面試官?Redis面試
- Java全家桶的這些知識,不用學了Java
- 如何制定有效的專案管理計劃? 這些流程建議收藏專案管理
- 這些大檔案傳輸工具總結,建議外貿人士收藏
- 阿里Java架構師背後的技術體系支撐(詳細分層,建議收藏)阿里Java架構
- 技術分享丨華為鯤鵬架構Redis知識二三事架構Redis
- Linux 一些重點知識,整理的很全面,有必要收藏Linux
- 阿里P7技術知識點,年薪50W你也能達到(附帶阿里大牛知識講解)阿里
- 一文打盡知識圖譜(超級乾貨,建議收藏!)
- 短連結的一些技術知識
- Fragment 相關知識點都在這裡了Fragment
- AI衝擊創意崗位,OpenAI技術官語出驚人:一些崗位或許本不該存在哈哈,這些段子有意思,太幽默了,篇篇精彩OpenAI
- 解構華為AI技術佈局:構建無所不及的智慧AI
- Netty中的這些知識點,你需要知道!Netty
- 這些喜聞樂見的Java面試知識點,你都掌握了嗎?Java面試
- 這些必會的計算機網路知識點你都掌握了嗎計算機網路
- ai行為識別技術監控AI
- Nacos必知必會:這些知識點你一定要掌握!
- AI大潮將來襲?現在入門還不晚,這些知識點值得關注!!AI
- KgCaptcha文字點選驗證碼【建議收藏】GCAPT
- 揭祕阿里Java架構師背後的技術體系支撐(詳細分層,建議收藏)阿里Java架構
- 想要成為黑客?那你需要學會這些知識黑客
- 「建議收藏」我想進阿里,我該怎麼做?阿里