2020-11-28

StellaLiu螢窗小語發表於2020-12-08

請詳細說說支援向量機(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矩陣的逆,從而簡化了運算的複雜度。擬牛頓法和最速下降法一樣只要求每一步迭代時知道目標函式的梯度。通過測量梯度的變化,構造一個目標函式的模型使之足以產生超線性收斂性。這類方法大大優於最速下降法,尤其對於困難的問題。…

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在訓練的過程中給出各個特徵的增益評分,最大增益的特徵會被選出來作為分裂依據, 從而記憶了每個特徵對在模型訓練時的重要性 – 從根到葉子中間節點涉及某特徵的次數作為該特徵重要性排序.

談談判別式模型和生成式模型?
判別方法:由資料直接學習決策函式 Y = f(X),或者由條件分佈概率 P(Y|X)作為預測模型,即判別模型。
生成方法:由資料學習聯合概率密度分佈函式 P(X,Y),然後求出條件概率分佈P(Y|X)作為預測的模型,即生成模型。
由生成模型可以得到判別模型,但由判別模型得不到生成模型。
常見的判別模型有:K近鄰、SVM、決策樹、感知機、線性判別分析(LDA)、線性迴歸、傳統的神經網路、邏輯斯蒂迴歸、boosting、條件隨機場
常見的生成模型有:樸素貝葉斯、隱馬爾可夫模型、高斯混合模型、文件主題生成模型(LDA)、限制玻爾茲曼機
線性分類器與非線性分類器的區別以及優劣
線性和非線性是針對,模型引數和輸入特徵來講的;比如輸入x,模型y=ax+ax2那麼就是非線性模型,如果輸入是x和X2則模型是線性的。
線性分類器可解釋性好,計算複雜度較低,不足之處是模型的擬合效果相對弱些。
非線性分類器效果擬合能力較強,不足之處是資料量不足容易過擬合、計算複雜度高、可解釋性不好。
常見的線性分類器有: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. 正則化。L1正則化能夠生成稀疏的模型。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的反向工程。

資料預處理

  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為什麼能分類非線性問題?
核函式的本質是兩個函式的內積,通過核函式將其隱射到高維空間,在高維空間非線性問題轉化為線性問題, SVM得到超平面是高維空間的線性分類平面
請說說常用核函式及核函式的條件
我們通常說的核函式指的是正定和函式,其充要條件是對於任意的x屬於X,要求K對應的Gram矩陣要是半正定矩陣。RBF核徑向基,這類函式取值依賴於特定點間的距離,所以拉普拉斯核其實也是徑向基核。SVM關鍵是選取核函式的型別,常用核函式主要有線性核心,多項式核心,徑向基核心(RBF),sigmoid核。
請具體說說Boosting和Bagging的區別
(1) Bagging之隨機森林
  隨機森林改變了決策樹容易過擬合的問題,這主要是由兩個操作所優化的:
  1)Boostrap從袋內有放回的抽取樣本值
  2)每次隨機抽取一定數量的特徵(通常為sqr(n))。
  分類問題:採用Bagging投票的方式選擇類別頻次最高的
  迴歸問題:直接取每顆樹結果的平均值。
邏輯迴歸相關問題
(1)公式推導一定要會

(2)邏輯迴歸的基本概念
  這個最好從廣義線性模型的角度分析,邏輯迴歸是假設y服從Bernoulli分佈。

(3)L1-norm和L2-norm
  其實稀疏的根本還是在於L0-norm也就是直接統計引數不為0的個數作為規則項,但實際上卻不好執行於是引入了L1-norm;而L1norm本質上是假設引數先驗是服從Laplace分佈的,而L2-norm是假設引數先驗為Gaussian分佈,我們在網上看到的通常用影像來解答這個問題的原理就在這。
  但是L1-norm的求解比較困難,可以用座標軸下降法或是最小角迴歸法求解。

(4)LR和SVM對比
  首先,LR和SVM最大的區別在於損失函式的選擇,LR的損失函式為Log損失(或者說是邏輯損失都可以)、而SVM的損失函式為hinge loss。

其次,兩者都是線性模型。
  最後,SVM只考慮支援向量(也就是和分類相關的少數點)

(5)LR和隨機森林區別
  隨機森林等樹演算法都是非線性的,而LR是線性的。LR更側重全域性優化,而樹模型主要是區域性的優化。

(6)
什麼是共線性, 跟過擬合有什麼關聯?
共線性:多變數線性迴歸中,變數之間由於存在高度相關關係而使迴歸估計不準確。
共線性會造成冗餘,導致過擬合。
解決方法:排除變數的相關性/加入權重正則。
機器學習中,有哪些特徵選擇的工程方法?
目錄
1 特徵工程是什麼?
2 資料預處理
  2.1 無量綱化
    2.1.1 標準化
    2.1.2 區間縮放法
    2.1.3 標準化與歸一化的區別
  2.2 對定量特徵二值化
  2.3 對定性特徵啞編碼
  2.4 缺失值計算
  2.5 資料變換
  2.6 回顧
