1 簡介
就在幾天前,著名的機器學習框架scikit-learn
在pypi
上釋放了其1.0rc1
版本,這裡給大家科普一下,版本號中的rc
是Release Candidate
的簡稱,代表當前的版本是一個候選釋出版本,一旦到了這個階段,scikit-learn
對於1.0
版本的開發設計就基本上不會再新增功能,而是全力投入到查缺補漏的測試中去也就意味著:
經歷了十餘年的開發程序,
scikit-learn
即將迎來其頗具里程碑意義的一次大版本釋出!
在這次大版本更新中,scikit-learn
也很有誠意地帶來了諸多新特性,下面我們就來對其中一些關鍵性的內容進行簡單的介紹。
2 scikit-learn 1.0 版本重要特性一覽
2.1 強制要求使用關鍵詞引數傳參
按照scikit-learn
官方的說法,為了更加清楚明確地構建機器學習程式碼,在之後的版本中,絕大部分API
都將逐漸轉換為強制使用關鍵詞引數,使用位置引數則會直接丟擲TypeError
錯誤,以SVC
為例:
2.2 新增r_regression()
在新版本中新增了sklearn.feature_selection.r_regression()
,可以用來快速計算各個自變數與因變數之間的皮爾遜簡單相關係數來輔助特徵工程過程。
2.3 新增線性分位數迴歸模型QuantileRegressor()
新版本中在sklearn.linear_model
下添加了線性分位數迴歸模型QuantileRegressor()
,可用於構建迴歸模型由自變數求出因變數的條件分位數,近年來在計量經濟學中應用廣泛。
2.4 新增基於隨機梯度下降的OneClassSvm模型
在sklearn.linear_model
中新增了基於隨機梯度下降法的異常檢測模型SGDOneClassSVM()
:
2.5 帶交叉驗證的Lasso迴歸與ElasticNet新增sample_weight引數
為sklearn.linear_model
中的LassoCV()
與ElasticNetCV()
新增引數sample_weight
,可幫助我們在模型建立的過程中通過構建權重提升部分樣本的重要性。
2.6 為分位數迴歸模型新增模型效能度量指標
伴隨著新的分位數迴歸模型,scikit-learn
也順勢新增了專門用於度量分位數迴歸模型效能的Pinball loss係數:
2.7 模型選擇新增StratifiedGroupKFold()
新版中將sklearn.model_selection
中常用的StratifiedKFold()
與GroupKFold()
進行結合,使得我們可以快速構建分層分組K折交叉驗證流程,詳情參考:https://scikit-learn.org/dev/modules/generated/sklearn.model_selection.StratifiedGroupKFold.html#sklearn.model_selection.StratifiedGroupKFold
2.8 KMeans聚類中的k-means++初始化方法運算速度提升
新版本中cklearn.cluster
中常用的KMeans()
與MiniBatchKMeans()
聚類模型,在預設的k-means++
簇心初始化方法下運算速度獲得大幅度提高,尤其是在多核機器上表現更佳。
2.9 多項式&互動項特徵生成速度提升
新版本中sklearn.preprocessing
中用於快速合成多項式&互動項特徵的PolynomialFeatures()
的運算速度更快了,且在輸入為大型稀疏特徵時效果更為明顯。
2.10 np.matrix型輸入即將棄用
從1.0
版本開始,scikit-learn
中的各種演算法模型在接受numpy
中的matrix
型別輸入時,會列印棄用警告,且從未來的1.2
版本開始,當用戶輸入np.matrix
型別時將會直接報錯:
2.11 利用feature_names_in_獲取pandas資料框輸入下的特徵名稱
當輸入的特徵為pandas
中的DataFrame
型別時,對於訓練好的模型,可以使用feature_names_in_
屬性獲取到對應輸入特徵的欄位名稱:
2.12 繪製區域性依賴圖的方式變化
在我們試圖對模型進行解釋時,區域性依賴圖是一個比較經典的工具,在以前的版本中我們可以使用sklearn.inspection
中的plot_partial_dependence()
來繪製區域性依賴圖,而在新版本中將會棄用這種方式,並且在1.2
版本開始正式移除這個API
,新的替代方案是使用sklearn.inspection.PartialDependenceDisplay
的from_estimator()
:
除了這些之外,在scikit-learn
新版本中還有眾多的細碎的更新與調整內容,感興趣的朋友可以前往https://scikit-learn.org/dev/whats_new/v1.0.html
自行瀏覽學習。
以上就是本文的全部內容,歡迎在評論區與我進行討論。