Scikit-learn是Python所有的機器學習程式包中,你必須掌握的最重要的一個包,它包含各種分類算法,回歸算法和聚類算法,其中包括支援向量機、随機森林、梯度提升、k均值和基于密度的聚類算法(DBSCAN),且旨在與Python數值庫NumPy和科學庫SciPy進行互相配合。
它通過一個接口,提供了一系列的有監督和無監督算法。此庫希望在生産中使用時,能具有很好的穩健性和支撐性,是以它的着重點在易用性,代碼品質,協同工作,文檔生成和性能等問題上。
不管是對機器學習的初學者還是經驗豐富的專業人士來說,Scikit-learn庫都是應該熟練掌握的優秀軟體包。然而,即使是有經驗的機器學習從業者可能也沒有意識到這個包中所隐藏的一些特性,這些特性可以輕松地幫助他們完成任務。接下來本文将列舉幾個scikit-learn庫中鮮為人知的方法或接口。
管道(Pipeline)
這可以用來将多個估計量鍊化合一。因為在處理資料時,通常有着一系列固定的步驟,比如特征選擇、歸一化和分類,此時這個方法将非常有用。
更多資訊:
http://scikit-learn.org/stable/modules/pipeline.html
網格搜尋(Grid-search)
超參數在參數估計中是不直接學習的,在scikit-learn庫中,超參數會作為參數傳遞給估計類的構造函數,然後在超參數空間中搜尋最佳的交叉驗證分數在建構參數估計量時提供的任何參數都是可以用這種方式進行優化的。
http://scikit-learn.org/stable/modules/grid_search.html#grid-search
驗證曲線(Validation curves)
每種估計方法都有其優缺點,它的泛化誤差可以用偏差、方差和噪音來分解。估計量的偏差就是不同訓練集的平均誤差;估計量的方差是表示對不同訓練集的敏感程度;噪聲是資料本身的一個屬性。
繪制單個超參數對訓練分數和驗證分數的影響是非常有用的,因為從圖中可以看出估計量對于某些超參數值是過拟合還是欠拟合。在Scikit-learn庫中,有一個内置方法是可以實作以上過程的。
http://scikit-learn.org/stable/modules/learning_curve.html

分類資料的獨熱編碼(One-hot encoding of categorical data)
這是一種非常常見的資料預處理步驟,在分類或預測任務中(如混合了數量型和文本型特征的邏輯回歸),常用于對多分類變量進行二分類編碼。Scikit-learn庫提供了有效而簡單的方法來實作這一點。它可以直接在Pandas資料框或Numpy數組上運作,是以使用者就可以為這些資料轉換編寫一些特殊的映射函數或應用函數。
Scikit-learn庫更多資訊:
http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features
多項式特征生成(Polynomial feature generation)
對于無數的回歸模組化任務來說,一種常用的增加模型複雜程度的有效方法是增加解釋變量的非線性特征。一種簡單而常用的方法就是多項式特征,因為它可以得到特征的高階項和交叉項。而Scikit-learn庫中有現成的函數,它可根據給定的特征集和使用者選擇的最高多項式生成更高階的交叉項。
http://scikit-learn.org/stable/modules/preprocessing.html#generating-polynomial-features
資料集生成器(Dataset generators)
Scikit-learn庫包含各種随機樣本生成器,可以根據不同大小和複雜程度來建構人工資料集,且具有分類、聚類、回歸、矩陣分解和流形測試的功能。
http://scikit-learn.org/stable/datasets/index.html#sample-generators
原文釋出時間為:2018-05-14
本文作者:文摘菌
本文來自雲栖社群合作夥伴“
大資料文摘”,了解相關資訊可以關注“
”。