版本 0.18#
警告
Scikit-learn 0.18 是最后一个主要版本,支持 Python 2.6。Scikit-learn 的后续版本将需要 Python 2.7 或更高版本。
版本 0.18.2#
2017 年 6 月 20 日
更新日志#
代码贡献者#
Aman Dalmia, Loic Esteve, Nate Guerin, Sergei Lebedev
版本 0.18.1#
2016 年 11 月 11 日
更新日志#
增强功能#
通过利用 numpy.random.permutation 来提高
sample_without_replacement的速度(在大多数情况下)。因此,在此版本中,对于固定的随机状态,样本可能会有所不同。受影响的估计器这也会影响
datasets.make_classification方法。
错误修复#
修复了
manifold.TSNE未使用min_grad_norm和n_iter_without_progress参数的问题。#6497 by Sebastian Säger修复了在
svm.SVC中decision_function_shape为ovr时,SVM 决策值存在的问题。svm.SVC的 decision_function 在 0.17.0 至 0.18.0 版本中不正确。#7724 by Bing Tian Daidiscriminant_analysis.LinearDiscriminantAnalysis的explained_variance_ratio属性,在使用 SVD 和 Eigen 求解器计算时,长度现在相同。#7632 by JPFrancoia修复了 单变量特征选择 中分数函数无法接受多标签目标的问题。#7676 by Mohammed Affan
修复了在多次调用
feature_selection.SelectFromModel的fit时设置参数的问题。#7756 by Andreas Müller修复了
multiclass.OneVsRestClassifier的partial_fit方法在partial_fit中使用的类别数量少于数据中总类别数量时出现的问题。#7786 by Srivatsan Ramesh修复了
calibration.CalibratedClassifierCV中数据每个类别的概率之和不为 1 的问题,并且CalibratedClassifierCV现在可以处理训练集类别数量少于总数据类别数量的情况。#7799 by Srivatsan Ramesh修复了
sklearn.feature_selection.SelectFdr未完全实现 Benjamini-Hochberg 过程的 bug。它以前可能会选择比应有的更少的特征。#7490 by Peng Meng。sklearn.manifold.LocallyLinearEmbedding现在可以正确处理整数输入。#6282 by Jake Vanderplas。基于树的分类器和回归器的
min_weight_fraction_leaf参数,如果在fit函数中未传递sample_weight参数,现在默认假定样本权重是均匀的。以前,该参数会被静默忽略。#7301 by Nelson Liu。当
n_features > n_samples且数据已居中时,linear_model.RidgeCV存在数值问题。#6178 by Bertrand Thirion树分裂准则类的克隆/序列化现在是内存安全的#7680 by Ibraim Ganiev。
修复了
decomposition.NMF在transform()中设置其n_iters_属性的 bug。#7553 by Ekaterina Krivich。sklearn.linear_model.LogisticRegressionCV现在可以正确处理字符串标签。#5874 by Raghav RV。修复了
sklearn.model_selection.train_test_split在stratify是字符串标签列表时引发错误的 bug。#7593 by Raghav RV。修复了
sklearn.model_selection.GridSearchCV和sklearn.model_selection.RandomizedSearchCV由于np.ma.MaskedArray中的序列化 bug 而无法序列化的问题。#7594 by Raghav RV。在
sklearn.model_selection中的所有交叉验证工具现在都允许将单次交叉验证分割器用于cv参数。非确定性交叉验证分割器(其中多次调用split会产生不同的分割)也可以用作cv参数。sklearn.model_selection.GridSearchCV将在交叉验证分割器第一次split调用产生的分割上交叉验证每个参数设置。#7660 by Raghav RV。修复了
preprocessing.MultiLabelBinarizer.fit_transform返回无效 CSR 矩阵的 bug。#7750 by CJ Carey。修复了
metrics.pairwise.cosine_distances可能返回小的负距离的 bug。#7732 by Artsion。
API 更改摘要#
树和森林
基于树的分类器和回归器的
min_weight_fraction_leaf参数,如果在fit函数中未传递sample_weight参数,现在默认假定样本权重是均匀的。以前,该参数会被静默忽略。#7301 by Nelson Liu。树分裂准则类的克隆/序列化现在是内存安全的。#7680 by Ibraim Ganiev。
线性、核化及相关模型
使用 Eigen 和 SVD 求解器计算的
discriminant_analysis.LinearDiscriminantAnalysis的explained_variance_ratio的长度已更改。该属性现在的长度为 min(n_components, n_classes - 1)。#7632 by JPFrancoia当
n_features > n_samples且数据已居中时,linear_model.RidgeCV存在数值问题。#6178 by Bertrand Thirion
版本 0.18#
2016 年 9 月 28 日
模型选择增强和 API 更改#
model_selection 模块
新的
sklearn.model_selection模块,它将以前的sklearn.cross_validation、sklearn.grid_search和sklearn.learning_curve的功能整合在一起,引入了嵌套交叉验证等新可能性,以及更好地使用 Pandas 处理参数搜索。许多方面将保持不变,但存在一些关键区别。请阅读下文以了解更多关于这些变化的信息。
独立于数据的 CV 分割器,支持嵌套交叉验证
新的交叉验证分割器,在
sklearn.model_selection中定义,不再使用任何依赖于数据的参数(如y)进行初始化。相反,它们公开了一个split方法,该方法接收数据并产生一个用于不同分割的生成器。此更改使得可以使用交叉验证分割器执行嵌套交叉验证,这得到了
model_selection.GridSearchCV和model_selection.RandomizedSearchCV工具的便利。增强的 cv_results_ 属性
model_selection.GridSearchCV和model_selection.RandomizedSearchCV的新cv_results_属性(取代grid_scores_属性)是一个包含一维数组的字典,每个数组中的元素对应于参数设置(即搜索候选)。cv_results_ 字典可以轻松地导入 pandas 中作为
DataFrame,用于探索搜索结果。cv_results_ 数组包括每个交叉验证分割的分数(带有诸如
'split0_test_score'这样的键),以及它们的均值('mean_test_score')和标准差('std_test_score')。搜索候选的排名(基于它们的平均交叉验证分数)可在
cv_results_['rank_test_score']中找到。每个参数的参数值分别存储为 numpy 掩码对象数组。如果相应参数不适用,则该搜索候选的值会被掩码。此外,所有参数字典的列表存储在
cv_results_['params']中。参数 n_folds 和 n_iter 重命名为 n_splits
一些参数名称已更改:新的
model_selection.KFold、model_selection.GroupKFold(见下文关于名称更改)和model_selection.StratifiedKFold中的n_folds参数现已重命名为n_splits。n_iter参数在model_selection.ShuffleSplit、新的类model_selection.GroupShuffleSplit和model_selection.StratifiedShuffleSplit中已重命名为n_splits。接受组标签以及数据的分割器类重命名
交叉验证分割器
LabelKFold、LabelShuffleSplit、LeaveOneLabelOut和LeavePLabelOut已分别重命名为model_selection.GroupKFold、model_selection.GroupShuffleSplit、model_selection.LeaveOneGroupOut和model_selection.LeavePGroupsOut。请注意
model_selection.LeavePGroupsOut中从单数到复数的名称更改。fit 参数 labels 重命名为 groups
新重命名的分割器
model_selection.GroupKFold、model_selection.LeaveOneGroupOut、model_selection.LeavePGroupsOut、model_selection.GroupShuffleSplit的split方法中的labels参数已重命名为groups,以遵循其类名的新命名规范。参数 n_labels 重命名为 n_groups
新重命名的
model_selection.LeavePGroupsOut中的n_labels参数已更改为n_groups。训练分数和计时信息
cv_results_还包括每个交叉验证分割的训练分数(带有诸如'split0_train_score'这样的键),以及它们的均值('mean_train_score')和标准差('std_train_score')。为了避免评估训练分数的开销,请将return_train_score=False设置为 True。此外,在所有交叉验证分割中用于分割、训练和评分模型的平均时间和标准差分别可在键
'mean_time'和'std_time'中找到。
更新日志#
新功能#
分类器和回归器
高斯过程模块已重新实现,现在通过
gaussian_process.GaussianProcessClassifier和gaussian_process.GaussianProcessRegressor提供分类和回归估计器。此外,新实现支持核工程、基于梯度的超参数优化以及 GP 先验和 GP 后验的函数采样。提供了详细的文档和示例。By Jan Hendrik Metzen。添加了新的监督学习算法:多层感知器 #3204 by Issam H. Laradji
添加了
linear_model.HuberRegressor,一种对异常值鲁棒的线性模型。#5291 by Manoj Kumar。添加了
multioutput.MultiOutputRegressor元估计器。它通过为每个输出拟合一个回归器来将单输出回归器转换为多输出回归器。By Tim Head。
其他估计器
新的
mixture.GaussianMixture和mixture.BayesianGaussianMixture取代了以前的混合模型,采用了更快的推理以获得更可靠的结果。#7295 by Wei Xue and Thierry Guillemot。decomposition.RandomizedPCA类现在被分解为decomposition.PCA,可以通过参数svd_solver='randomized'调用。对于'randomized',默认的n_iter已更改为 4。PCA 的旧行为可以通过svd_solver='full'来恢复。一个额外的求解器调用arpack并执行截断(非随机化)SVD。默认情况下,最佳求解器会根据输入的大小和请求的分量数量来选择。By Giorgio Patrini。添加了两个用于互信息估计的函数:
feature_selection.mutual_info_classif和feature_selection.mutual_info_regression。这些函数可以在feature_selection.SelectKBest和feature_selection.SelectPercentile中用作分数函数。By Andrea Bravi and Nikolay Mayorov。添加了
ensemble.IsolationForest类,用于基于随机森林的异常检测。By Nicolas Goix。在
cluster.KMeans中添加了algorithm="elkan",实现了 Elkan 的快速 K-Means 算法。By Andreas Müller。
模型选择和评估
添加了
metrics.fowlkes_mallows_score,即 Fowlkes Mallows 指数,它衡量了一组点的两个聚类之间的相似性。By Arnaud Fouchet and Thierry Guillemot。添加了
metrics.calinski_harabaz_score,它计算 Calinski 和 Harabaz 分数来评估一组点的聚类结果。By Arnaud Fouchet and Thierry Guillemot。添加了新的交叉验证分割器
model_selection.TimeSeriesSplit来处理时间序列数据。#6586 by YenChen Lin交叉验证迭代器已被
sklearn.model_selection中的交叉验证分割器取代,允许进行嵌套交叉验证。有关更多信息,请参阅 模型选择增强和 API 更改。#4294 by Raghav RV。
增强#
树和集成
为
tree.DecisionTreeRegressor添加了一个新的分裂准则:平均绝对误差。此准则也可用于ensemble.ExtraTreesRegressor、ensemble.RandomForestRegressor和梯度提升估计器。#6667 by Nelson Liu。添加了基于加权不纯度的提前停止准则,用于决策树的生长。#6954 by Nelson Liu
随机森林、额外树和决策树估计器现在都有一个
decision_path方法,该方法返回样本在树中的决策路径。By Arnaud Joly。添加了一个新的示例,揭示了决策树的结构。By Arnaud Joly。
随机森林、额外树、决策树和梯度提升估计器接受
min_samples_split和min_samples_leaf参数,这些参数以训练样本的百分比形式提供。By yelite and Arnaud Joly。梯度提升估计器接受
criterion参数来指定构建决策树时使用的分裂准则。#6667 by Nelson Liu。通过动态生成
estimators_samples_属性(仅在需要时生成),内存占用减少(有时大幅减少)对于ensemble.bagging.BaseBagging及其继承类,即ensemble.BaggingClassifier、ensemble.BaggingRegressor和ensemble.IsolationForest。By David Staub。为
ensemble.VotingClassifier添加了n_jobs和sample_weight参数,以便并行拟合底层估计器。#5805 by Ibraim Ganiev。
线性、核化及相关模型
在
linear_model.LogisticRegression中,SAG 求解器现在可用于多项式情况。#5251 by Tom Dupre la Tour。linear_model.RANSACRegressor、svm.LinearSVC和svm.LinearSVR现在支持sample_weight。By Imaculate。向
linear_model.RANSACRegressor添加了loss参数,用于测量每次试验中样本的误差。By Manoj Kumar。等渗回归(
isotonic.IsotonicRegression)的样本外事件预测现在速度快得多(在合成数据测试中超过 1000 倍)。By Jonathan Arfa。等渗回归(
isotonic.IsotonicRegression)现在使用更好的算法来避免在病态情况下出现O(n^2)的行为,并且通常也更快(##6691)。By Antony Lee。naive_bayes.GaussianNB现在可以通过priors参数接受独立于数据的类先验。By Guillaume Lemaitre。linear_model.ElasticNet和linear_model.Lasso现在可以直接与np.float32输入数据一起工作,而无需将其转换为np.float64。这可以减少内存消耗。#6913 by YenChen Lin。semi_supervised.LabelPropagation和semi_supervised.LabelSpreading现在除了字符串knn和rbf之外,还可以接受任意核函数。#5762 by Utkarsh Upadhyay。
分解、流形学习和聚类
为
decomposition.NMF添加了inverse_transform函数,用于计算原始形状的数据矩阵。By Anish Shah。cluster.KMeans和cluster.MiniBatchKMeans现在可以直接与np.float32和np.float64输入数据一起工作,而无需转换。这允许通过使用np.float32来减少内存消耗。#6846 by Sebastian Säger and YenChen Lin。
预处理和特征选择
preprocessing.RobustScaler现在接受quantile_range参数。#5929 by Konstantin Podshumok。feature_extraction.FeatureHasher现在接受字符串值。#6173 by Ryad Zenine and Devashish Deshpande。可以通过
kw_args参数将关键字参数提供给preprocessing.FunctionTransformer中的func。By Brian McFee。feature_selection.SelectKBest和feature_selection.SelectPercentile现在接受以 X, y 作为输入并只返回分数的评分函数。By Nikolay Mayorov。
模型评估和元估计器
multiclass.OneVsOneClassifier和multiclass.OneVsRestClassifier现在支持partial_fit。By Asish Panda and Philipp Dowling。支持通过
set_params接口(为sklearn.grid_search提供动力)来替换或禁用pipeline.Pipeline和pipeline.FeatureUnion的组件。请参阅 使用 Pipeline 和 GridSearchCV 选择降维方法。By Joel Nothman and Robert McGibbon。model_selection.GridSearchCV(和model_selection.RandomizedSearchCV)的新cv_results_属性可以轻松地导入 pandas 中作为DataFrame。有关更多信息,请参考 模型选择增强和 API 更改。#6697 by Raghav RV。model_selection.cross_val_predict的泛化。可以传递方法名称,如predict_proba,以便在交叉验证框架中使用,而不是默认的predict。By Ori Ziv and Sears Merritt。每个搜索候选的训练分数以及训练后评分的时间现在都可以在
cv_results_字典中找到。有关更多信息,请参阅 模型选择增强和 API 更改。#7325 by Eugene Chen and Raghav RV。
指标
在
metrics.log_loss中添加了labels标志,用于在y_true和y_pred的类别数量不同时显式提供标签。#7239 by Hong Guangguo with help from Mads Jensen and Nelson Liu。在聚类评估(
metrics.cluster.supervised)中支持稀疏关联矩阵,以扩展到大量聚类。#7419 by Gregory Stupp and Joel Nothman。向
metrics.matthews_corrcoef添加sample_weight参数。By Jatin Shah and Raghav RV。通过使用矢量化操作加速
metrics.silhouette_score。By Manoj Kumar。向
metrics.confusion_matrix添加sample_weight参数。By Bernardo Stein。
杂项
向
feature_selection.RFECV添加了n_jobs参数,以并行计算测试折上的分数。By Manoj Kumar代码库不包含 C/C++ cython 生成的文件:它们在构建期间生成。分发包仍将包含生成的 C/C++ 文件。By Arthur Mensch。
通过支持 cython 融合类型,减少了 32 位浮点输入数组的内存使用量,用于
utils.sparse_func.mean_variance_axis和utils.sparse_func.incr_mean_variance_axis。By YenChen Lin。ignore_warnings现在接受一个 category 参数,用于仅忽略特定类型的警告。By Thierry Guillemot。向
datasets.load_iris数据集 #7049、datasets.load_breast_cancer数据集 #7152、datasets.load_digits数据集、datasets.load_diabetes数据集、datasets.load_linnerud数据集、datasets.load_boston数据集 #7154 添加了return_X_y参数和返回类型(data, target) : tuple选项。By Manvendra Singh。简化了
clone函数,弃用了对修改__init__中参数的估计器的支持。#5540 by Andreas Müller。当以不同于训练估计器的版本反序列化 scikit-learn 估计器时,会引发
UserWarning,有关更多详细信息,请参阅 模型持久化的文档。(#7248)By Andreas Müller。
Bug 修复#
树和集成
随机森林、额外树、决策树和梯度提升将不再接受
min_samples_split=1,因为分裂一个决策树节点至少需要 2 个样本。By Arnaud Jolyensemble.VotingClassifier现在如果对未拟合的估计器调用predict、transform或predict_proba,则会引发NotFittedError。by Sebastian Raschka。修复了
ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor如果random_state固定(#7411)时表现不佳的 bug。By Joel Nothman。修复了在具有随机化的集成中,集成不会在管道或类似嵌套中的基估计器上设置
random_state的 bug。(#7411)。注意,ensemble.BaggingClassifier、ensemble.BaggingRegressor、ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor的结果将与以前的版本不同。By Joel Nothman。
线性、核化及相关模型
修复了
linear_model.SGDClassifier和linear_model.SGDRegressor中loss='squared_epsilon_insensitive'的梯度计算不正确(#6764)。By Wenhua Yang。修复了
linear_model.LogisticRegressionCV中solver='liblinear'不接受class_weights='balanced的 bug。(#6817)。By Tom Dupre la Tour。修复了
neighbors.RadiusNeighborsClassifier中,当存在被标记的异常值并且指定了权重函数时发生错误的 bug(#6902)。By LeonieBorne。修复了
linear_model.ElasticNet的稀疏决策函数,使其与多输出情况下的密集函数输出匹配。
分解、流形学习和聚类
decomposition.RandomizedPCA的默认iterated_power数量为 4,而不是 3。#5141 by Giorgio Patrini。utils.extmath.randomized_svd默认执行 4 次幂迭代,而不是 0 次。在实践中,这足以在存在噪声的情况下获得真实特征值/向量的良好近似。当n_components很小时(< .1 * min(X.shape)),n_iter被设置为 7,除非用户指定更高的值。这提高了少数分量的精度。#5299 by Giorgio Patrini。修复了
decomposition.PCA和decomposition.RandomizedPCA(现已分解到 PCA 中,请参阅新特性)的白化/非白化不一致性。components_以无白化方式存储。#5299 by Giorgio Patrini。修复了
manifold.spectral_embedding中未归一化拉普拉斯矩阵对角线被错误地设置为 1 的 bug。#4995 by Peter Fischer。修复了
utils.arpack.eigsh在所有情况下初始化不正确的 bug。影响cluster.bicluster.SpectralBiclustering、decomposition.KernelPCA、manifold.LocallyLinearEmbedding和manifold.SpectralEmbedding(#5012)。By Peter Fischer。使用 SVD 求解器计算的
discriminant_analysis.LinearDiscriminantAnalysis的explained_variance_ratio_属性现在返回正确的结果。By JPFrancoia
预处理和特征选择
preprocessing.data._transform_selected现在在copy=True时始终将X的副本传递给 transform 函数(#7194)。By Caio Oliveira。
模型评估和元估计器
model_selection.StratifiedKFold现在如果每个类别的 n_labels 都小于 n_folds,则会引发错误。#6182 by Devashish Deshpande。修复了
model_selection.StratifiedShuffleSplit中训练集和测试集样本在某些边缘情况下可能重叠的 bug,有关更多详细信息,请参阅 #6121。By Loic Esteve。修复了
sklearn.model_selection.StratifiedShuffleSplit以在所有情况下返回大小为train_size和test_size的分割(#6472)。By Andreas Müller。对
multiclass.OneVsOneClassifier和multiclass.OneVsRestClassifier的交叉验证现在支持预计算核。#7350 by Russell Smith。修复了
model_selection.GridSearchCV向linear_model.SGDClassifier委托predict_proba方法不完整的问题(#7159)by Yichuan Liu。
指标
修复了
metrics.silhouette_score中大小为 1 的簇得分不正确的 bug。它们应该得到 0 分。By Joel Nothman。修复了
metrics.silhouette_samples的 bug,使其现在可以处理任意标签,而不仅仅是 0 到 n_clusters - 1 的标签。修复了在集群关联单元格超过
2**16时,预期和调整后的互信息不正确的 bug。By Joel Nothman。metrics.pairwise_distances现在在scipy.spatial.distance中需要时将数组转换为布尔数组。#5460 by Tom Dupre la Tour。修复了
metrics.silhouette_score的稀疏输入支持以及示例 examples/text/document_clustering.py。By YenChen Lin。metrics.roc_curve和metrics.precision_recall_curve在创建 ROC 曲线时不再对y_score值进行四舍五入;这导致了分数差异极小的用户出现问题(#7353)。
杂项
model_selection.tests._search._check_param_grid现在可以与所有扩展/实现Sequence(字符串除外)的类型正确工作,包括 range(Python 3.x)和 xrange(Python 2.x)。#7323 by Viacheslav Kovalevskyi。utils.extmath.randomized_range_finder在请求大量幂迭代时更具数值稳定性,因为它默认应用 LU 归一化。如果n_iter<2,则不太可能出现数值问题,因此不应用归一化。其他归一化选项可用:'none', 'LU'和'QR'。#5141 by Giorgio Patrini。修复了一个错误,该错误导致某些格式的
scipy.sparse矩阵以及将它们作为参数的估计器无法传递给base.clone。作者:Loic Esteve。datasets.load_svmlight_file现在能够读取长整型 QID 值。 #7101,作者:Ibraim Ganiev。
API 更改摘要#
线性、核化及相关模型
在
linear_model.RANSACRegressor中,residual_metric已弃用。请改用loss。作者:Manoj Kumar。在
isotonic.IsotonicRegression中,公共属性.X_和.y_已弃用。作者:Jonathan Arfa。
分解、流形学习和聚类
旧的
mixture.DPGMM已弃用,取而代之的是新的mixture.BayesianGaussianMixture(参数为weight_concentration_prior_type='dirichlet_process')。新类解决了旧类的计算问题,并且比以前更快地计算具有 Dirichlet 过程先验的高斯混合模型。 #7295,作者:Wei Xue 和 Thierry Guillemot。旧的
mixture.VBGMM已弃用,取而代之的是新的mixture.BayesianGaussianMixture(参数为weight_concentration_prior_type='dirichlet_distribution')。新类解决了旧类的计算问题,并且比以前更快地计算变分贝叶斯高斯混合模型。 #6651,作者:Wei Xue 和 Thierry Guillemot。旧的
mixture.GMM已弃用,取而代之的是新的mixture.GaussianMixture。新类比以前更快地计算高斯混合模型,并且解决了一些计算问题。 #6666,作者:Wei Xue 和 Thierry Guillemot。
模型评估和元估计器
sklearn.cross_validation、sklearn.grid_search和sklearn.learning_curve已弃用,相关类和函数已重组到sklearn.model_selection模块中。有关更多信息,请参阅 模型选择增强和 API 更改。 #4294,作者:Raghav RV。model_selection.GridSearchCV和model_selection.RandomizedSearchCV的grid_scores_属性已弃用,取而代之的是cv_results_属性。有关更多信息,请参阅 模型选择增强和 API 更改。 #6697,作者:Raghav RV。旧的 CV 分割器中的参数
n_iter或n_folds已被新的参数n_splits取代,因为它能够提供一致且无歧义的接口来表示训练-测试分割的数量。 #7187,作者:YenChen Lin。在
metrics.hamming_loss中,scoring参数的错误和损失名称现在被加上了'neg_'前缀,例如neg_mean_squared_error。没有前缀的版本已弃用,将在 0.20 版本中移除。 #7261,作者:Tim Head。分割器类
LabelKFold、LabelShuffleSplit、LeaveOneLabelOut和LeavePLabelsOut已分别重命名为model_selection.GroupKFold、model_selection.GroupShuffleSplit、model_selection.LeaveOneGroupOut和model_selection.LeavePGroupsOut。此外,在新重命名的分割器model_selection.LeaveOneGroupOut和model_selection.LeavePGroupsOut的split方法中的labels参数已重命名为groups。另外,在model_selection.LeavePGroupsOut中,参数n_labels已重命名为n_groups。 #6660,作者:Raghav RV。用于
scoring参数的错误和损失名称现在被加上了'neg_'前缀,例如neg_mean_squared_error。没有前缀的版本已弃用,将在 0.20 版本中移除。 #7261,作者:Tim Head。
代码贡献者#
Aditya Joshi, Alejandro, Alexander Fabisch, Alexander Loginov, Alexander Minyushkin, Alexander Rudy, Alexandre Abadie, Alexandre Abraham, Alexandre Gramfort, Alexandre Saint, alexfields, Alvaro Ulloa, alyssaq, Amlan Kar, Andreas Mueller, andrew giessel, Andrew Jackson, Andrew McCulloh, Andrew Murray, Anish Shah, Arafat, Archit Sharma, Ariel Rokem, Arnaud Joly, Arnaud Rachez, Arthur Mensch, Ash Hoover, asnt, b0noI, Behzad Tabibian, Bernardo, Bernhard Kratzwald, Bhargav Mangipudi, blakeflei, Boyuan Deng, Brandon Carter, Brett Naul, Brian McFee, Caio Oliveira, Camilo Lamus, Carol Willing, Cass, CeShine Lee, Charles Truong, Chyi-Kwei Yau, CJ Carey, codevig, Colin Ni, Dan Shiebler, Daniel, Daniel Hnyk, David Ellis, David Nicholson, David Staub, David Thaler, David Warshaw, Davide Lasagna, Deborah, definitelyuncertain, Didi Bar-Zev, djipey, dsquareindia, edwinENSAE, Elias Kuthe, Elvis DOHMATOB, Ethan White, Fabian Pedregosa, Fabio Ticconi, fisache, Florian Wilhelm, Francis, Francis O’Donovan, Gael Varoquaux, Ganiev Ibraim, ghg, Gilles Louppe, Giorgio Patrini, Giovanni Cherubin, Giovanni Lanzani, Glenn Qian, Gordon Mohr, govin-vatsan, Graham Clenaghan, Greg Reda, Greg Stupp, Guillaume Lemaitre, Gustav Mörtberg, halwai, Harizo Rajaona, Harry Mavroforakis, hashcode55, hdmetor, Henry Lin, Hobson Lane, Hugo Bowne-Anderson, Igor Andriushchenko, Imaculate, Inki Hwang, Isaac Sijaranamual, Ishank Gulati, Issam Laradji, Iver Jordal, jackmartin, Jacob Schreiber, Jake Vanderplas, James Fiedler, James Routley, Jan Zikes, Janna Brettingen, jarfa, Jason Laska, jblackburne, jeff levesque, Jeffrey Blackburne, Jeffrey04, Jeremy Hintz, jeremynixon, Jeroen, Jessica Yung, Jill-Jênn Vie, Jimmy Jia, Jiyuan Qian, Joel Nothman, johannah, John, John Boersma, John Kirkham, John Moeller, jonathan.striebel, joncrall, Jordi, Joseph Munoz, Joshua Cook, JPFrancoia, jrfiedler, JulianKahnert, juliathebrave, kaichogami, KamalakerDadi, Kenneth Lyons, Kevin Wang, kingjr, kjell, Konstantin Podshumok, Kornel Kielczewski, Krishna Kalyan, krishnakalyan3, Kvle Putnam, Kyle Jackson, Lars Buitinck, ldavid, LeiG, LeightonZhang, Leland McInnes, Liang-Chi Hsieh, Lilian Besson, lizsz, Loic Esteve, Louis Tiao, Léonie Borne, Mads Jensen, Maniteja Nandana, Manoj Kumar, Manvendra Singh, Marco, Mario Krell, Mark Bao, Mark Szepieniec, Martin Madsen, MartinBpr, MaryanMorel, Massil, Matheus, Mathieu Blondel, Mathieu Dubois, Matteo, Matthias Ekman, Max Moroz, Michael Scherer, michiaki ariga, Mikhail Korobov, Moussa Taifi, mrandrewandrade, Mridul Seth, nadya-p, Naoya Kanai, Nate George, Nelle Varoquaux, Nelson Liu, Nick James, NickleDave, Nico, Nicolas Goix, Nikolay Mayorov, ningchi, nlathia, okbalefthanded, Okhlopkov, Olivier Grisel, Panos Louridas, Paul Strickland, Perrine Letellier, pestrickland, Peter Fischer, Pieter, Ping-Yao, Chang, practicalswift, Preston Parry, Qimu Zheng, Rachit Kansal, Raghav RV, Ralf Gommers, Ramana.S, Rammig, Randy Olson, Rob Alexander, Robert Lutz, Robin Schucker, Rohan Jain, Ruifeng Zheng, Ryan Yu, Rémy Léone, saihttam, Saiwing Yeung, Sam Shleifer, Samuel St-Jean, Sartaj Singh, Sasank Chilamkurthy, saurabh.bansod, Scott Andrews, Scott Lowe, seales, Sebastian Raschka, Sebastian Saeger, Sebastián Vanrell, Sergei Lebedev, shagun Sodhani, shanmuga cv, Shashank Shekhar, shawpan, shengxiduan, Shota, shuckle16, Skipper Seabold, sklearn-ci, SmedbergM, srvanrell, Sébastien Lerique, Taranjeet, themrmax, Thierry, Thierry Guillemot, Thomas, Thomas Hallock, Thomas Moreau, Tim Head, tKammy, toastedcornflakes, Tom, TomDLT, Toshihiro Kamishima, tracer0tong, Trent Hauck, trevorstephens, Tue Vo, Varun, Varun Jewalikar, Viacheslav, Vighnesh Birodkar, Vikram, Villu Ruusmann, Vinayak Mehta, walter, waterponey, Wenhua Yang, Wenjian Huang, Will Welch, wyseguy7, xyguo, yanlend, Yaroslav Halchenko, yelite, Yen, YenChenLin, Yichuan Liu, Yoav Ram, Yoshiki, Zheng RuiFeng, zivori, Óscar Nájera