算法問題整理

svm 問題

參考:

  • 原理: svm是一種二分類模型,基本模型是在特徵空間中尋找==間隔最大化==的分離超平面的線性分類器

    • [x] 線性可分時
    • [x] 近似線性可分時
    • [x] 線性不可分時

       利用間隔最大化求得最優分離超平面,解是唯一的,此時分隔超平面所產生的分類結果也是魯棒性最好的,對未知實例的泛化能力也是最強的

  • 爲什麼要將求解SVM 的原始問題轉換爲對偶問題了?

    • [x] 對偶問題更容易求解,引進了kkt約束條件,減小了搜尋的範圍,但是確使原始的優化問題變得複雜,爲了使問題變得易於處理,我們把目標函數和約束全部融入 拉格蘭日函數中進行求解
    • [x] 很自然的引入核函數 ,推廣到非線性分類中
  • 爲什麼svm要引入核函數 ?

       當樣本在原始空間線性不可分時,可將樣本從原始空間映射到一個更高維的特徵上,使得樣本在這個特徵空間內是線性可分的

  • svm 對缺失值比較敏感

        沒有處理缺失值的能力 ,svm希望樣本在特徵空間上線性可分,所以特徵空間的好壞對svm很重要

邏輯迴歸

參考:

   邏輯迴歸假設數據服從伯努利分佈,通過極大化似然函數,運用梯度下降來求解參數,來達到二分類的目的

  • 邏輯迴歸的損失函數爲什麼要使用極大似然函數,不選平方損失函數了?

       因爲如果使用平方損失函數,你會發現梯度更新的速度和sigmod函數本身的梯度是相關的,然而sigmod函數梯度在定義域內的梯度都不大於0.25

gbdt 和 xgboost

gbdt

  • 介紹

        gbdt 通過採用加法模型(基函數的線性組合),不斷減小訓練過程的殘差來達到將數據分類或者回歸的算法

  • 訓練過程 : 通過多輪迭代,每輪迭代產生一個弱分類器,每個分類器在上一輪分類器的殘差基礎上進行訓練,弱分類器一般選擇 cart 樹

  • gbdt 怎樣生成特徵

       邏輯迴歸本身適合處理線性可分的數據,如果我們想讓邏輯迴歸處理非線性的數據,其中一種方式便是組合不同特徵,增強邏輯迴歸對非線性分佈的擬合能力

xgboost

  • 1、顯示的把數模型複雜度作爲正則項加到優化目標中
  • 2、公式的推導中用到了二階導數,用了二階泰勒展開
  • 3、實現了分裂點尋找近似算法
  • 4、利用的特徵的稀疏性
  • 5、數據事先排序並且以block形式存儲,有利於並行計算

需要調節的參數:

通用參數;
- booster[默認gbtree]:選擇每次迭代的模型,有兩種選擇,基於線性的模型&基於樹的模型
- nthread 多線程控制

booster參數:

  • max_depth[默認6]
  • max_leaf_nodes 最大的節點或葉子的數量
  • lambda 權重的L2正則化項
  • alpha 權重的L1正則化項

介紹一下卷積神經網絡

   一般的全連接網絡,考慮的是輸入全局的信息而非局部,在卷積網絡中,以圖片輸入爲例,我們不在是一次性全部輸入,而是通過局部卷積的方式,其中卷積網絡中主要包含三個重要的概念:
- 感受野
- 共享權重
- 池化

參考 https://www.nowcoder.com/discuss/15168?type=2&order=3&pos=117&page=3&from=mnks201

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