3 特徵選擇
  3.1 Filter
    3.1.1 方差選擇法
    3.1.2 相關係數法
    3.1.3 卡方檢驗
    3.1.4 互資訊法
  3.2 Wrapper
    3.2.1 遞迴特徵消除法
  3.3 Embedded
    3.3.1 基於懲罰項的特徵選擇法
    3.3.2 基於樹模型的特徵選擇法
  3.4 回顧
4 降維
  4.1 主成分分析法(PCA)
  4.2 線性判別分析法(LDA)
  4.3 回顧
5 總結
6 參考資料

1 特徵工程是什麼?
  有這麼一句話在業界廣泛流傳:資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。那特徵工程到底是什麼呢?顧名思義,其本質是一項工程活動,目的是最大限度地從原始資料中提取特徵以供演算法和模型使用。通過總結和歸納,人們認為特徵工程包括以下方面:…
用貝葉斯機率說明Dropout的原理
回想一下使用Bagging學習,我們定義 k 個不同的模型,從訓練集有替換取樣 構造 k 個不同的資料集,然後在訓練集上訓練模型 i。

Dropout的目標是在指數 級數量的神經網路上近似這個過程。Dropout訓練與Bagging訓練不太一樣。在Bagging的情況下,所有模型是獨立 的。

在Dropout的情況下,模型是共享引數的,其中每個模型繼承的父神經網路參 數的不同子集。引數共享使得在有限可用的記憶體下代表指數數量的模型變得可能。 在Bagging的情況下,每一個模型在其相應訓練集上訓練到收斂。
在Dropout的情況下,通常大部分模型都沒有顯式地被訓練,通常該模型很大,以致到宇宙毀滅都不 能取樣所有可能的子網路。取而代之的是,可能的子網路的一小部分訓練單個步驟,引數共享導致剩餘的子網路能有好的引數設定。
對於維度極低的特徵,選擇線性還是非線性分類器?
非線性分類器,低維空間可能很多特徵都跑到一起了,導致線性不可分。

  1. 如果Feature的數量很大,跟樣本數量差不多,這時候選用LR或者是Linear Kernel的SVM
  2. 如果Feature的數量比較小,樣本數量一般,不算大也不算小,選用SVM+Gaussian Kernel
  3. 如果Feature的數量比較小,而樣本數量很多,需要手工新增一些feature變成第一種情況。
    請問怎麼處理特徵向量的缺失值
    一方面,缺失值較多.直接將該特徵捨棄掉,否則可能反倒會帶入較大的noise,對結果造成不良影響。

