原標題:Scikit-learn玩得很熟了?這些功能你都知道嗎?

大數據文摘作品

編譯:汪小七、笪潔瓊、Aileen

分享一些Scikit-learn程序包裏鮮有人知的遺珠功能。

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

相關報道:

https://heartbeat.fritz.ai/some-essential-hacks-and-tricks-for-machine-learning-with-python-5478bc6593f2返回搜狐,查看更多

責任編輯:

相關文章