BAT機器學習面試1000題系列(316-320)
316、什麼是偏差與方差?
泛化誤差可以分解成偏差的平方加上方差加上雜訊。偏差度量了學習演算法的期望預測和真實結果的偏離程度,刻畫了學習演算法本身的擬合能力,方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,刻畫了數據擾動所造成的影響,雜訊表達了當前任務上任何學習演算法所能達到的期望泛化誤差下界,刻畫了問題本身的難度。偏差和方差一般稱為bias和variance,一般訓練程度越強,偏差越小,方差越大,泛化誤差一般在中間有一個最小值,如果偏差較大,方差較小,此時一般稱為欠擬合,而偏差較小,方差較大稱為過擬合。
偏差:
方差:
317、解決bias和Variance問題的方法是什麼?
交叉驗證
High bias解決方案:Boosting、複雜模型(非線性模型、增加神經網路中的層)、更多特徵High Variance解決方案:agging、簡化模型、降維318.採用 EM 演算法求解的模型有哪些,為什麼不用牛頓法或梯度下降法?
用EM演算法求解的模型一般有GMM或者協同過濾,k-means其實也屬於EM。EM演算法一定會收斂,但是可能收斂到局部最優。由於求和的項數將隨著隱變數的數目指數上升,會給梯度計算帶來麻煩。319、xgboost怎麼給特徵評分?
在訓練的過程中,通過Gini指數選擇分離點的特徵,一個特徵被選中的次數越多,那麼該特徵評分越高。[python]
# feature importance print(model.feature_importances_) # plot pyplot.bar(range(len(model.feature_importances_)), model.feature_importances_) pyplot.show() ========== # plot feature importance plot_importance(model) pyplot.show()
Python是最好的語言 ——魯迅
向所有的程序員致敬
320、什麼是OOB?隨機森林中OOB是如何計算的,它有什麼優缺點?
bagging方法中Bootstrap每次約有1/3的樣本不會出現在Bootstrap所採集的樣本集合中,當然也就沒有參加決策樹的建立,把這1/3的數據稱為袋外數據oob(out of bag),它可以用於取代測試集誤差估計方法。
袋外數據(oob)誤差的計算方法如下:對於已經生成的隨機森林,用袋外數據測試其性能,假設袋外數據總數為O,用這O個袋外數據作為輸入,帶進之前已經生成的隨機森林分類器,分類器會給出O個數據相應的分類,因為這O條數據的類型是已知的,則用正確的分類與隨機森林分類器的結果進行比較,統計隨機森林分類器分類錯誤的數目,設為X,則袋外數據誤差大小=X/O;這已經經過證明是無偏估計的,所以在隨機森林演算法中不需要再進行交叉驗證或者單獨的測試集來獲取測試集誤差的無偏估計。推薦閱讀:
※LightGBM 中文文檔發布,持續 Update 中,歡迎各位大佬前來裝逼 | ApacheCN
※如何畫XGBoost裡面的決策樹(decision tree)
※Kaggle 入門 1.2——Introduction to Ensembling/Stacking in Python (Titanic)
※從理解XGBoost到實現TGBoost
※xgboost的原理沒你想像的那麼難