舊版本#

版本 0.12.1#

2012 年 10 月 8 日

0.12.1 版本是一個錯誤修正版本,沒有額外功能,而是一組錯誤修正

變更日誌#

人員#

版本 0.12#

2012 年 9 月 4 日

變更日誌#

API 變更摘要#

  • 舊的 scikits.learn 套件已消失;所有程式碼都應改為從 sklearn 匯入,這是 0.9 版本中引入的。

  • metrics.roc_curve 中,現在返回的 thresholds 陣列的順序已反轉,以使其與返回的 fprtpr 的順序保持一致。

  • hmm 物件(如 hmm.GaussianHMMhmm.MultinomialHMM 等)中,所有參數都必須在初始化物件時傳遞給物件,而不是透過 fit。現在 fit 只會接受資料作為輸入參數。

  • 對於所有 SVM 類別,修復了 gamma 的錯誤行為。先前,預設的 gamma 值僅在第一次呼叫 fit 時計算,然後儲存。現在會在每次呼叫 fit 時重新計算。

  • 所有 Base 類別現在都是抽象的元類別,因此它們無法實例化。

  • cluster.ward_tree 現在也會返回父陣列。這對於提前停止是必要的,在這種情況下,樹狀結構並未完全建立。

  • CountVectorizer 中,參數 min_nmax_n 加入了參數 n_gram_range,以便能夠一次進行網格搜尋。

  • CountVectorizer 中,預設情況下會忽略僅出現在一個文件中的單字。若要重現先前的行為,請設定 min_df=1

  • 修復了 API 不一致性:在兩個類別上擬合時,linear_model.SGDClassifier.predict_proba 現在會返回 2 維陣列。

  • 修復了 API 不一致性:在兩個類別上擬合時,discriminant_analysis.QuadraticDiscriminantAnalysis.decision_functiondiscriminant_analysis.LinearDiscriminantAnalysis.decision_function 現在會返回 1 維陣列。

  • 用於擬合 LassoCVElasticNetCV 的 alpha 網格現在儲存在屬性 alphas_ 中,而不是覆寫 init 參數 alphas

  • 當使用交叉驗證估計 alpha 值時,線性模型會將估計值儲存在 alpha_ 屬性中,而不是僅僅使用 alphabest_alpha

  • GradientBoostingClassifier 現在支援 staged_predict_probastaged_predict

  • svm.sparse.SVC 和其他稀疏 SVM 類別現在已被棄用。 支持向量機 模組中的所有類別現在會根據輸入自動選擇稀疏或密集表示法。

  • 所有叢集演算法現在都會將傳遞給 fit 的陣列 X 解釋為輸入資料,尤其是 SpectralClusteringAffinityPropagation,它們之前預期的是親和力矩陣。

  • 對於將所需的叢集數量作為參數的叢集演算法,此參數現在稱為 n_clusters

人員#

版本 0.11#

2012 年 5 月 7 日

變更日誌#

重點#

其他變更#

API 變更摘要#

  • covariance.EllipticEnvelop 現在已被棄用。請改用 EllipticEnvelope

  • NeighborsClassifierNeighborsRegressor最近鄰模組中已移除。請改用 KNeighborsClassifierRadiusNeighborsClassifierKNeighborsRegressor 和/或 RadiusNeighborsRegressor 類別。

  • 隨機梯度下降模組中的稀疏類別現在已被棄用。

  • mixture.GMMmixture.DPGMMmixture.VBGMM 中,參數必須在初始化物件時傳遞,而不是透過 fit 傳遞。現在 fit 將只接受資料作為輸入參數。

  • GMM 模組中的方法 rvsdecode 現在已被棄用。應改用 samplescorepredict

  • 單變數特徵選擇物件中的屬性 _scores_pvalues 現在已被棄用。應改用 scores_pvalues_

  • LogisticRegressionLinearSVCSVCNuSVC 中,class_weight 參數現在是一個初始化參數,而不是 fit 的參數。這使得可以對此參數進行網格搜尋。

  • LFW data 現在始終為 (n_samples, n_features) 的形狀,以便與 Olivetti 人臉資料集保持一致。請使用 imagespairs 屬性來存取自然的影像形狀。

  • LinearSVC 中,multi_class 參數的含義已變更。現在的選項為 'ovr''crammer_singer',其中 'ovr' 為預設值。這不會變更預設行為,但希望不會造成混淆。

  • 類別 feature_selection.text.Vectorizer 已被棄用,並由 feature_selection.text.TfidfVectorizer 取代。

  • 文字特徵提取的預處理器/分析器巢狀結構已移除。所有這些特徵現在都直接作為扁平的建構子參數傳遞到 feature_selection.text.TfidfVectorizerfeature_selection.text.CountVectorizer,特別是現在使用以下參數

  • analyzer 可以是 'word''char' 以切換預設的分析方案,或使用特定的 Python 可呼叫物件(如先前一樣)。

  • 引入了 tokenizerpreprocessor,以便仍然可以使用新的 API 自訂這些步驟。

  • input 明確地控制如何解釋傳遞到 fitpredict 的序列:檔案名稱、檔案物件或直接 (位元組或 Unicode) 字串。

  • 字元集解碼預設為明確且嚴格。

  • 已擬合或未擬合的 vocabulary 現在儲存在 vocabulary_ 屬性中,以便與專案慣例保持一致。

  • 類別 feature_selection.text.TfidfVectorizer 現在直接衍生自 feature_selection.text.CountVectorizer,以使網格搜尋變得簡單。

  • _BaseHMM 模組中的方法 rvs 現在已被棄用。應改用 sample

  • 由於難以 Cython 化,_BaseHMM 模組中的波束修剪選項已移除。如果您有興趣,可以查看 git 中的歷史程式碼。

  • SVMlight 格式載入器現在支援具有從零開始和從一開始的欄索引的檔案,因為這兩種索引都「在實際情況中」出現。

  • 類別 ShuffleSplit 中的參數現在與 StratifiedShuffleSplit 保持一致。參數 test_fractiontrain_fraction 已被棄用,並重新命名為 test_sizetrain_size,並且可以接受 floatint

  • 類別 Bootstrap 中的參數現在與 StratifiedShuffleSplit 保持一致。參數 n_testn_train 已被棄用,並重新命名為 test_sizetrain_size,並且可以接受 floatint

  • 將參數 p 新增至 最近鄰中的類別,以指定用於最近鄰搜尋的任意閔可夫斯基度量。

