在信息論和機率統計中,熵是表示隨機變量不肯定的度量,隨機邊量 X 的熵定義以下:算法
熵只依賴於X的分佈,與X的取值無關。markdown
條件熵 H(Y|X) 表示在已知隨機變量 X 的條件下隨機變量 Y 的不肯定性,H(Y|X) 定義爲在給定條件 X 下,Y 的條件機率分佈的熵對 X 的數學指望:函數
邏輯迴歸損失函數及梯度推導公式以下:學習
求導:測試
歸一化公式:優化
標準化公式:spa
歸一化和標準化的區別:歸一化是將樣本的特徵值轉換到同一量綱下把數據映射到[0,1]或者[-1, 1]區間內,僅由變量的極值決定,因區間放縮法是歸一化的一種。標準化是依照特徵矩陣的列處理數據,其經過求z-score的方法,轉換爲標準正態分佈,和總體樣本分佈相關,每一個樣本點都能對標準化產生影響。它們的相同點在於都能取消因爲量綱不一樣引發的偏差;都是一種線性變換,都是對向量X按照比例壓縮再進行平移。code
在訓練集中數據和標籤已知的狀況下,輸入測試數據,將測試數據的特徵與訓練集中對應的特徵進行相互比較,找到訓練集中與之最爲類似的前K個數據,則該測試數據對應的類別就是K個數據中出現次數最多的那個分類,其算法的描述爲:orm
1)計算測試數據與各個訓練數據之間的距離;排序
2)按照距離的遞增關係進行排序;
3)選取距離最小的K個點;
4)肯定前K個點所在類別的出現頻率;
5)返回前K個點中出現頻率最高的類別做爲測試數據的預測分類。
KNN中的K值選取對K近鄰算法的結果會產生重大影響。若是選擇較小的K值,就至關於用較小的領域中的訓練實例進行預測,「學習」近似偏差(近似偏差:能夠理解爲對現有訓練集的訓練偏差)會減少,只有與輸入實例較近或類似的訓練實例纔會對預測結果起做用,與此同時帶來的問題是「學習」的估計偏差會增大,換句話說,K值的減少就意味着總體模型變得複雜,容易發生過擬合;
若是選擇較大的K值,就至關於用較大領域中的訓練實例進行預測,其優勢是能夠減小學習的估計偏差,但缺點是學習的近似偏差會增大。這時候,與輸入實例較遠(不類似的)訓練實例也會對預測器做用,使預測發生錯誤,且K值的增大就意味着總體的模型變得簡單。
在實際應用中,K值通常取一個比較小的數值,例如採用交叉驗證法來選擇最優的K值。經驗規則:k通常低於訓練樣本數的平方根。
gbdt是基於Boosting的算法。
Bagging和Boosting的區別:
1)樣本選擇上:
Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。
Boosting:每一輪的訓練集不變,只是訓練集中每一個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。
2)樣例權重:
Bagging:使用均勻取樣,每一個樣例的權重相等
Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。
3)預測函數:
Bagging:全部預測函數的權重相等。
Boosting:每一個弱分類器都有相應的權重,對於分類偏差小的分類器會有更大的權重。
4)並行計算:
Bagging:各個預測函數能夠並行生成
Boosting:各個預測函數只能順序生成,由於後一個模型參數須要前一輪模型的結果。
Boosting中樣本權重發生改變的緣由:
經過提升那些在前一輪被弱分類器分錯樣例的權值,減少前一輪分對樣例的權值,來使得分類器對誤分的數據有較好的效果。
梯度降低是一種很是通用的優化算法,可以爲大範圍的問題找到最優解。梯度降低的中心思想就是迭代地調整參數從而使損失函數最小化。
假設你迷失在山上的迷霧中,你能感受到的只有你腳下路面的坡度。快速到達山腳的一個策略就是沿着最陡的方向下坡,這就是梯度降低的作法。即經過測量參數向量 θ 相關的損失函數的局部梯度,並不斷沿着下降梯度的方向調整,直到梯度降爲 0 ,達到最小值。
梯度降低公式以下:
對應到每一個權重公式爲: