機器學習 面試常見問題&答案 ②

  • 欠擬合(一般表明高誤差)html

    • 精度微信

      • 如前所述若是模型具備足夠的數據,但因不夠複雜而沒法捕捉基本關係,則會出現誤差。這樣一來,模型一直會系統地錯誤表示數據,從而致使預測精度低。這種現象叫作欠擬合(underfitting)。
      • 簡單來講,若是模型不適當,就會出現誤差。舉個例子:若是對象是按顏色和形狀分類的,但模型只能按顏色來區分對象和將對象分類(模型過分簡化),於是一直會錯誤地分類對象。
      • 或者,咱們可能有本質上是多項式的連續數據,但模型只能表示線性關係。在此狀況下,咱們向模型提供多少數據並不重要,由於模型根本沒法表示其中的基本關係,咱們須要更復雜的模型。
  • 過擬合(一般表明高方差)網絡

    • 過擬合又能夠稱之爲維度災難。
    • 機器學習中的維度災難 -
      紅色石頭的專欄 - CSDN博客 https://blog.csdn.net/red_stone1/article/details/71692444
    • 過少的數據樣本與有效特徵,太高的維度,會致使模型學到噪聲和沒必要要的無效特徵,這個概念叫作過擬合,是維度災難的一個直接後果。機器學習

      • image
    • 在訓練模型時,一般使用來自較大母體(訓練集)的有限數量樣本。若是利用選擇的數據子集反覆訓練模型,能夠預料它的預測結果會因提供給它的具體樣本而異。在這裏,方差(variance)用來測量預測結果對於任何給定的測試樣本會出現多大的變化。
    • 出現方差是正常的,但方差太高代表模型沒法將其預測結果泛化到從中抽取訓練樣本的較大母體。對訓練集高度敏感也稱爲過擬合(overfitting),並且一般出如今模型過於複雜或咱們沒有足夠的數據支持它時。
    • 一般,能夠利用更多數據進行訓練,以下降模型預測結果的方差並提升精度。
  • 如何改進模型的有效性函數

    • 咱們能夠看到,在給定一組固定數據時,模型不能過於簡單或複雜。若是過於簡單,模型沒法瞭解數據並會錯誤地表示數據。可是,若是創建很是複雜的模型,則須要更多數據才能瞭解基本關係,不然十分常見的是,模型會推斷出在數據中實際上並不存在的關係。
    • 關鍵在於,經過找出正確的模型複雜度來找到最大限度下降誤差和方差的最有效點。固然,數據越多,模型隨着時間推移會變得越好。  
    • 要詳細瞭解誤差和方差,建議閱讀 Scott Fortmann-Roe
      撰寫的這篇文章。http://scott.fortmann-roe.com...
    • 除了選定用來訓練模型的數據子集外,您使用的哪些來自給定數據集的特徵也會顯著影響模型的誤差和方差。
  • 聊一下模型訓練過程當中的學習曲線性能

    • 咱們根據模型經過可視化圖形從數據中學習的能力來探討誤差與方差之間的關係。機器學習中的學習曲線是一種可視化圖形,能根據一系列訓練實例中的訓練和測試數據比較模型的指標性能。在查看數據與偏差之間的關係時,咱們一般會看到,隨着訓練點數量的增長,偏差會趨於降低。因爲咱們嘗試構建從經驗中學習的模型,所以這頗有意義。咱們將訓練集和測試集分隔開,以便更好地瞭解可否將模型泛化到未見過的數據而不是擬合到剛見過的數據。在學習曲線中,當訓練曲線和測試曲線均達到穩定階段,而且二者之間的差距再也不變化時,則能夠確認模型已盡其所能地瞭解數據。學習

      • 誤差測試

        • 在訓練偏差和測試偏差收斂而且至關高時,這實質上表示模型具備誤差。不管咱們向其提供多少數據,模型都沒法表示基本關係,於是出現系統性的高偏差。
      • 方差spa

        • 若是訓練偏差與測試偏差之間的差距很大,這實質上表示模型具備高方差。與誤差模型不一樣的是,若是有更多可供學習的數據,或者能簡化表示數據的最重要特徵的模型,則一般能夠改進具備方差的模型。
      • 理想的學習曲線.net

        • 模型的最終目標是,偏差小並能很好地泛化到未見過的數據(測試數據)。若是測試曲線和訓練曲線均收斂,而且偏差極低,就能看到這種模型。這種模型能根據未見過的數據很是準確地進行預測。
  • 說一下你理解的信息增益(Information gain)

    • 熵:表示變量的不肯定性。
    • 條件熵:在一個條件下,變量的不肯定性。
    • 信息增益:熵 - 條件熵
    • 在一個條件下,信息不肯定性減小的程度!

      • 例子:原來明天下雨例如信息熵是2,條件熵是0.01(由於若是是陰天就下雨的機率很大,信息就少了),這樣相減後爲1.99,在得到陰天這個信息後,下雨信息不肯定性減小了1.99!是不少的!因此信息增益大!也就是說,陰天這個信息對下雨來講是很重要的!
      • 因此在特徵選擇的時候經常用信息增益,若是IG(信息增益大)的話那麼這個特徵對於分類來講很關鍵~~

決策樹就是這樣來找特徵的。

  • 說一下分類和迴歸的區別?

    • 二者追到本質是同樣。

      • 分類模型和迴歸模型本質同樣,分類模型可將回歸模型的輸出離散化,迴歸模型也可將分類模型的輸出連續化,舉幾個例子:
    • Logistic Regression 和 Linear Regression:

      • Linear Regression: 輸出一個標量
        wx+b,這個值是連續值,因此能夠用來處理迴歸問題
      • Logistic Regression:把上面的 wx+b 經過 sigmoid
        函數映射到(0,1)上,並劃分一個閾值,大於閾值的分爲一類,小於等於分爲另外一類,能夠用來處理二分類問題
      • 更進一步:對於N分類問題,則是先獲得N組w值不一樣的
        wx+b,而後歸一化,好比用 softmax
        函數,最後變成N個類上的機率,能夠處理多分類問題
    • Support Vector Regression 和 Support Vector Machine:

      • SVR:輸出
        wx+b,即某個樣本點到分類面的距離,是連續值,因此是迴歸模型
      • SVM:把這個距離用 sign(·)
        函數做用,距離爲正(在超平面一側)的樣本點是一類,爲負的是另外一類,因此是分類模型
    • Naive Bayes 用於分類 和 迴歸:

      • 用於分類:y是離散的類別,因此獲得離散的 p(y|x),給定 x
        ,輸出每一個類上的機率
      • 用於迴歸:對上面離散的 p(y|x)求指望
        ΣyP(y|x),就獲得連續值。但由於此時y自己是連續的值,因此最地道的作法是,獲得連續的機率密度函數p(y|x),而後再對y求指望。參考 http://www.cs.waikato.ac.nz/~eibe/pubs/nbr.pdf
    • 前饋神經網絡(如 CNN 系列) 用於 分類 和 迴歸:

      • 用於迴歸:最後一層有m個神經元,每一個神經元輸出一個標量,m個神經元的輸出能夠看作向量
        v,現所有連到一個神經元上,則這個神經元輸出
        wv+b,是一個連續值,能夠處理迴歸問題,跟上面 Linear Regression
        思想同樣
      • 用於N分類:如今這m個神經元最後鏈接到 N 個神經元,就有 N
        組w值不一樣的 wv+b,同理能夠歸一化(好比用 softmax )變成
        N個類上的機率(補充一下,若是不用 softmax,而是每一個 wx+b
        用一個
        sigmoid,就變成多標籤問題,跟多分類的區別在於,樣本能夠被打上多個標籤)
    • 循環神經網絡(如 RNN 系列) 用於分類 和 迴歸:

      • 用於迴歸 和 分類: 跟 CNN 相似,輸出層的值 y =
        wv+b,可作分類可作迴歸,只不過區別在於,RNN
        的輸出跟時間有關,即輸出的是 {y(t),
        y(t+1),...}序列(關於時間序列,見下面的更新)
    • 上面的例子其實都是從 prediction 的角度舉例的,若是從 training 角度來看,分類模型和迴歸模型的目標函數不一樣,分類常見的是 log loss,hinge loss, 而回歸是 square loss

 
 
  
 機器學習技術交流二維碼

如文章你已看懂,點個「喜歡」便可。如若錯誤以及不清晰的地方,隨時提出。歡迎掃一掃上面二維碼加入個人我的微信號進行技術交流。    

相關文章
相關標籤/搜索