另一方面缺失值較少,其餘的特徵缺失值都在10%以內,我們可以採取很多的方式來處理:

  1. 把NaN直接作為一個特徵,假設用0表示;
  2. 用均值填充;
  3. 用隨機森林等演算法預測填充。
    SVM、LR、決策樹的對比
    模型複雜度:SVM支援核函式,可處理線性非線性問題;LR模型簡單,訓練速度快,適合處理線性問題;決策樹容易過擬合,需要進行剪枝
    損失函式:SVM hinge loss; LR L2 logistical loss(對數似然損失); adaboost 指數損失
    資料敏感度:SVM新增容忍度對outlier不敏感,只關心支援向量,且需要先做歸一化; LR對異常點敏感
    資料量:資料量大就用LR,資料量小且特徵少就用SVM非線性核
    簡述KNN最近鄰分類演算法的過程
  1. 計算測試樣本和訓練樣本中每個樣本點的距離(常見的距離度量有歐式距離,馬氏距離等);
  2. 對上面所有的距離值進行排序;
  3. 選前 k 個最小距離的樣本;
  4. 根據這 k 個樣本的標籤進行投票,得到最後的分類類別;
    常用的聚類劃分方式有哪些?列舉代表演算法
  5. 基於劃分的聚類:K-means,k-medoids,CLARANS。
  6. 基於層次的聚類:AGNES(自底向上),DIANA(自上向下),BIRCH(CF-Tree),。
  7. 基於密度的聚類:DBSACN,OPTICS,CURE。
  8. 基於網格的方法:STING,WaveCluster。
  9. 基於模型的聚類:EM,SOM,COBWEB。
    什麼是偏差與方差?
    泛化誤差可以分解成偏差的平方加上方差加上噪聲。偏差度量了學習演算法的期望預測和真實結果的偏離程度,刻畫了學習演算法本身的擬合能力,方差度量了同樣大小的訓練集的變動所導致的學習效能的變化,刻畫了資料擾動所造成的影響,噪聲表達了當前任務上任何學習演算法所能達到的期望泛化誤差下界,刻畫了問題本身的難度。偏差和方差一般稱為bias和variance,一般訓練程度越強,偏差越小,方差越大,泛化誤差一般在中間有一個最小值,如果偏差較大,方差較小,此時一般稱為欠擬合,而偏差較小,方差較大稱為過擬合。
    解決bias和Variance問題的方法是什麼?
    High bias解決方案:Boosting、複雜模型(非線性模型、增加神經網路中的層)、更多特徵
    High Variance解決方案:bagging、簡化模型、降維
    採用 EM 演算法求解的模型有哪些,為什麼不用牛頓法或梯度下降法?
    用EM演算法求解的模型一般有GMM或者協同過濾,k-means其實也屬於EM。EM演算法一定會收斂,但是可能收斂到區域性最優。由於求和的項數將隨著隱變數的數目指數上升,會給梯度計算帶來麻煩。
    xgboost怎麼給特徵評分?
    我們知道,在訓練的過程中,cart樹通過Gini指數選擇分離點的特徵,一個特徵被選中的次數越多,那麼該特徵評分越高。
    但xgboost呢?對於一個葉子節點如何進行分裂,xgboost作者在其原始論文中給出了兩種分裂節點的方法
    什麼是OOB?隨機森林中OOB是如何計算的,它有什麼優缺點?
    推導樸素貝葉斯分類 P(c|d),文件 d(由若干 word 組成),求該文件屬於類別 c 的概率, 並說明公式中哪些概率可以利用訓練集計算得到
    請寫出你瞭解的機器學習特徵工程操作,以及它的意義
    請寫出你對VC維的理解和認識
    kmeans聚類中,如何確定k的大小
    請用Python實現下線性迴歸,並思考下更高效的實現方式
    怎麼理解“機器學習的各種模型與他們各自的損失函式一一對應?”
    給你一個有1000列和1百萬行的訓練資料集。這個資料集是基於分類問題的。經理要求你來降低該資料集的維度以減少模型計算時間。你的機器記憶體有限。你會怎麼做?(你可以自由做各種實際操作假設)
    問2:在PCA中有必要做旋轉變換嗎?如果有必要,為什麼?如果你沒有旋轉變換那些成分,會發生什麼情況?
    給你一個資料集,這個資料集有缺失值,且這些缺失值分佈在離中值有1個標準偏差的範圍內。百分之多少的資料不會受到影響?為什麼?
    給你一個癌症檢測的資料集。你已經建好了分類模型,取得了96%的精度。為什麼你還是不滿意你的模型效能?你可以做些什麼呢?
    解釋樸素貝葉斯演算法裡面的先驗概率、似然估計和邊際似然估計?
    你正在一個時間序列資料集上工作。經理要求你建立一個高精度的模型。你開始用決策樹演算法,因為你知道它在所有型別資料上的表現都不錯。後來,你嘗試了時間序列迴歸模型,並得到了比決策樹模型更高的精度。這種情況會發生嗎?為什麼
    給你分配了一個新的專案,是關於幫助食品配送公司節省更多的錢。問題是,公司的送餐隊伍沒辦法準時送餐。結果就是他們的客戶很不高興。最後為了使客戶高興,他們只好以免餐費了事。哪個機器學習演算法能拯救他們?
    你意識到你的模型受到低偏差和高方差問題的困擾。應該使用哪種演算法來解決問題呢?為什麼?
    給你一個資料集。該資料集包含很多變數,你知道其中一些是高度相關的。經理要求你用PCA。你會先去掉相關的變數嗎?為什麼?
    花了幾個小時後,現在你急於建一個高精度的模型。結果,你建了5 個GBM (Gradient Boosted Models),想著boosting演算法會顯示魔力。不幸的是,沒有一個模型比基準模型表現得更好。最後,你決定將這些模型結合到一起。儘管眾所周知,結合模型通常精度高,但你就很不幸運。你到底錯在哪裡?
    KNN和KMEANS聚類(kmeans clustering)有什麼不同?
    真陽性率和召回有什麼關係?寫出方程式。
    在分析了你的模型後,經理告訴你,你的模型有多重共線性。你會如何驗證他說的是真的?在不丟失任何資訊的情況下,你還能建立一個更好的模型嗎?
    什麼時候Ridge迴歸優於Lasso迴歸?
    如何在一個資料集上選擇重要的變數?給出解釋。
    Gradient boosting演算法(GBM)和隨機森林都是基於樹的演算法,它們有什麼區別?
    執行二元分類樹演算法很容易,但是你知道一個樹是如何做分割的嗎,即樹如何決定把哪些變數分到哪個根節點和後續節點上?
    你有一個資料集,變數個數p大於觀察值個數n。為什麼用OLS是一個不好的選擇?用什麼技術最好?為什麼?
    什麼是凸包?(提示:想一想SVM)其他方法還包括子集迴歸、前向逐步迴歸。
    我們知道,獨熱編碼(OneHotEncoder)會增加資料集的維度。但是標籤編碼(LabelEncoder)不會。為什麼?
    你會在時間序列資料集上使用什麼交叉驗證技術?是用k倍或LOOCV?
    給你一個缺失值多於30%的資料集?比方說,在50個變數中,有8個變數的缺失值都多於30%。你對此如何處理?
    “買了這個的客戶,也買了…”亞馬遜的建議是哪種演算法的結果?
    你怎麼理解第一類和第二類錯誤?
    當你在解決一個分類問題時,出於驗證的目的,你已經將訓練集隨機抽樣地分成訓練集和驗證集。你對你的模型能在未看見的資料上有好的表現非常有信心,因為你的驗證精度高。但是,在得到很差的精度後,你大失所望。什麼地方出了錯?
    請簡單闡述下決策樹、迴歸、SVM、神經網路等演算法各自的優缺點?正則化演算法(Regularization Algorithms)整合演算法(Ensemble Algorithms)決策樹演算法(Decision Tree Algorithm)迴歸(Regression)人工神經網路(Artificial Neural Network)深度學習(Deep Learning)支援向量機(Support Vector Machine)降維演算法(Dimensionality Reduction Algorithms)聚類演算法(Clustering Algorithms)基於例項的演算法(Instance-based Algorithms)貝葉斯演算法(Bayesian Algorithms)關聯規則學習演算法(Association Rule Learning Algorithms)圖模型(Graphical Models)
    在應用機器學習演算法之前糾正和清理資料的步驟是什麼?
    什麼是K-means聚類演算法?
    如何理解模型的過擬合與欠擬合,以及如何解決?
    請詳細說說文字特徵提取
    請詳細說說影像特徵提取
    瞭解xgboost麼,請詳細說說它的原理
    請詳細說說梯度提升樹(GBDT)的原理
    請說說Adaboost 演算法的原理與推導
    機器學習中的L0、L1與L2範數到底是什麼意思?
    請詳細說說決策樹的構造原理
    怎麼確定LDA的topic個數?
    sklearn隨機森林的特徵重要度是不是偏好數值型變數呢?我在做kaggle的Titanic問題時使用隨機森林和xgboost發現兩個數值型的變數重要度非常高,遠遠高過性別這種在資料分析時候認為很重要的特徵看sklearn文件說特徵重要度是按照特徵對不純度減少的貢獻來排的,剛才在網上找到了一篇論文大概是說這種特徵重要度的衡量方式會偏好那些類別多的變數(feature selection based on impurity reduction is biased towards preferring variables with more categories)。sklearn的文件說sklearn的決策樹都是cart樹,cart樹在對待數值型特徵的時候也可以理解成一個類別數等於樣本數的類別型特徵吧。那麼是因為這個原因導致隨機森林偏好數值型特徵嗎?
    連續特徵,既可以離散化,也可以做幅度縮放,那這兩種處理方式分別適用於什麼場景呢?
    從幾何直觀的角度解釋下為什麼拉格朗日乘子法能取到最優值?
    A/B測試的數學原理與深入理解
    如何更科學的做機器學習100天入門計劃
    如何通俗理解主成成分分析PCA
    如何通俗理解LightGBM
    線性迴歸要求因變數服從正態分佈?
    什麼是K近鄰演算法和KD樹?
    如何通俗理解貝葉斯方法和貝葉斯網路?
    最大熵模型中的數學推導
    關於xgboost使用泰勒展開式的優點?泰勒展開取得函式做自變數的二階導數形式, 可以在不選定損失函式具體形式的情況下, 僅僅依靠輸入資料的值就可以進行葉子分裂優化計算, 本質上也就把損失函式的選取和模型演算法優化/引數選擇分開了. 請問為什麼在 可以在不選定損失函式具體形式的情況下, 僅僅依靠輸入資料的值就可以進行葉子分裂優化計算?
    你有自己用過別的模型然後調參之類的嗎?能說一下基本的調參流程嗎?XGBoost知道嗎,以XGBoost為例子說一下調參流程吧。
    XGBoost和GBDT的區別有哪些?
    XGB特徵重要性程度是怎麼判斷的?
    xgb的預排序演算法是怎麼做的呢?
    RF和xgboost哪個對異常點更敏感
    xgb何時停止分裂?
    對比一下XGB和lightGBM在節點分裂時候的區別
    簡要說一下Lightgbm相對於xgboost的優缺點
    xgboost對特徵缺失敏感嗎,對缺失值做了什麼操作,存在什麼問題
    xgb和lgb在特徵、資料並行上存在什麼差異?
    為什麼xgboost不用後剪枝?

相關文章