版本 0.16#
版本 0.16.1#
2015 年 4 月 14 日
更新日誌#
錯誤修復#
允許在
covariance.LedoitWolf
中輸入大於block_size
的資料,由 Andreas Müller 提供。修正
isotonic.IsotonicRegression
中重複資料刪除的錯誤,此錯誤會在calibration.CalibratedClassifierCV
中導致不穩定的結果,由 Jan Hendrik Metzen 提供。修正 Michael Heilman 在 func:
preprocessing.label_binarize
中標籤的排序。修正
cross_decomposition.CCA
和cross_decomposition.PLSCanonical
中的數個穩定性和收斂問題,由 Andreas Müller 提供。修正當在 fortran 排序的資料上使用
precompute_distances=False
時,cluster.KMeans
中的錯誤。修正
ensemble.RandomForestClassifier
的predict
和predict_proba
中的速度退化問題,由 Andreas Müller 提供。修正當
utils.shuffle
將列表和數據框轉換為陣列時的退化問題,由 Olivier Grisel 提供。
版本 0.16#
2015 年 3 月 26 日
重點#
速度改進(特別是在
cluster.DBSCAN
中),減少記憶體需求、錯誤修復和更好的預設設定。多項式邏輯回歸和
linear_model.LogisticRegressionCV
中的路徑演算法。通過
decomposition.IncrementalPCA
進行 PCA 的核心外學習。使用
calibration.CalibratedClassifierCV
校準分類器的機率。用於大規模數據集的
cluster.Birch
分群方法。使用
neighbors.LSHForest
中基於局部敏感雜湊森林的可擴展近似最近鄰搜尋。改進的錯誤訊息,以及使用格式錯誤的輸入資料時更好的驗證。
與 pandas 資料框更穩健的整合。
更新日誌#
新功能#
新的
neighbors.LSHForest
實現了局部敏感雜湊,以進行近似最近鄰搜尋。由 Maheshakya Wijewardena 提供。新增
svm.LinearSVR
。此類別使用 liblinear 實作支援向量回歸,對於大型樣本大小,它比具有線性核的svm.SVR
快得多。由 Fabian Pedregosa 和 Qiang Luo 提供。GaussianNB
的增量擬合。為
dummy.DummyClassifier
和dummy.DummyRegressor
新增sample_weight
支援。由 Arnaud Joly 提供。新增
metrics.label_ranking_average_precision_score
指標。由 Arnaud Joly 提供。新增
metrics.coverage_error
指標。由 Arnaud Joly 提供。新增
linear_model.LogisticRegressionCV
。由 Manoj Kumar、Fabian Pedregosa、Gael Varoquaux 和 Alexandre Gramfort 提供。新增
warm_start
建構子參數,使任何經過訓練的森林模型都能以增量方式長出額外的樹。由 Laurent Direr 提供。為
ensemble.GradientBoostingClassifier
和ensemble.GradientBoostingRegressor
新增sample_weight
支援。由 Peter Prettenhofer 提供。新增
decomposition.IncrementalPCA
,PCA 演算法的實作,支援使用partial_fit
方法的核心外學習。由 Kyle Kastner 提供。為
SGDClassifier
和SGDRegressor
平均 SGD。由 Danny Sullivan 提供。新增計算交叉驗證估計的
cross_val_predict
函數。由 Luis Pedro Coelho 提供新增
linear_model.TheilSenRegressor
,一個穩健的基於廣義中位數的估計器。由 Florian Wilhelm 提供。新增
metrics.median_absolute_error
,一個穩健的指標。由 Gael Varoquaux 和 Florian Wilhelm 提供。新增
cluster.Birch
,一種線上分群演算法。由 Manoj Kumar、Alexandre Gramfort 和 Joel Nothman 提供。使用兩個新的求解器,為
discriminant_analysis.LinearDiscriminantAnalysis
新增收縮支援。由 Clemens Brunner 和 Martin Billinger 提供。新增
kernel_ridge.KernelRidge
,核化嶺迴歸的實作。由 Mathieu Blondel 和 Jan Hendrik Metzen 提供。linear_model.Ridge
中的所有求解器現在都支援sample_weight
。由 Mathieu Blondel 提供。為固定的使用者提供的交叉驗證折疊新增
cross_validation.PredefinedSplit
交叉驗證。由 Thomas Unterthiner 提供。新增了
calibration.CalibratedClassifierCV
,這是一種校正分類器預測機率的方法。由 Alexandre Gramfort、Jan Hendrik Metzen、Mathieu Blondel 和 Balazs Kegl 貢獻。
增強功能#
在
hierarchical.ward_tree
中新增選項return_distance
,以回傳演算法結構化和非結構化版本的節點之間的距離。由 Matteo Visconti di Oleggio Castello 貢獻。相同的選項也新增至hierarchical.linkage_tree
。由 Manoj Kumar 貢獻。在評分器物件中新增樣本權重支援。支援樣本權重的指標將自動受益於此功能。由 Noel Dawe 和 Vlad Niculae 貢獻。
在
linear_model.LogisticRegression
中新增newton-cg
和lbfgs
解算器支援。由 Manoj Kumar 貢獻。新增
selection="random"
參數,以實作linear_model.Lasso
、linear_model.ElasticNet
和相關演算法的隨機座標下降法。由 Manoj Kumar 貢獻。在
metrics.jaccard_similarity_score
和metrics.log_loss
中新增sample_weight
參數。由 Jatin Shah 貢獻。在
preprocessing.LabelBinarizer
和multiclass.OneVsRestClassifier
中(由 Hamzeh Alsalhi 貢獻,感謝 Rohit Sivaprasad),以及評估指標中(由 Joel Nothman 貢獻)支援稀疏多標籤指示器表示法。在
metrics.jaccard_similarity_score
中新增sample_weight
參數。由Jatin Shah
貢獻。在
metrics.hinge_loss
中新增多類別支援。新增labels=None
作為可選參數。由Saurabh Jha
貢獻。在
metrics.hinge_loss
中新增sample_weight
參數。由Saurabh Jha
貢獻。在
linear_model.LogisticRegression
中新增multi_class="multinomial"
選項,以實作邏輯迴歸解算器,該解算器會最小化交叉熵或多項式損失,而不是預設的一對多設定。支援lbfgs
和newton-cg
解算器。由 Lars Buitinck 和 Manoj Kumar 貢獻。解算器選項newton-cg
由 Simon Wu 貢獻。當給予選項
sort=False
時,DictVectorizer
現在可以在單次傳遞中對可迭代物件執行fit_transform
。由 Dan Blanchard 貢獻。model_selection.GridSearchCV
和model_selection.RandomizedSearchCV
現在可以設定為與可能在個別折疊上失敗並引發錯誤的估算器一起使用。此選項由error_score
參數控制。這不會影響重新擬合時引發的錯誤。由 Michal Romaniuk 貢獻。在
metrics.classification_report
中新增digits
參數,以允許報告顯示不同精度的浮點數。由 Ian Gilmore 貢獻。在
dummy.DummyRegressor
中新增分位數預測策略。由 Aaron Staple 貢獻。在
preprocessing.OneHotEncoder
中新增handle_unknown
選項,以便在轉換期間更妥善地處理未知的類別特徵。由 Manoj Kumar 貢獻。新增對決策樹及其集成模型的稀疏輸入資料支援。由 Fares Hedyati 和 Arnaud Joly 貢獻。
透過減少大型暫時資料結構的記憶體配置數量,最佳化了
cluster.AffinityPropagation
。由 Antony Lee 貢獻。隨機森林中特徵重要性計算的平行化。由 Olivier Grisel 和 Arnaud Joly 貢獻。
在建構函式中接受
max_iter
屬性的估算器中新增n_iter_
屬性。由 Manoj Kumar 貢獻。為
multiclass.OneVsOneClassifier
新增決策函式。由 Raghav RV 和 Kyle Beauchamp 貢獻。neighbors.kneighbors_graph
和radius_neighbors_graph
支援非歐幾里得指標。由 Manoj Kumar 貢獻。現在,
cluster.AgglomerativeClustering
和系列的connectivity
參數接受傳回連通性矩陣的可呼叫物件。由 Manoj Kumar 貢獻。為
metrics.pairwise.paired_distances
提供稀疏支援。由 Joel Nothman 貢獻。cluster.DBSCAN
現在支援稀疏輸入和樣本權重,並且經過最佳化:內部迴圈已使用 Cython 重新編寫,並且半徑鄰近查詢現在以批次計算。由 Joel Nothman 和 Lars Buitinck 貢獻。為
ensemble.RandomForestClassifier
、tree.DecisionTreeClassifier
、ensemble.ExtraTreesClassifier
和tree.ExtraTreeClassifier
新增class_weight
參數,以根據類別頻率自動加權樣本。由 Trevor Stephens 貢獻。如果所有參數都以清單形式提供,
grid_search.RandomizedSearchCV
現在會執行不放回抽樣。由 Andreas Müller 貢獻。現在,
metrics.pairwise_distances
的平行化計算支援 scipy 指標和自訂可呼叫物件。由 Joel Nothman 貢獻。允許在
pipeline.Pipeline
中擬合和評分所有分群演算法。由 Andreas Müller 貢獻。由 Andreas Müller 貢獻,在
cluster.MeanShift
中加入更穩健的種子設定和改進的錯誤訊息。由 Hervé Bredin 貢獻,修改
mixture.GMM
、mixture.DPGMM
和mixture.VBGMM
的停止準則,使其較不依賴樣本數量,改為以對數似然度變化的平均值而非所有樣本總和作為閾值。由 Hasil Sharma 貢獻,將
manifold.spectral_embedding
的結果改為確定性的,方法是翻轉特徵向量的符號。由 Eric Martin 貢獻,大幅改進
preprocessing.PolynomialFeatures
的效能和記憶體使用。由 Nicolas Goix 貢獻,提升
preprocessing.StandardScaler
和preprocessing.scale
的數值穩定性。由 Rob Zinkov 和 Andreas Müller 貢獻,在稀疏輸入上擬合的
svm.SVC
現在實現了decision_function
。cross_validation.train_test_split
現在保留輸入類型,而不是轉換為 numpy 陣列。
文件改進#
由 Matt Terry 貢獻,新增使用
pipeline.FeatureUnion
處理異質輸入的範例。由 Matt Pico 貢獻,改進評分器(scorer)的文件,以強調損失函數的處理。
由 Manoj Kumar 貢獻,現在註明 liblinear 輸出與 scikit-learn 的包裝器之間的差異。
由 Joel Nothman 貢獻,改進文件產生:現在在類別/函數的 API 參考頁面上,會在圖庫中顯示引用該類別或函數的範例。
由 Joel Nothman 貢獻,更明確的文件說明樣本產生器和資料轉換。
由 Manoj Kumar 貢獻,
sklearn.neighbors.BallTree
和sklearn.neighbors.KDTree
過去指向空白頁面,聲稱它們是 BinaryTree 的別名。現在已修正為顯示正確的類別文件。新增使用
metrics.silhouette_samples
和metrics.silhouette_score
分析 KMeans 分群的輪廓圖。參見 在 KMeans 分群上使用輪廓分析選擇叢集數量
錯誤修正#
由 Joel Nothman 貢獻,Metaestimators 現在支援鴨子型別(ducktyping)以判斷是否存在
decision_function
、predict_proba
和其他方法。這修正了巢狀使用時grid_search.GridSearchCV
、grid_search.RandomizedSearchCV
、pipeline.Pipeline
、feature_selection.RFE
、feature_selection.RFECV
的行為。當給定
grid_search.GridSearchCV
作為基本估計器,或基本估計器沒有 predict 方法時,不再忽略網格搜尋和交叉驗證方法的scoring
屬性。由 Matteo Visconti di Oleggio Castello 貢獻,函數
hierarchical.ward_tree
現在對於結構化和非結構化版本都以相同的順序返回子節點。由 Nikolay Mayorov 貢獻,
feature_selection.RFECV
現在正確處理step
不等於 1 的情況。由 Michael Eickenberg 貢獻,
decomposition.PCA
現在在其inverse_transform
中撤銷白化。此外,其components_
現在總是具有單位長度。由 Manoj Kumar 貢獻,修正呼叫
datasets.download_20newsgroups
時,資料集下載不完整的問題。Vincent Dubourg 和 Jan Hendrik Metzen 對高斯過程子套件進行了各種修正。
由 Danny Sullivan 貢獻,使用
class_weight=='auto'
呼叫partial_fit
時,會拋出適當的錯誤訊息並建議解決方法。由 Dougal Sutherland 貢獻,
gamma=g
的RBFSampler
以前會以gamma=g/2.
近似rbf_kernel
;gamma
的定義現在一致了,如果您使用固定值,這可能會大幅改變您的結果。(如果您在gamma
上進行交叉驗證,可能不會有太大影響。)由 Arnaud Joly 貢獻,Pipeline 物件將
classes_
屬性委派給底層估計器。這允許對 Pipeline 物件進行 Bagging 等操作。由 Manoj Kumar 貢獻,當 metric 設定為
manhattan
時,neighbors.NearestCentroid
現在使用中位數作為質心。之前使用的是平均值。由 Olivier Grisel 貢獻,透過限制大梯度並確保權重衰減重新縮放始終為正值(對於大的 l2 正則化和大的學習率值),修正
linear_model.SGDClassifier
和linear_model.SGDRegressor
中的數值穩定性問題。由 Manoj Kumar 貢獻,當
compute_full_tree
設定為「auto」時,在叢集數量較高時會建立完整樹狀結構,在叢集數量較低時會提前停止,而cluster.AgglomerativeClustering
(和相關函數)的行為應該相反。現在已修正此問題。由 Manoj Kumar 貢獻,修正
linear_model.enet_path
和linear_model.lasso_path
中延遲數據居中的問題。它之前是以 1 為中心。現在已更改為以原點為中心。由 Cathy Deng 貢獻,修正使用連通性約束時,
cluster.AgglomerativeClustering
中預先計算的親和力矩陣的處理問題。由 Trevor Stephens 貢獻,修正
sklearn.naive_bayes.MultinomialNB
和sklearn.naive_bayes.BernoulliNB
的partial_fit
對class_prior
的處理。由 Andreas Müller 貢獻,修正當在多標籤設定中使用未排序的
labels
時,metrics.precision_recall_fscore_support
中的崩潰問題。當查詢資料與擬合資料不同時,避免在
sklearn.neighbors.NearestNeighbors
及其相關類別的radius_neighbors
、kneighbors
、kneighbors_graph
和radius_neighbors_graph
方法中跳過第一個最近鄰。由 Manoj Kumar 修正。修正了使用綁定共變異數的
mixture.GMM
中的對數密度計算。由 Will Dawson 修正。修正了
feature_selection.SelectFdr
中的縮放錯誤,該錯誤缺少了n_features
因子。由 Andrew Tulloch 修正。修正了當使用距離加權且具有相同資料點時,
neighbors.KNeighborsRegressor
和相關類別中的零除法錯誤。由 Garret-R 修正。修正了 GMM 中非正定共變異數矩陣的捨入誤差。由 Alexis Mignon 修正。
修正了
naive_bayes.BernoulliNB
中條件機率計算的錯誤。由 Hanna Wallach 修正。使
neighbors.NearestNeighbors
的radius_neighbors
方法針對algorithm='brute'
時返回邊界上的樣本。由 Yan Yi 修正。翻轉了
svm.SVC
的dual_coef_
的符號,使其與文檔和decision_function
一致。由 Artem Sobolev 修正。修正了
isotonic.IsotonicRegression
中對 ties 的處理。現在我們使用目標的加權平均值(次要方法)。由 Andreas Müller 和 Michael Bommarito 修正。
API 變更摘要#
GridSearchCV
和cross_val_score
以及其他元估計器不再將 pandas DataFrames 轉換為陣列,允許在自定義估計器中使用 DataFrame 特定的操作。multiclass.fit_ovr
、multiclass.predict_ovr
、predict_proba_ovr
、multiclass.fit_ovo
、multiclass.predict_ovo
、multiclass.fit_ecoc
和multiclass.predict_ecoc
已被棄用。請改用底層的估計器。最近鄰估計器過去會接受任意關鍵字參數,並將它們傳遞給它們的距離度量。scikit-learn 0.18 將不再支援此功能;請改用
metric_params
參數。- fit 方法的
n_jobs
參數已移至 LinearRegression 類的建構函式中。
- fit 方法的
在多類別情況下,
multiclass.OneVsRestClassifier
的predict_proba
方法現在每個樣本返回兩個機率;這與其他估計器和該方法的文件一致,但之前的版本意外地只返回了正機率。由 Will Lamond 和 Lars Buitinck 修正。將
linear_model.ElasticNet
和linear_model.Lasso
中 precompute 的預設值變更為 False。當 n_samples > n_features 時,將 precompute 設定為 “auto” 被發現速度較慢,因為 Gram 矩陣的計算成本很高,而且抵消了僅針對一個 alpha 擬合 Gram 的好處。precompute="auto"
現在已被棄用,並將在 0.18 中移除。由 Manoj Kumar 修正。在
linear_model.enet_path
和linear_model.enet_path
中公開positive
選項,該選項會將係數限制為正數。由 Manoj Kumar 修正。當執行多類別或多標籤(即非二元)分類時,使用者現在應向
sklearn.metrics.f1_score
、sklearn.metrics.fbeta_score
、sklearn.metrics.recall_score
和sklearn.metrics.precision_score
提供明確的average
參數。由 Joel Nothman 修正。交叉驗證的
scoring
參數現在接受'f1_micro'
、'f1_macro'
或'f1_weighted'
。'f1'
現在僅用於二元分類。類似的變更也適用於'precision'
和'recall'
。由 Joel Nothman 修正。已移除
linear_model.enet_path
和linear_model.lasso_path
中的fit_intercept
、normalize
和return_models
參數。它們自 0.14 版本以來已被棄用。從現在開始,當在模型擬合之前調用任何類似
predict
的方法時,所有估計器都會統一引發NotFittedError
。由 Raghav RV 修正。重構了輸入資料驗證,以實現更一致的輸入驗證。
check_arrays
函式已由check_array
和check_X_y
取代。由 Andreas Müller 修正。允許在
sklearn.neighbors.NearestNeighbors
及其相關類別的radius_neighbors
、kneighbors
、kneighbors_graph
和radius_neighbors_graph
方法中使用X=None
。如果設定為 None,則對於每個樣本,這將避免將樣本本身設定為第一個最近鄰。由 Manoj Kumar 修正。在
neighbors.kneighbors_graph
和neighbors.radius_neighbors_graph
中新增參數include_self
,該參數必須由使用者明確設定。如果設定為 True,則樣本本身被視為第一個最近鄰。在
GMM
、DPGMM
和VBGMM
中,thresh
參數已被棄用,改用新的tol
參數。有關詳細資訊,請參閱Enhancements
部分。由 Hervé Bredin 修正。估計器在可能的情況下會將 dtype 為 object 的輸入視為數值型別。由 Andreas Müller 提供。
當估計器在空資料(對於 2D 輸入,樣本數少於 1 或特徵數少於 1)上擬合時,現在會一致地引發
ValueError
錯誤。由 Olivier Grisel 提供。linear_model.SGDClassifier
、linear_model.SGDRegressor
、linear_model.Perceptron
、linear_model.PassiveAggressiveClassifier
和linear_model.PassiveAggressiveRegressor
的shuffle
選項現在預設為True
。cluster.DBSCAN
現在使用確定性的初始化。random_state
參數已被棄用。由 Erich Schubert 提供。
程式碼貢獻者#
A. Flaxman, Aaron Schumacher, Aaron Staple, abhishek thakur, Akshay, akshayah3, Aldrian Obaja, Alexander Fabisch, Alexandre Gramfort, Alexis Mignon, Anders Aagaard, Andreas Mueller, Andreas van Cranenburgh, Andrew Tulloch, Andrew Walker, Antony Lee, Arnaud Joly, banilo, Barmaley.exe, Ben Davies, Benedikt Koehler, bhsu, Boris Feld, Borja Ayerdi, Boyuan Deng, Brent Pedersen, Brian Wignall, Brooke Osborn, Calvin Giles, Cathy Deng, Celeo, cgohlke, chebee7i, Christian Stade-Schuldt, Christof Angermueller, Chyi-Kwei Yau, CJ Carey, Clemens Brunner, Daiki Aminaka, Dan Blanchard, danfrankj, Danny Sullivan, David Fletcher, Dmitrijs Milajevs, Dougal J. Sutherland, Erich Schubert, Fabian Pedregosa, Florian Wilhelm, floydsoft, Félix-Antoine Fortin, Gael Varoquaux, Garrett-R, Gilles Louppe, gpassino, gwulfs, Hampus Bengtsson, Hamzeh Alsalhi, Hanna Wallach, Harry Mavroforakis, Hasil Sharma, Helder, Herve Bredin, Hsiang-Fu Yu, Hugues SALAMIN, Ian Gilmore, Ilambharathi Kanniah, Imran Haque, isms, Jake VanderPlas, Jan Dlabal, Jan Hendrik Metzen, Jatin Shah, Javier López Peña, jdcaballero, Jean Kossaifi, Jeff Hammerbacher, Joel Nothman, Jonathan Helmus, Joseph, Kaicheng Zhang, Kevin Markham, Kyle Beauchamp, Kyle Kastner, Lagacherie Matthieu, Lars Buitinck, Laurent Direr, leepei, Loic Esteve, Luis Pedro Coelho, Lukas Michelbacher, maheshakya, Manoj Kumar, Manuel, Mario Michael Krell, Martin, Martin Billinger, Martin Ku, Mateusz Susik, Mathieu Blondel, Matt Pico, Matt Terry, Matteo Visconti dOC, Matti Lyra, Max Linke, Mehdi Cherti, Michael Bommarito, Michael Eickenberg, Michal Romaniuk, MLG, mr.Shu, Nelle Varoquaux, Nicola Montecchio, Nicolas, Nikolay Mayorov, Noel Dawe, Okal Billy, Olivier Grisel, Óscar Nájera, Paolo Puggioni, Peter Prettenhofer, Pratap Vardhan, pvnguyen, queqichao, Rafael Carrascosa, Raghav R V, Rahiel Kasim, Randall Mason, Rob Zinkov, Robert Bradshaw, Saket Choudhary, Sam Nicholls, Samuel Charron, Saurabh Jha, sethdandridge, sinhrks, snuderl, Stefan Otte, Stefan van der Walt, Steve Tjoa, swu, Sylvain Zimmer, tejesh95, terrycojones, Thomas Delteil, Thomas Unterthiner, Tomas Kazmar, trevorstephens, tttthomasssss, Tzu-Ming Kuo, ugurcaliskan, ugurthemaster, Vinayak Mehta, Vincent Dubourg, Vjacheslav Murashkin, Vlad Niculae, wadawson, Wei Xue, Will Lamond, Wu Jiang, x0l, Xinfan Meng, Yan Yi, Yu-Chin