人員#

版本 0.10#

2012 年 1 月 11 日

更新日誌#

API 變更摘要#

以下是從 scikit-learn 版本 0.9 升級時的程式碼移轉說明。

  • 一些可能會覆寫其輸入以節省記憶體的估計器,之前有 overwrite_ 參數;這些參數已替換為具有完全相反含義的 copy_ 參數。

    這特別影響了 linear_model 中的一些估計器。預設行為仍然是複製傳入的所有內容。

  • SVMlight 資料集載入器 load_svmlight_file 不再支援同時載入兩個檔案;請改用 load_svmlight_files。此外,(未使用的)buffer_mb 參數已移除。

  • 隨機梯度下降模組中的稀疏估計器使用密集參數向量 coef_ 而不是 sparse_coef_。這顯著提高了測試時間效能。

  • 共變異數估計模組現在具有穩健的共變異數估計器,即最小共變異數行列式估計器。

  • cluster 中的叢集評估指標已重構,但變更向下相容。它們已移至 metrics.cluster.supervised,以及包含輪廓係數的 metrics.cluster.unsupervised

  • 現在 permutation_test_score 函數的行為與 cross_val_score 相同(即使用各個折疊的平均分數)。

  • 交叉驗證產生器現在預設使用整數索引 (indices=True) 而不是布林遮罩。這使得它更直觀地與稀疏矩陣數據一起使用。

  • 用於稀疏編碼的函數 sparse_encodesparse_encode_parallel 已合併為 sparse_encode,並且為了與矩陣分解設定保持一致,陣列的形狀已被轉置,而不是回歸設定。

  • 修正了 SVMlight/LibSVM 檔案格式處理中的一個差一錯誤;使用 dump_svmlight_file 產生的檔案應該重新產生。(它們應該會繼續運作,但意外地在前面附加了一個額外的零列。)

  • BaseDictionaryLearning 類別已被 SparseCodingMixin 取代。

  • sklearn.utils.extmath.fast_svd 已重新命名為 randomized_svd,並且預設的過度採樣現在已固定為 10 個額外的隨機向量,而不是將要提取的組件數量加倍。新的行為遵循參考論文。

貢獻者#

自上次發布以來,以下人士為 scikit-learn 做出貢獻

版本 0.9#

2011 年 9 月 21 日

scikit-learn 0.9 於 2011 年 9 月發布,在 0.8 版本發布三個月後,包含了新的模組 流形學習狄利克雷過程,以及幾個新的演算法和文件改進。

此版本還包括 Vlad Niculae 作為 Google Summer of Code 計畫的一部分所開發的字典學習工作。

banner2 banner1 banner3

變更日誌#

API 變更摘要#

以下是從 scikit-learn 版本 0.8 升級時的程式碼遷移說明

  • scikits.learn 套件已重新命名為 sklearn。為了向後相容,仍然有 scikits.learn 套件別名。

    依賴於 scikit-learn 0.9+ 的第三方專案應升級其程式碼庫。例如,在 Linux/MacOSX 下,只需執行(請先備份!):

    find -name "*.py" | xargs sed -i 's/\bscikits.learn\b/sklearn/g'
    
  • 估算器不再接受模型參數作為 fit 引數:而是所有參數都必須僅作為建構函式引數傳遞,或者使用現在公開的 set_params 方法傳遞,該方法繼承自 BaseEstimator

    某些估算器仍然可以在 fit 上接受關鍵字引數,但這僅限於與資料相關的值(例如,從 X 資料矩陣預先計算的格拉姆矩陣或親和力矩陣)。

  • cross_val 套件已重新命名為 cross_validation,儘管為了向後相容,也存在 cross_val 套件別名。

    依賴於 scikit-learn 0.9+ 的第三方專案應升級其程式碼庫。例如,在 Linux/MacOSX 下,只需執行(請先備份!):

    find -name "*.py" | xargs sed -i 's/\bcross_val\b/cross_validation/g'
    
  • 現在 sklearn.cross_validation.cross_val_score 函式的 score_func 引數預期只接受 y_testy_predicted 作為分類和迴歸任務的引數,或是接受 X_test 作為非監督估計器的引數。

  • 支援向量機演算法的 gamma 參數預設設為 1 / n_features,而不是 1 / n_samples

  • sklearn.hmm 已被標記為孤立模組:除非有人主動貢獻文件、範例並修復潛在的數值穩定性問題,否則將在 scikit-learn 0.11 版本中移除。

  • sklearn.neighbors 已改為子模組。先前可用的兩個估計器 NeighborsClassifierNeighborsRegressor 已被標記為棄用。它們的功能已劃分到五個新的類別中: NearestNeighbors 用於非監督鄰近搜尋, KNeighborsClassifierRadiusNeighborsClassifier 用於監督分類問題,以及 KNeighborsRegressorRadiusNeighborsRegressor 用於監督迴歸問題。

  • sklearn.ball_tree.BallTree 已移至 sklearn.neighbors.BallTree。使用前者會產生警告。

  • sklearn.linear_model.LARS() 和相關類別 (LassoLARS, LassoLARSCV 等) 已重新命名為 sklearn.linear_model.Lars()

  • sklearn.metrics.pairwise 中的所有距離度量和核函數現在都有一個 Y 參數,預設為 None。如果未給定,則結果為 Y 中每個樣本之間的距離 (或核相似度)。如果給定,則結果為 X 中樣本到 Y 中樣本之間的成對距離 (或核相似度)。

  • sklearn.metrics.pairwise.l1_distance 現在稱為 manhattan_distance,預設情況下會返回成對距離。對於逐分量距離,請將參數 sum_over_features 設定為 False

向後相容性套件別名和其他已棄用的類別和函式將在 0.11 版本中移除。

貢獻者#

共有 38 人為此版本做出貢獻。

0.8 版#

2011 年 5 月 11 日

scikit-learn 0.8 於 2011 年 5 月發布,在第一次「國際」scikit-learn 程式碼衝刺的一個月後發布,其標誌為納入了重要的模組:階層式分群交叉分解非負矩陣分解 (NMF 或 NNMF)、對 Python 3 的初始支援,以及重要的增強功能和錯誤修正。

變更日誌#

在此版本中引入了幾個新的模組

其他一些模組也受益於顯著的改進或清理。

貢獻者#

此版本能夠發布的貢獻者,依據提交次數排序

版本 0.7#

2011 年 3 月 2 日

scikit-learn 0.7 版本於 2011 年 3 月發布,大約在 0.6 版本發布後三個月。此版本的特色是改進了現有演算法的速度,例如 k 最近鄰和 K 平均演算法,並且加入了計算嶺迴歸廣義交叉驗證解的有效演算法。與之前的版本不同,此版本沒有新增任何模組。

更新日誌#

人員#

此版本能夠發布的貢獻者,依據提交次數排序

版本 0.6#

2010 年 12 月 21 日

scikit-learn 0.6 版本於 2010 年 12 月發布。此版本的特色是加入了數個新模組,並對舊模組進行了通用重新命名。此外,也加入了新的範例,包括實際資料集的應用。

更新日誌#

  • Peter Prettenhofer 開發的新的隨機梯度下降模組。此模組提供完整的說明文件和範例。

  • 改進的 svm 模組:記憶體消耗減少了 50%、自動設定類別權重的啟發式方法、可將權重指派給樣本的功能(請參閱 SVM:加權樣本 以取得範例)。

  • Vincent Dubourg 開發的新的高斯過程模組。此模組也提供優良的說明文件和一些非常精美的範例。請參閱 example_gaussian_process_plot_gp_regression.py 或 example_gaussian_process_plot_gp_probabilistic_classification_after_regression.py,以了解可以執行哪些操作。

  • 現在可以使用 liblinear 的多類別 SVC(LinearSVC 中的選項 multi_class)。

  • 文字特徵擷取的新功能和效能改進。

  • 改進主要類別(GridSearchCV)以及模組 sklearn.svm.sparse 和 sklearn.linear_model.sparse 中稀疏矩陣的支援。

  • 建立許多很棒的新範例和使用實際資料集的新章節。這些包括:使用特徵臉和 SVM 的臉部辨識範例物種分布建模Wikipedia 主要特徵向量 和其他範例。

  • 更快的最小角度迴歸演算法。在最壞的情況下,它現在比 R 版本快 2 倍,在某些情況下,速度提高高達 10 倍。

  • 更快的座標下降演算法。特別是,完整路徑版本的 lasso(linear_model.lasso_path)比以前快 200 倍以上。

  • 現在可以從 LogisticRegression 模型取得機率估計值。

  • 模組重新命名:glm 模組已重新命名為 linear_model,gmm 模組已包含在更通用的混合模型中,sgd 模組已包含在 linear_model 中。

  • 許多錯誤修正和說明文件改進。

人員#

此版本能夠發布的貢獻者,依據提交次數排序

版本 0.5#

2010 年 10 月 11 日

更新日誌#

新類別#

  • 在模組 svmlinear_model 的一些分類器中支援稀疏矩陣(請參閱 svm.sparse.SVCsvm.sparse.SVRsvm.sparse.LinearSVClinear_model.sparse.Lassolinear_model.sparse.ElasticNet)。

  • 新的 Pipeline 物件,用於組合不同的估計器。

  • 模組 特徵選擇 中的遞迴特徵消除常式。

  • 在 linear_model 模組中加入了能夠進行交叉驗證的各種類別(LassoCVElasticNetCV 等)。

  • 新的、更有效率的 LARS 演算法實作。此演算法的 Lasso 變體也已實作。請參閱 lars_pathLarsLassoLars

  • 新的隱藏式馬可夫模型模組(請參閱類別 hmm.GaussianHMMhmm.MultinomialHMMhmm.GMMHMM

  • 新的 feature_extraction 模組(請參閱 類別參考

  • sklearn.fastica 模組中新的 FastICA 演算法

文件#

修正#

  • API 變更:變數名稱遵守 PEP-8 規範,賦予更有意義的名稱。

  • 修正 svm 模組,使其能在共享記憶體環境(多處理)下執行。

  • 現在可以再次從 sphinx 文件產生 latex(進而產生 PDF)。

範例#

外部依賴項#

  • Joblib 現在是此套件的依賴項,儘管它是隨附的(sklearn.externals.joblib)。

已移除的模組#

  • 模組 ann (人工神經網路) 已從發行版本中移除。需要這類演算法的使用者應考慮 pybrain。

其他#

  • 網頁的新 sphinx 主題。

作者#

以下是此版本的作者清單,前面標示的是提交次數

  • 262 Fabian Pedregosa

  • 240 Gael Varoquaux

  • 149 Alexandre Gramfort

  • 116 Olivier Grisel

  • 40 Vincent Michel

  • 38 Ron Weiss

  • 23 Matthieu Perrot

  • 10 Bertrand Thirion

  • 7 Yaroslav Halchenko

  • 9 VirgileFritsch

  • 6 Edouard Duchesnay

  • 4 Mathieu Blondel

  • 1 Ariel Rokem

  • 1 Matthieu Brucher

版本 0.4#

2010 年 8 月 26 日

變更日誌#

此版本的主要變更包括

  • 座標下降演算法 (Lasso、ElasticNet) 重構和速度提升(大約快 100 倍)。

  • 座標下降重構(和錯誤修正),以與 R 的套件 GLMNET 保持一致。

  • 新的 metrics 模組。

  • 由 Ron Weiss 貢獻的新 GMM 模組。

  • LARS 演算法的實作(目前沒有 Lasso 變體)。

  • feature_selection 模組重新設計。

  • 遷移到 GIT 作為版本控制系統。

  • 移除過時的 attrselect 模組。

  • 重新命名私有編譯擴充功能(新增底線)。

  • 移除舊版未維護的程式碼。

  • 文件改進(docstring 和 rst)。

  • 改進建置系統以(選擇性地)與 MKL 連結。此外,如果未找到系統級 BLAS,則提供精簡的 BLAS 實作。

  • 許多新範例。

  • 許多許多錯誤修正……

作者#

此版本的提交者清單如下(前面標示的是提交次數)

  • 143 Fabian Pedregosa

  • 35 Alexandre Gramfort

  • 34 Olivier Grisel

  • 11 Gael Varoquaux

  • 5 Yaroslav Halchenko

  • 2 Vincent Michel

  • 1 Chris Filo Gorgolewski

較早的版本#

較早的版本包含 Fred Mailhot、David Cooke、David Huard、Dave Morrill、Ed Schofield、Travis Oliphant、Pearu Peterson 的貢獻。