版本0.18#
警告
Scikit-learn 0.18是scikit-learn支持Python 2.6的最后一个主要版本。scikit-learn的后续版本将需要Python 2.7或更高版本。
版本0.18.2#
June 20, 2017
Changelog#
代码贡献者#
Aman Dalmia、Loic Esteve、Nate Guerin、Sergei Lebedev
版本0.18.1#
November 11, 2016
Changelog#
增强功能#
改进
sample_without_replacement在大多数情况下,利用numpy.random.permutation来提高速度。因此,对于固定的随机状态,此版本中的样本可能会有所不同。受影响的估计值:这也影响了
datasets.make_classification法
Bug修复#
修复问题
min_grad_norm和n_iter_without_progress参数未被使用manifold.TSNE. #6497 通过 Sebastian Säger修复svm决策值的错误
decision_function_shape是ovr在svm.SVC.svm.SVC的decision_function在0.17.0到0.18.0版本中不正确。 #7724 通过 Bing Tian Dai属性
explained_variance_ratio的discriminant_analysis.LinearDiscriminantAnalysis用SVD和Eigen求解器计算的长度现在是相同的。 #7632 通过 JPFrancoia修复问题 单变量特征选择 其中评分功能不接受多标签目标。 #7676 通过 Mohammed Affan
修复了调用时设置参数的问题
fit多次feature_selection.SelectFromModel. #7756 通过 Andreas Müller修复问题
partial_fit方法multiclass.OneVsRestClassifier当使用的类数量partial_fit少于数据中的班级总数。 #7786 通过 Srivatsan Ramesh修复问题
calibration.CalibratedClassifierCV其中数据每个类别的概率之和不为1,并且CalibratedClassifierCV现在处理训练集的类数少于总数据的情况。 #7799 通过 Srivatsan Ramesh修复一个错误,
sklearn.feature_selection.SelectFdr没有完全实施Benjamini-Hochberg程序。它以前选择的功能可能比应该选择的功能少。 #7490 通过 Peng Meng .sklearn.manifold.LocallyLinearEmbedding现在可以正确处理integer输入。 #6282 通过 Jake Vanderplas .The
min_weight_fraction_leafparameter of tree-based classifiers and regressors now assumes uniform sample weights by default if thesample_weightargument is not passed to thefitfunction. Previously, the parameter was silently ignored. #7301 by Nelson Liu.数字问题
linear_model.RidgeCV在中心数据上时n_features > n_samples. #6178 by Bertrand Thirion树分裂标准类的克隆/腌制现在是内存安全的 #7680 通过 Ibraim Ganiev .
修复了一个错误,
decomposition.NMF设置其n_iters_中属性transform(). #7553 通过 Ekaterina Krivich .sklearn.linear_model.LogisticRegressionCVnow correctly handles string labels. #5874 by Raghav RV.修复了一个错误,
sklearn.model_selection.train_test_split提出了一个错误时stratify是字符串标签列表。 #7593 通过 Raghav RV .修复了一个错误,
sklearn.model_selection.GridSearchCV和sklearn.model_selection.RandomizedSearchCV由于腌制错误,无法腌制np.ma.MaskedArray. #7594 通过 Raghav RV .All cross-validation utilities in
sklearn.model_selectionnow permit one time cross-validation splitters for thecvparameter. Also non-deterministic cross-validation splitters (where multiple calls tosplitproduce dissimilar splits) can be used ascvparameter. Thesklearn.model_selection.GridSearchCVwill cross-validate each parameter setting on the split produced by the firstsplitcall to the cross-validation splitter. #7660 by Raghav RV.修复错误
preprocessing.MultiLabelBinarizer.fit_transform返回了无效的CSR矩阵。 #7750 通过 CJ Carey .修复了一个错误,
metrics.pairwise.cosine_distances可以返回一个小的负距离。 #7732 通过 Artsion .
API变更摘要#
树木和森林
The
min_weight_fraction_leafparameter of tree-based classifiers and regressors now assumes uniform sample weights by default if thesample_weightargument is not passed to thefitfunction. Previously, the parameter was silently ignored. #7301 by Nelson Liu.树分裂标准类的克隆/腌制现在是内存安全的。 #7680 通过 Ibraim Ganiev .
线性、核心化和相关模型
长度
explained_variance_ratio的discriminant_analysis.LinearDiscriminantAnalysisEigen和MVD求解器均发生了变化。该属性的长度现在为min(n_components,n_classes - 1)。 #7632 通过 JPFrancoia数字问题
linear_model.RidgeCV在中心数据上时n_features > n_samples. #6178 通过 Bertrand Thirion
版本0.18#
September 28, 2016
模型选择增强和API更改#
The model_selection module
新模块
sklearn.model_selection,它将以前的功能组合在一起sklearn.cross_validation,sklearn.grid_search和sklearn.learning_curve,引入了新的可能性,例如嵌套交叉验证和使用Pandas更好地操作参数搜索。许多事情都会保持不变,但也有一些关键差异。请阅读以下内容,了解有关这些变化的更多信息。
Data-independent CV splitters enabling nested cross-validation
中定义的新交叉验证拆分器
sklearn.model_selection,不再使用任何依赖于数据的参数进行初始化,例如y.相反,他们暴露了一个split接收数据并为不同拆分生成器的方法。此更改使得可以使用交叉验证拆分器来执行嵌套交叉验证,其促进因素如下
model_selection.GridSearchCV和model_selection.RandomizedSearchCV公用事业。The enhanced cv_results_ attribute
新
cv_results_属性(ofmodel_selection.GridSearchCV和model_selection.RandomizedSearchCV)引入代替grid_scores_属性是1D数组的dict,每个数组中的元素对应于参数设置(即搜索候选项)。的
cv_results_可以轻松导入Dictpandas作为DataFrame用于探索搜索结果。的
cv_results_数组包括每个交叉验证拆分的分数(具有诸如'split0_test_score'),以及它们的平均值 ('mean_test_score')和标准差 ('std_test_score').搜索候选者的排名(基于其平均交叉验证分数)可在
cv_results_['rank_test_score'].每个参数的参数值单独存储为numpy掩蔽对象数组。如果相应的参数不适用,则该搜索候选项的值将被屏蔽。此外,所有参数指令的列表存储在
cv_results_['params'].Parameters n_folds and n_iter renamed to n_splits
某些参数名称已更改:
n_folds新参数model_selection.KFold,model_selection.GroupKFold(see下面是名称变更),并且model_selection.StratifiedKFold现已更名为n_splits.的n_iter参数model_selection.ShuffleSplit,新班级model_selection.GroupShuffleSplit和model_selection.StratifiedShuffleSplit现已更名为n_splits.Rename of splitter classes which accepts group labels along with data
交叉验证拆分器
LabelKFold,LabelShuffleSplit,LeaveOneLabelOut和LeavePLabelOut已更名为model_selection.GroupKFold,model_selection.GroupShuffleSplit,model_selection.LeaveOneGroupOut和model_selection.LeavePGroupsOut分别Fit parameter labels renamed to groups
的
labels中参数split新重命名的拆分器的model_selection.GroupKFold,model_selection.LeaveOneGroupOut,model_selection.LeavePGroupsOut,model_selection.GroupShuffleSplit被重命名为groups遵循他们的班级名称的新命名法。Parameter n_labels renamed to n_groups
参数
n_labels在新更名的model_selection.LeavePGroupsOut被改变为n_groups.训练分数和时间信息
cv_results_还包括每个交叉验证拆分的训练分数(带有诸如'split0_train_score'),以及它们的平均值 ('mean_train_score')和标准差 ('std_train_score').为了避免评估培训成绩的成本,设置return_train_score=False.此外,还可以在所有交叉验证拆分中对模型进行拆分、训练和评分所需时间的平均值和标准差
'mean_time'和'std_time'分别
Changelog#
新功能#
分类器和回归器
高斯过程模块已经重新实现,现在通过以下方式提供分类和回归估计器:
gaussian_process.GaussianProcessClassifier和gaussian_process.GaussianProcessRegressor.除其他外,新实现支持内核工程、基于梯度的超参数优化或GP先验和GP后验的函数采样。提供了大量的文档和示例。通过 Jan Hendrik Metzen .添加了新的监督学习算法: Multi-layer Perceptron #3204 通过 Issam H. Laradji
添加
linear_model.HuberRegressor一个对异常值鲁棒的线性模型。 #5291 通过 Manoj Kumar .添加了
multioutput.MultiOutputRegressor元估计量它通过对每个输出拟合一个回归量,将单输出回归量转换为多输出回归量。通过 Tim Head .
其他估计数
新
mixture.GaussianMixture和mixture.BayesianGaussianMixture取代以前的混合模型,采用更快的推理以获得更合理的结果。 #7295 通过 Wei Xue 和 Thierry Guillemot .类
decomposition.RandomizedPCA现在已被考虑到decomposition.PCA并且可以用参数调用svd_solver='randomized'.的默认数量n_iter为'randomized'已更改为4。PCA的旧行为通过以下方式恢复svd_solver='full'.一个附加的求解程序调用arpack并执行截断(非随机)的奇异值分解。默认情况下,根据输入的大小和请求的组件数量选择最佳求解器。 #5299 通过 Giorgio Patrini .增加了两个互信息估计功能:
feature_selection.mutual_info_classif和feature_selection.mutual_info_regression.这些功能可以用于feature_selection.SelectKBest和feature_selection.SelectPercentile作为评分功能。通过 Andrea Bravi 和 Nikolay Mayorov .添加了
ensemble.IsolationForest基于随机森林的异常检测类。通过 Nicolas Goix .添加
algorithm="elkan"到cluster.KMeans实现Elkan的快速K-Means算法。通过 Andreas Müller .
模型选择与评估
添加
metrics.fowlkes_mallows_score,Fowlkes Malows指数,衡量一组点的两个集群的相似性 Arnaud Fouchet 和 Thierry Guillemot .添加
metrics.calinski_harabaz_score,它计算Calinski和Harabaz分数,以评估所得的一组点的聚集。通过 Arnaud Fouchet 和 Thierry Guillemot .添加了新的交叉验证拆分器
model_selection.TimeSeriesSplit来处理时间序列数据。 #6586 通过 YenChen Lin交叉验证迭代器被来自
sklearn.model_selection,允许嵌套交叉验证。看到 模型选择增强和API更改 for more information. #4294 通过 Raghav RV .
增强功能#
树木和合奏
添加了新的拆分标准
tree.DecisionTreeRegressor,平均绝对误差。该标准也可以用于ensemble.ExtraTreesRegressor,ensemble.RandomForestRegressor,以及梯度增强估计器。 #6667 通过 Nelson Liu .Added weighted impurity-based early stopping criterion for decision tree growth. #6954 by Nelson Liu
随机森林、额外树和决策树估计器现在有了一种方法
decision_path它返回树中样本的决策路径。通过 Arnaud Joly .添加了一个新示例,揭示了决策树结构。通过 Arnaud Joly .
随机森林、额外树、决策树和梯度提升估计器接受参数
min_samples_split和min_samples_leaf以训练样本的百分比提供。通过 yelite 和 Arnaud Joly .梯度提升估计器接受参数
criterion指定构建决策树中使用的分裂标准。 #6667 通过 Nelson Liu .内存占用减少(有时会大大减少),
ensemble.bagging.BaseBagging以及从中继承的类,即,ensemble.BaggingClassifier,ensemble.BaggingRegressor,而且ensemble.IsolationForest,通过动态生成属性estimators_samples_只有在需要的时候。通过 David Staub .添加
n_jobs和sample_weight参数ensemble.VotingClassifier以并行地适应基本估计量。 #5805 通过 Ibraim Ganiev .
线性、核心化和相关模型
在
linear_model.LogisticRegression,SAG求解器现在可用于多项情况。 #5251 通过 Tom Dupre la Tour .linear_model.RANSACRegressor,svm.LinearSVC和svm.LinearSVR现在支持sample_weight.通过 Imaculate .添加参数
loss到linear_model.RANSACRegressor来测量每次试验样本的误差通过 Manoj Kumar .用等序回归预测样本外事件 (
isotonic.IsotonicRegression)现在速度快得多(在使用合成数据的测试中超过1000倍)。通过 Jonathan Arfa .保序回归 (
isotonic.IsotonicRegression)现在使用更好的算法来避免O(n^2)behavior in pathological cases, and is also generally faster (##6691). By Antony Lee .naive_bayes.GaussianNB现在通过参数接受与数据无关的类先验priors.通过 Guillaume Lemaitre .linear_model.ElasticNet和linear_model.Lasso目前拥有np.float32输入数据而不将其转换为np.float64.这可以减少内存消耗。 #6913 通过 YenChen Lin .semi_supervised.LabelPropagation和semi_supervised.LabelSpreading现在除了字符串之外还接受任意内核函数knn和rbf. #5762 通过 Utkarsh Upadhyay .
分解、多维学习和集群
添加
inverse_transform函数来decomposition.NMF计算原始形状的数据矩阵。通过 Anish Shah .cluster.KMeans和cluster.MiniBatchKMeans目前拥有np.float32和np.float64输入数据而无需对其进行转换。这可以通过使用np.float32. #6846 通过 Sebastian Säger 和 YenChen Lin .
预处理和特征选择
preprocessing.RobustScaler现在接受quantile_range参数. #5929 通过 Konstantin Podshumok .feature_extraction.FeatureHashernow accepts string values. #6173 by Ryad Zenine and Devashish Deshpande.关键字参数现在可以提供给
func在preprocessing.FunctionTransformer借助于所述kw_args参数.通过 Brian McFee .feature_selection.SelectKBest和feature_selection.SelectPercentile现在接受以X、y作为输入并仅返回分数的分数函数。通过 Nikolay Mayorov .
模型评估和元估计量
multiclass.OneVsOneClassifier和multiclass.OneVsRestClassifier现在支持partial_fit.通过 Asish Panda 和 Philipp Dowling .添加了对替代或禁用的支持
pipeline.Pipeline和pipeline.FeatureUnion部件采用set_params提供动力的界面sklearn.grid_search. See 使用Pipeline和GridSearchCV选择降维 By Joel Nothman 和 Robert McGibbon .新
cv_results_属性model_selection.GridSearchCV(和model_selection.RandomizedSearchCV)可以很容易地作为一种输入到熊猫身上DataFrame. Ref 模型选择增强和API更改 for more information. #6697 通过 Raghav RV .的推广
model_selection.cross_val_predict.可以传递方法名称,例如predict_proba用于交叉验证框架而不是默认框架predict.通过 Ori Ziv 和 Sears Merritt .每个搜索候选人的培训分数和培训时间以及评分现已在
cv_results_独裁。看到了 模型选择增强和API更改 for more information. #7325 通过 Eugene Chen 和 Raghav RV .
Metrics
添加
labels标志以metrics.log_loss当中的类数量y_true和y_pred不同。 #7239 通过 Hong Guangguo 的帮助下 Mads Jensen 和 Nelson Liu .支持集群评估中的稀疏应急矩阵 (
metrics.cluster.supervised) to scale to a large number of clusters. #7419 by Gregory Stupp and Joel Nothman .添加
sample_weight参数以metrics.matthews_corrcoef.通过 Jatin Shah 和 Raghav RV .加快
metrics.silhouette_score通过使用载体化操作。通过 Manoj Kumar .添加
sample_weight参数以metrics.confusion_matrix.通过 Bernardo Stein .
杂项
添加
n_jobs参数以feature_selection.RFECV计算测试分数平行折叠。通过 Manoj KumarCodebase不包含C/C ++ cython生成的文件:它们是在构建过程中生成的。分发包仍将包含生成的C/C ++文件。通过 Arthur Mensch .
减少32位浮点输入阵列的内存使用
utils.sparse_func.mean_variance_axis和utils.sparse_func.incr_mean_variance_axis通过支持cython融合类型。通过 YenChen Lin .的
ignore_warnings现在接受类别参数以仅忽略指定类型的警告。通过 Thierry Guillemot .添加参数
return_X_y和返回类型(data, target) : tuple选项datasets.load_iris数据集 #7049 ,datasets.load_breast_cancer数据集 #7152 ,datasets.load_digits数据集,datasets.load_diabetes数据集,datasets.load_linnerud数据集,datasets.load_boston数据集 #7154 通过 Manvendra Singh .简化
clone函数,建议不支持修改中参数的估计器__init__. #5540 通过 Andreas Müller .当在与估计器训练版本不同的版本中解压缩scikit-learn估计器时,
UserWarning是提出的,看 the documentation on model persistence 了解更多详细信息。 (#7248 )由 Andreas Müller .
Bug修复#
树木和合奏
随机森林,额外的树,决策树和梯度提升将不再接受
min_samples_split=1因为至少需要2个样本来分裂决策树节点。通过 Arnaud Jolyensemble.VotingClassifier现在提高NotFittedError如果predict,transform或predict_proba被调用到非匹配估计量上。通过 Sebastian Raschka .修复错误
ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor如果random_state固定 (#7411 ).通过 Joel Nothman .修复带有随机化的合奏中的错误,其中合奏不会设置
random_state基于管道或类似嵌套中的基本估计器。 (#7411 ).注意,结果ensemble.BaggingClassifierensemble.BaggingRegressor,ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor现在将与以前的版本不同。通过 Joel Nothman .
线性、核心化和相关模型
Fixed incorrect gradient computation for
loss='squared_epsilon_insensitive'inlinear_model.SGDClassifierandlinear_model.SGDRegressor(#6764). By Wenhua Yang.修复错误
linear_model.LogisticRegressionCV哪里solver='liblinear'不接受class_weights='balanced. (#6817 ).通过 Tom Dupre la Tour .修复错误
neighbors.RadiusNeighborsClassifier当标记异常值并指定权重函数时发生错误 (#6902 ). 通过 LeonieBorne .修复
linear_model.ElasticNet稀疏决策函数,用于在多输出情况下将输出与密集进行匹配。
分解、多维学习和集群
decomposition.RandomizedPCA默认数量的iterated_power是4而不是3 #5141 通过 Giorgio Patrini .utils.extmath.randomized_svd默认情况下执行4次迭代,而不是0次迭代。在实践中,这足以在存在噪音的情况下获得真实特征值/载体的良好逼近。当n_components小 (< .1 * min(X.shape))n_iter设置为7,除非用户指定更高的数字。这提高了精度与几个组件。 #5299 通过 Giorgio Patrini .组件之间的白化/非白化不一致
decomposition.PCA和decomposition.RandomizedPCA(now考虑到PCA,请参阅新功能)已修复。components_储存时不需要美白。 #5299 通过 Giorgio Patrini .修复了
manifold.spectral_embedding其中未规范化拉普拉斯矩阵的对角线被错误地设置为1。 #4995 通过 Peter Fischer .Fixed incorrect initialization of
utils.arpack.eigshon all occurrences. Affectscluster.bicluster.SpectralBiclustering,decomposition.KernelPCA,manifold.LocallyLinearEmbedding, andmanifold.SpectralEmbedding(#5012). By Peter Fischer.Attribute
explained_variance_ratio_calculated with the SVD solver ofdiscriminant_analysis.LinearDiscriminantAnalysisnow returns correct results. By JPFrancoia
预处理和特征选择
preprocessing.data._transform_selectednow always passes a copy ofXto transform function whencopy=True(#7194). By Caio Oliveira.
模型评估和元估计量
model_selection.StratifiedKFold现在,如果单个类的所有n_labels都小于n_folds,则会出现错误。 #6182 通过 Devashish Deshpande .修复了
model_selection.StratifiedShuffleSplit在某些边缘情况下,训练和测试样本可能会重叠,请参阅 #6121 了解更多详细信息。通过 Loic Esteve .Fix in
sklearn.model_selection.StratifiedShuffleSplitto return splits of sizetrain_sizeandtest_sizein all cases (#6472). By Andreas Müller.的交叉验证
multiclass.OneVsOneClassifier和multiclass.OneVsRestClassifier现在可以使用预先计算的内核。 #7350 通过 Russell Smith .Fix incomplete
predict_probamethod delegation frommodel_selection.GridSearchCVtolinear_model.SGDClassifier(#7159) by Yichuan Liu.
Metrics
修复错误
metrics.silhouette_score其中大小为1的集群被错误地评分。他们应该得到0分。通过 Joel Nothman .修复错误
metrics.silhouette_samples因此,它现在适用于任意标签,而不仅仅是从0到n_clusters - 1的标签。修复了如果超出集群应急单元格,预期和调整后的相互信息不正确的错误
2**16.通过 Joel Nothman .metrics.pairwise_distances现在在需要时将数组转换为布尔数组scipy.spatial.distance. #5460 通过 Tom Dupre la Tour .修复稀疏输入支持
metrics.silhouette_score以及示例示例/文本/document_clustering. py。通过 YenChen Lin .metrics.roc_curve和metrics.precision_recall_curve不再圆y_score创建ROC曲线时的值;这给分数差异很小的用户带来了问题 (#7353 ).
杂项
model_selection.tests._search._check_param_grid现在可以与扩展/实现的所有类型一起正常工作Sequence(字符串除外),包括范围(Python 3.x)和xRange(Python 2.x)。 #7323 作者:维亚切斯拉夫·科瓦列夫斯基。utils.extmath.randomized_range_finder当请求多次乘势迭代时,在数字上更加稳定,因为它默认应用LU正规化。如果n_iter<2数字问题不太可能,因此不应用正常化。还有其他规范化选项可用:'none', 'LU'和'QR'. #5141 通过 Giorgio Patrini .修复某些格式的错误
scipy.sparse矩阵以及以它们为参数的估计量无法传递给base.clone.通过 Loic Esteve .datasets.load_svmlight_file现在能够读取长int QID值。 #7101 通过 Ibraim Ganiev .
API变更摘要#
线性、核心化和相关模型
residual_metric一直受到抨击linear_model.RANSACRegressor.使用loss而不是.通过 Manoj Kumar .访问公共属性
.X_和.y_一直受到抨击isotonic.IsotonicRegression.通过 Jonathan Arfa .
分解、多维学习和集群
老
mixture.DPGMM被废弃,转而支持新的mixture.BayesianGaussianMixture(with参数weight_concentration_prior_type='dirichlet_process').新类解决了旧类的计算问题,并比以前更快地使用Dirichlet过程计算高斯混合物。 #7295 通过 Wei Xue 和 Thierry Guillemot .老
mixture.VBGMM被废弃,转而支持新的mixture.BayesianGaussianMixture(with参数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_searchandsklearn.learning_curvehave been deprecated and the classes and functions have been reorganized into thesklearn.model_selectionmodule. Ref 模型选择增强和API更改 for more information. #4294 by Raghav RV .的
grid_scores_属性model_selection.GridSearchCV和model_selection.RandomizedSearchCV已放弃支持该属性cv_results_. Ref 模型选择增强和API更改 for more information. #6697 通过 Raghav RV .的参数
n_iter或n_folds旧CV分配器被新参数取代n_splits因为它可以提供一致且明确的界面来表示训练测试拆分的数量。 #7187 通过 YenChen Lin .classes参数已重命名为labels在metrics.hamming_loss. #7260 通过 Sebastián Vanrell .拆分器类
LabelKFold,LabelShuffleSplit,LeaveOneLabelOut和LeavePLabelsOut已更名为model_selection.GroupKFold,model_selection.GroupShuffleSplit,model_selection.LeaveOneGroupOut和model_selection.LeavePGroupsOut分别还有参数labels在splitmethod of the newly renamed splittersmodel_selection.LeaveOneGroupOutandmodel_selection.LeavePGroupsOutis renamed togroups. Additionally inmodel_selection.LeavePGroupsOut, the parametern_labelsis renamed ton_groups. #6660 by 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