版本 0.15#
版本 0.15.2#
2014 年 9 月 4 日
錯誤修正#
修正了 Minkowski 距離的
p
參數的處理方式,該參數之前在最近鄰模型中被忽略。由 Nikolay Mayorov 提供。修正了在 32 位元 Python 上提前停止時,
linear_model.LassoLars
中重複的 alpha 值。由 Olivier Grisel 和 Fabian Pedregosa 提供。修正在 Windows 下使用 MSVC 建置 scikit-learn,而 NumPy 使用 MinGW 建置時的建置問題。由 Olivier Grisel 和 Federico Vaggi 提供。
修正了坐標下降求解器中的陣列索引溢位錯誤。由 Gael Varoquaux 提供。
更好地處理 numpy 1.9 的棄用警告。由 Gael Varoquaux 提供。
移除了
cluster.KMeans
中不必要的資料複製。由 Gael Varoquaux 提供。顯式關閉開啟的檔案,以避免在 Python 3 下出現
ResourceWarnings
。由 Calvin Giles 提供。discriminant_analysis.LinearDiscriminantAnalysis
的transform
現在將輸入投影到最具鑑別力的方向上。由 Martin Billinger 提供。修正了
_tree.safe_realloc
中潛在的溢位問題,由 Lars Buitinck 提供。在
isotonic.IsotonicRegression
中進行效能最佳化。由 Robert Bradshaw 提供。nose
不再是匯入sklearn
的執行期相依性,僅用於執行測試。由 Joel Nothman 提供。由 Joel Nothman、Lars Buitinck Matt Pico 和其他人進行了許多文件和網站修正。
版本 0.15.1#
2014 年 8 月 1 日
錯誤修正#
使
cross_validation.cross_val_score
在多輸出分類問題上使用cross_validation.KFold
而不是cross_validation.StratifiedKFold
。由 Nikolay Mayorov 提供。支援看不見的標籤
preprocessing.LabelBinarizer
,以還原 0.14.1 的預設行為,以實現向後相容性。由 Hamzeh Alsalhi 提供。修正了
cluster.KMeans
的停止條件,該條件阻止了提前收斂偵測。由 Edward Raff 和 Gael Varoquaux 提供。修正了
multiclass.OneVsOneClassifier
的行為。在每個類別投票層級出現平手的情況下,計算正確的每個類別預測分數總和。由 Andreas Müller 提供。使
cross_validation.cross_val_score
和grid_search.GridSearchCV
接受 Python 清單作為輸入資料。這對於文字處理管道的交叉驗證和模型選擇特別有用。由 Andreas Müller 提供。修正了大多數估計器的資料輸入檢查,以接受實作 NumPy
__array__
協定的輸入資料。這是最近版本的 pandas 中pandas.Series
和pandas.DataFrame
的情況。由 Gael Varoquaux 提供。修正了使用
class_weight="auto"
在具有非連續標籤的資料上的linear_model.SGDClassifier
的迴歸問題。由 Olivier Grisel 提供。
版本 0.15#
2014 年 7 月 15 日
重點#
程式碼各處的許多速度和記憶體改進
隨機森林(和額外樹)的速度和記憶體大幅提升,這也有利於更好地進行平行運算。
對
BernoulliRBM
進行增量擬合新增了
cluster.AgglomerativeClustering
,用於使用平均連鎖、完全連鎖和 Ward 策略進行階層凝聚式分群。新增了
linear_model.RANSACRegressor
,用於穩健迴歸模型。新增了使用
manifold.TSNE
進行降維,可用於視覺化高維資料。
變更日誌#
新功能#
新增了
ensemble.BaggingClassifier
和ensemble.BaggingRegressor
元估計器,用於集成任何類型的基本估計器。有關詳細資訊和範例,請參閱使用者指南的 Bagging 章節。由 Gilles Louppe 提供。新的非監督式特徵選擇演算法
feature_selection.VarianceThreshold
,由 Lars Buitinck 提供。新增了
linear_model.RANSACRegressor
元估計器,用於穩健地擬合迴歸模型。由 Johannes Schönberger 提供。新增了
cluster.AgglomerativeClustering
,用於使用平均連鎖、完全連鎖和 Ward 策略進行階層凝聚式分群,由 Nelle Varoquaux 和 Gael Varoquaux 提供。簡寫建構子
pipeline.make_pipeline
和pipeline.make_union
由 Lars Buitinck 新增。為
cross_validation.StratifiedKFold
新增了洗牌選項。由 Jeffrey Blackburne 提供。Imran Haque 為高斯朴素貝氏新增了增量學習 (
partial_fit
)。為
BernoulliRBM
新增了partial_fit
。由 Danny Sullivan 提供。新增
learning_curve
工具,用於繪製與訓練集大小相關的效能圖表。請參閱繪製學習曲線並檢查模型的擴展性。由 Alexander Fabisch 提供。在
LassoCV
和ElasticNetCV
中新增正值選項。由 Brian Wignall 和 Alexandre Gramfort 提供。新增
linear_model.MultiTaskElasticNetCV
和linear_model.MultiTaskLassoCV
。由 Manoj Kumar 提供。新增
manifold.TSNE
。由 Alexander Fabisch 提供。
增強功能#
為
ensemble.AdaBoostClassifier
和ensemble.AdaBoostRegressor
後設估計器增加稀疏輸入支援。由 Hamzeh Alsalhi 提供。決策樹的記憶體改進,由 Arnaud Joly 提供。
現在可以使用
max_leaf_nodes
作為停止條件,以最佳優先方式建立決策樹。重構了樹狀程式碼,以便使用堆疊或優先佇列進行樹狀建立。由 Peter Prettenhofer 和 Gilles Louppe 提供。現在可以在 fortran 和 c 風格的陣列以及非連續陣列上擬合決策樹,而無需複製。如果輸入陣列具有與
np.float32
不同的 dtype,則會進行 fortran 風格的複製,因為 fortran 風格的記憶體配置具有速度優勢。由 Peter Prettenhofer 和 Gilles Louppe 提供。透過優化均方誤差準則的計算,提高回歸樹的速度。這導致了樹、森林和梯度提升樹模組的速度提升。由 Arnaud Joly 提供。
sklearn.feature_extraction.image
中的img_to_graph
和grid_tograph
函式,在return_as=np.ndarray
時,現在會傳回np.ndarray
而不是np.matrix
。有關相容性的更多資訊,請參閱「附註」章節。變更決策樹的內部儲存,改為使用結構陣列。這修正了一些小錯誤,同時改進了程式碼並提供少許速度提升。由 Joel Nothman 提供。
透過利用 joblib 0.8 的新執行緒後端,並在樹狀擬合 Cython 程式碼中釋放 GIL,減少使用
n_jobs != 1
平行擬合和預測隨機樹森林時的記憶體使用量和額外負荷。由 Olivier Grisel 和 Gilles Louppe 提供。改進
sklearn.ensemble.gradient_boosting
模組的速度。由 Gilles Louppe 和 Peter Prettenhofer 提供。對
sklearn.ensemble.gradient_boosting
模組的各種增強:新增warm_start
引數以擬合其他樹狀結構、新增max_leaf_nodes
引數以擬合 GBM 風格的樹狀結構、新增monitor
擬合引數以在訓練期間檢查估計器,以及重構詳細程式碼。由 Peter Prettenhofer 提供。透過快取特徵值,加快
sklearn.ensemble.ExtraTrees
的速度。由 Arnaud Joly 提供。透過避免嘗試在樣本子集中找到的常數特徵上分割,加快基於深度的樹狀建立演算法(例如決策樹、隨機森林、額外樹或梯度樹提升(使用基於深度的增長策略))。由 Arnaud Joly 提供。
為基於樹狀的方法新增
min_weight_fraction_leaf
預剪枝參數:葉節點所需的輸入樣本的最小加權比例。由 Noel Dawe 提供。新增
metrics.pairwise_distances_argmin_min
,由 Philippe Gervais 提供。為
cluster.AffinityPropagation
和cluster.MeanShift
新增 predict 方法,由 Mathieu Blondel 提供。整個程式庫中的向量和矩陣乘法已由 Denis Engemann 和 Alexandre Gramfort 進行了最佳化。特別是,在舊版 NumPy (1.7.2 之前) 中,它們應佔用較少的記憶體。
現在精確率-召回率和 ROC 範例使用 train_test_split,並且更詳細地說明了這些指標為何有用。由 Kyle Kastner 提供。
用於
decomposition.NMF
的訓練演算法對於稀疏矩陣而言速度更快,並且記憶體複雜性低得多,這意味著它將順利擴展到大型資料集。由 Lars Buitinck 提供。為
decomposition.FactorAnalysis
新增 svd_method 選項,其預設值為「randomized」,以節省記憶體並顯著加快計算速度,由 Denis Engemann 和 Alexandre Gramfort 提供。變更
cross_validation.StratifiedKFold
以盡可能保留樣本的原始順序,以免在具有不可忽略的樣本依賴性等級的資料集上隱藏過度擬合。由 Daniel Nouri 和 Olivier Grisel 提供。由 John Novak 提供,為
gaussian_process.GaussianProcessRegressor
新增多輸出支援。由 Robert Layton 和 Joel Nothman 提供,支援最近鄰估計器中的預先計算距離矩陣。
由 Lars Buitinck 提供,針對 NumPy 1.6 和更新版本最佳化範數計算。特別是,k 平均值演算法不再需要與其輸入大小相同的臨時資料結構。
現在可以使用
dummy.DummyClassifier
來預測常數輸出值。由 Manoj Kumar 提供。現在
dummy.DummyRegressor
具有策略參數,可允許預測訓練集的平均值、中位數或常數輸出值。由 Maheshakya Wijewardena 提供。現在
metrics.roc_auc_score
和metrics.average_precision_score
支援多標籤指示器格式的多標籤分類輸出,由 Arnaud Joly 提供。由 Andrew Tulloch 提供,
isotonic.IsotonicRegression
的效能顯著提升 (大型問題的速度提升超過 100 倍)。線性模型的 SGD 演算法的速度和記憶體使用量改進:現在當
n_jobs>1
時,它使用執行緒,而不是單獨的程序。由 Lars Buitinck 提供。網格搜尋和交叉驗證允許輸入陣列中出現 NaN,以便可以在交叉驗證迴圈中訓練預處理器(例如
preprocessing.Imputer
),從而避免可能產生偏差的結果。嶺迴歸現在可以處理特徵空間中的樣本權重(直到那時僅限於樣本空間)。由 Michael Eickenberg 提供。兩個解決方案均由 Cholesky 求解器提供。
數個分類和回歸指標現在透過新的
sample_weight
參數支援加權樣本:metrics.accuracy_score
、metrics.zero_one_loss
、metrics.precision_score
、metrics.average_precision_score
、metrics.f1_score
、metrics.fbeta_score
、metrics.recall_score
、metrics.roc_auc_score
、metrics.explained_variance_score
、metrics.mean_squared_error
、metrics.mean_absolute_error
、metrics.r2_score
。由 Noel Dawe 提供。加速樣本產生器
datasets.make_multilabel_classification
。由 Joel Nothman 提供。
文件改進#
「使用文字資料」教學現在已整合到主要文件的教學章節中。包括練習和教學演示的骨架。原始教學由數個作者建立,包括 Olivier Grisel、Lars Buitinck 和其他許多人。教學整合到 scikit-learn 文件中由 Jaques Grobler 完成。
新增 計算效能 文件。討論和預測延遲/吞吐量的範例,以及影響速度的不同因素。額外提供建立更快模型和在速度與預測能力之間選擇相關折衷方案的提示。由 Eustache Diemert 提供。
錯誤修正#
修正
decomposition.MiniBatchDictionaryLearning
中的錯誤:partial_fit
無法正常運作。修正
linear_model.stochastic_gradient
中的錯誤:l1_ratio
被用作(1.0 - l1_ratio)
。修正使用字串標籤的
multiclass.OneVsOneClassifier
中的錯誤修正
LassoCV
和ElasticNetCV
中的錯誤:它們不會預先計算precompute=True
或precompute="auto"
以及n_samples > n_features
的 Gram 矩陣。由 Manoj Kumar 提供。修正當變數未置中時,
feature_selection.f_regression
中自由度的不正確估計。由 Virgile Fritsch 提供。修正當
pre_dispatch != "all"
時(例如在cross_val_score
中)並行處理中的競爭條件。由 Olivier Grisel 提供。當未提供任何樣本時,在
cluster.FeatureAgglomeration
和cluster.WardAgglomeration
中引發錯誤,而不是返回無意義的群集。修正
loss='huber'
的gradient_boosting.GradientBoostingRegressor
中的錯誤:gamma
可能未初始化。修正當使用
sample_weight != None
和/或bootstrap=True
進行擬合時,使用隨機樹森林計算的特徵重要性。由 Gilles Louppe 提供。
API 變更摘要#
sklearn.hmm
已被棄用。計劃在 0.17 版本中移除。在棄用後,已移除對
covariance.EllipticEnvelop
的使用。請改用covariance.EllipticEnvelope
。cluster.Ward
已被棄用。請改用cluster.AgglomerativeClustering
。cluster.WardClustering
已被棄用。請改用cross_validation.Bootstrap
已被棄用。建議改用cross_validation.KFold
或cross_validation.ShuffleSplit
。對序列的序列(或列表的列表)多標籤格式的直接支援已棄用。若要轉換為和轉換自支援的二元指標矩陣格式,請使用
preprocessing.MultiLabelBinarizer
。由 Joel Nothman 提供。在機率 PCA 模型之後,將評分方法新增至
decomposition.PCA
,並棄用ProbabilisticPCA
模型,因為其評分實作不正確。此計算現在也利用矩陣反轉引理來加快計算速度。由 Alexandre Gramfort 提供。decomposition.FactorAnalysis
的評分方法現在返回樣本的平均對數概似值。使用 score_samples 來取得每個樣本的對數概似值。由 Alexandre Gramfort 提供。從交叉驗證產生器產生布林遮罩(設定
indices=False
)已棄用。將在 0.17 中移除對遮罩的支援。自 0.10 起,產生器預設會產生索引陣列。由 Joel Nothman 提供。包含
dtype=object
的字串的一維陣列(如在 Pandas 中使用的)現在被視為有效的分類目標。這修正了某些分類器中 0.13 版本的迴歸。由 Joel Nothman 提供。修正
RandomizedPCA
中錯誤的explained_variance_ratio_
屬性。由 Alexandre Gramfort 提供。在
linear_model.ElasticNetCV
和linear_model.LassoCV
中,針對每個l1_ratio
擬合 alpha 值,而不是使用mean_l1_ratio
。如果提供的l1_ratio
是一維陣列類型的物件且長度大於 1,這會將alphas_
的形狀從(n_alphas,)
更改為(n_l1_ratio, n_alphas)
。由 Manoj Kumar 提供。修正當擬合截距且輸入資料為稀疏時,
linear_model.ElasticNetCV
和linear_model.LassoCV
的問題。自動的 alpha 網格計算不正確,且使用正規化 (normalize) 的縮放比例也錯誤。由 Manoj Kumar 提供。修正決策樹、隨機森林和梯度樹提升在每次分割時繪製的最大特徵數 (
max_features
) 錯誤的問題。先前,繪製特徵數量的計數僅在分割中存在一個非恆定的特徵後才開始。此錯誤修復將影響這些演算法在存在恆定特徵時的計算效能和泛化效能。若要恢復先前的泛化效能,您應修改max_features
的值。由 Arnaud Joly 提供。修正
ensemble.ExtraTreesClassifier
和ensemble.ExtraTreesRegressor
在每次分割時繪製的最大特徵數 (max_features
) 錯誤的問題。先前,只有分割中非恆定的特徵才被計為已繪製。現在,恆定的特徵也被計為已繪製。此外,至少需要有一個非恆定的特徵才能進行有效的分割。此錯誤修復將影響額外樹 (extra trees) 在存在恆定特徵時的計算效能和泛化效能。若要恢復先前的泛化效能,您應修改max_features
的值。由 Arnaud Joly 提供。修正當
class_weight=="auto"
時,utils.class_weight.compute_class_weight
的問題。先前,對於非整數dtype
的輸入,它會發生錯誤,且回傳的加權陣列是錯誤的。由 Manoj Kumar 提供。修正
cross_validation.Bootstrap
,當n_train + n_test > n
時,會回傳ValueError
。由 Ronald Phlypo 提供。
人員#
依提交次數排序的 0.15 版本貢獻者列表。
312 Olivier Grisel
275 Lars Buitinck
221 Gael Varoquaux
148 Arnaud Joly
134 Johannes Schönberger
119 Gilles Louppe
113 Joel Nothman
111 Alexandre Gramfort
95 Jaques Grobler
89 Denis Engemann
83 Peter Prettenhofer
83 Alexander Fabisch
62 Mathieu Blondel
60 Eustache Diemert
60 Nelle Varoquaux
49 Michael Bommarito
45 Manoj-Kumar-S
28 Kyle Kastner
26 Andreas Mueller
22 Noel Dawe
21 Maheshakya Wijewardena
21 Brooke Osborn
21 Hamzeh Alsalhi
21 Jake VanderPlas
21 Philippe Gervais
19 Bala Subrahmanyam Varanasi
12 Ronald Phlypo
10 Mikhail Korobov
8 Thomas Unterthiner
8 Jeffrey Blackburne
8 eltermann
8 bwignall
7 Ankit Agrawal
7 CJ Carey
6 Daniel Nouri
6 Chen Liu
6 Michael Eickenberg
6 ugurthemaster
5 Aaron Schumacher
5 Baptiste Lagarde
5 Rajat Khanduja
5 Robert McGibbon
5 Sergio Pascual
4 Alexis Metaireau
4 Ignacio Rossi
4 Virgile Fritsch
4 Sebastian Säger
4 Ilambharathi Kanniah
4 sdenton4
4 Robert Layton
4 Alyssa
4 Amos Waterland
3 Andrew Tulloch
3 murad
3 Steven Maude
3 Karol Pysniak
3 Jacques Kvam
3 cgohlke
3 cjlin
3 Michael Becker
3 hamzeh
3 Eric Jacobsen
3 john collins
3 kaushik94
3 Erwin Marsi
2 csytracy
2 LK
2 Vlad Niculae
2 Laurent Direr
2 Erik Shilts
2 Raul Garreta
2 Yoshiki Vázquez Baeza
2 Yung Siang Liau
2 abhishek thakur
2 James Yu
2 Rohit Sivaprasad
2 Roland Szabo
2 amormachine
2 Alexis Mignon
2 Oscar Carlsson
2 Nantas Nardelli
2 jess010
2 kowalski87
2 Andrew Clegg
2 Federico Vaggi
2 Simon Frid
2 Félix-Antoine Fortin
1 Ralf Gommers
1 t-aft
1 Ronan Amicel
1 Rupesh Kumar Srivastava
1 Ryan Wang
1 Samuel Charron
1 Samuel St-Jean
1 Fabian Pedregosa
1 Skipper Seabold
1 Stefan Walk
1 Stefan van der Walt
1 Stephan Hoyer
1 Allen Riddell
1 Valentin Haenel
1 Vijay Ramesh
1 Will Myers
1 Yaroslav Halchenko
1 Yoni Ben-Meshulam
1 Yury V. Zaytsev
1 adrinjalali
1 ai8rahim
1 alemagnani
1 alex
1 benjamin wilson
1 chalmerlowe
1 dzikie drożdże
1 jamestwebber
1 matrixorz
1 popo
1 samuela
1 François Boulogne
1 Alexander Measure
1 Ethan White
1 Guilherme Trein
1 Hendrik Heuer
1 IvicaJovic
1 Jan Hendrik Metzen
1 Jean Michel Rouly
1 Eduardo Ariño de la Rubia
1 Jelle Zijlstra
1 Eddy L O Jansson
1 Denis
1 John
1 John Schmidt
1 Jorge Cañardo Alastuey
1 Joseph Perla
1 Joshua Vredevoogd
1 José Ricardo
1 Julien Miotte
1 Kemal Eren
1 Kenta Sato
1 David Cournapeau
1 Kyle Kelley
1 Daniele Medri
1 Laurent Luce
1 Laurent Pierron
1 Luis Pedro Coelho
1 DanielWeitzenfeld
1 Craig Thompson
1 Chyi-Kwei Yau
1 Matthew Brett
1 Matthias Feurer
1 Max Linke
1 Chris Filo Gorgolewski
1 Charles Earl
1 Michael Hanke
1 Michele Orrù
1 Bryan Lunt
1 Brian Kearns
1 Paul Butler
1 Paweł Mandera
1 Peter
1 Andrew Ash
1 Pietro Zambelli
1 staubda