前言
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/225792.html
標籤:AI
上一篇:無人機——遙控器篇(三)
