Versión 0.20.4

30 de julio de 2019

Esta es una versión de corrección de errores con algunas correcciones aplicadas a la versión 0.20.3.

Registro de cambios

La versión empaquetada de joblib se actualizó de 0.13.0 a 0.13.2.

sklearn.cluster

sklearn.compose

  • Fix Se ha corregido un problema en compose.ColumnTransformer por el que el uso de DataFrames cuyo orden de columnas difiere entre :func:fit y :func:transform podía llevar a pasar silenciosamente columnas incorrectas al transformador remainder. #14237 por Andreas Schuderer <schuderer>.

sklearn.decomposition

sklearn.model_selection

sklearn.neighbors

Versión 0.23

1 de marzo de 2019

Esta es una versión de corrección de errores con algunas mejoras menores en la documentación y en las características lanzadas en 0.20.0.

Registro de cambios

sklearn.cluster

sklearn.compose

sklearn.covariance

sklearn.decomposition

sklearn.datasets

sklearn.feature_extraction

sklearn.impute

sklearn.linear_model

sklearn.preprocessing

sklearn.svm

Colaboradores de código y documentación

Con agradecimiento a:

Adrin Jalali, Agamemnon Krasoulis, Albert Thomas, Andreas Mueller, Aurélien Bellet, bertrandhaut, Bharat Raghunathan, Dowon, Emmanuel Arias, Fibinse Xavier, Finn O’Shea, Gabriel Vacaliuc, Gael Varoquaux, Guillaume Lemaitre, Hanmin Qin, joaak, Joel Nothman, Joris Van den Bossche, Jérémie Méhault, kms15, Kossori Aruku, Lakshya KD, maikia, Manuel López-Ibáñez, Marco Gorelli, MarcoGorelli, mferrari3, Mickaël Schoentgen, Nicolas Hug, pavlos kallis, Pierre Glaser, pierretallotte, Prabakaran Kumaresshan, Reshama Shaikh, Rohit Kapoor, Roman Yurchak, SandroCasagrande, Tashay Green, Thomas Fan, Vishaal Kapoor, Zhuyi Xue, Zijie (ZJ) Poh

Versión 0.20.2

20 de diciembre de 2018

Esta es una versión de corrección de errores con algunas mejoras menores en la documentación y en las características lanzadas en 0.20.0.

Modelos modificados

Los siguientes estimadores y funciones, cuando se ajustan con los mismos datos y parámetros, pueden producir modelos diferentes de la versión anterior. Esto suele ocurrir debido a cambios en la lógica de modelado (corrección de errores o mejoras), o en los procedimientos de muestreo aleatorio.

  • sklearn.neighbors when metric=='jaccard' (bug fix)

  • uso de métricas 'seuclidean' o ``”mahalanobis”` en algunos casos (corrección de errores)

Registro de cambios

sklearn.compose

sklearn.metrics

sklearn.neighbors

sklearn.utils

Colaboradores de código y documentación

Con agradecimiento a:

adanhawth, Adrin Jalali, Albert Thomas, Andreas Mueller, Dan Stine, Feda Curic, Hanmin Qin, Jan S, jeremiedbb, Joel Nothman, Joris Van den Bossche, josephsalmon, Katrin Leinweber, Loic Esteve, Muhammad Hassaan Rafique, Nicolas Hug, Olivier Grisel, Paul Paczuski, Reshama Shaikh, Sam Waterbury, Shivam Kotwalia, Thomas Fan

Versión 0.20.1

21 de noviembre de 2018

Esta es una versión de corrección de errores con algunas mejoras menores de documentación y mejoras a las características publicadas en 0.20.0. Ten en cuenta que también incluimos algunos cambios de API en esta versión, así que puedes obtener algunas advertencias adicionales después de actualizar de 0.20.0 a 0.20.1.

Modelos modificados

Los siguientes estimadores y funciones, cuando se ajustan con los mismos datos y parámetros, pueden producir modelos diferentes de la versión anterior. Esto suele ocurrir debido a cambios en la lógica de modelado (corrección de errores o mejoras), o en los procedimientos de muestreo aleatorio.

Registro de cambios

sklearn.cluster

  • Efficiency hacer que cluster.MeanShift ya no intente hacer paralelismo anidado ya que la sobrecarga perjudicaría el rendimiento significativamente cuando n_jobs > 1. #12159 por Olivier Grisel.

  • Fix Se ha corregido un error en cluster.DBSCAN con el gráfico de vecinos dispersos precalculado, que añadía explícitamente ceros en la diagonal incluso cuando ya estaban presentes. #12105 por Tom Dupre la Tour.

sklearn.compose

sklearn.datasets

sklearn.decomposition

  • Fix Se corrigió una regresión en decomposition.IncrementalPCA donde 0.20.0 produjo un error si el número de muestras en el lote final para ajustar IncrementalPCA era menor que n_components. #12234 por Ming Li.

sklearn.ensemble

sklearn.feature_extraction

sklearn.linear_model

  • Fix linear_model.SGDClassifier y variantes con early_stopping=True no usarían una división de validación consistente en el caso multiclase, y esto causaría un fallo al usar esos estimadores como parte de la búsqueda de parámetros paralelos o la validación cruzada. #12122 por Olivier Grisel.

  • Fix Se ha corregido un error que afectaba a SGDClassifier en el caso multiclase. Cada paso uno contra todos (one-versus-all) se ejecuta en una llamada a joblib.Parallel y mutando un parámetro común, causando un fallo de segmentación si se llama dentro de un backend utilizando procesos y no hilos. Ahora usamos require=sharedmem en la creación de instancia de joblib.Parallel. #12518 por Pierre Glaser y Olivier Grisel.

sklearn.metrics

sklearn.mixture

sklearn.neighbors

sklearn.preprocessing

sklearn.utils

Varios

  • Fix Cuando se utiliza joblib del sitio configurando la variable de entorno SKLEARN_SITE_JOBLIB, añadió compatibilidad con joblib 0. 1 además de 0.12+. #12350 por Joel Nothman y Roman Yurchak.

  • Fix Asegúrate de evitar levantar FutureWarning al llamar a np.vstack con número 1. 6 y posteriores (utilice las expresiones de la lista en lugar de las expresiones del generador en muchas ubicaciones de la base de código de la scikit). #12467 por Olivier Grisel.

  • API Change Se eliminaron todas las menciones de sklearn.externals.joblib, y métodos joblib obsoletos expuestos en sklearn.utils, excepto por utils.parallel_backend y utils.register_parallel_backend, que permiten a los usuarios configurar el cálculo paralelo en scikit-learn. Otras funcionalidades son parte de joblib. paquete y deberían ser usadas directamente, instalándolo. El objetivo de este cambio es prepararse para no avalar el trabajo en la futura versión de la ciencia-aprendizaje. #12345 por Thomas Moreau

Colaboradores de código y documentación

Con agradecimiento a:

^__^, Adrin Jalali, Andrea Navarrete, Andreas Mueller, bauks, BenjaStudio, Cheuk Ting Ho, Connossor, Corey Levinson, Dan Stine, daten-kieker, Denis Kataev, Dillon Gardner, Dmitry Vukolov, Dougal J. Sutherland, Edward J Brown, Eric Chang, Federico Caselli, Gabriel Marzinotto, Gael Varoquaux, GauravAhlawat, Gustavo De Mari Pereira, Hanmin Qin, haroldfox, JackLangerman, Jacopo Notarstefano, janvanrijn, jdethurens, jeremiedbb, Joel Nothman, Joris Van den Bossche, Koen, Kushal Chauhan, Lee Yi Jie Joel, Lily Xiong, mail-liam, Mark Hannel, melsyt, Ming Li, Nicholas Smith, Nicolas Hug, Nikolay Shebanov, Oleksandr Pavlyk, Olivier Grisel, Peter Hausamann, Pierre Glaser, Pulkit Maloo, Quentin Batista, Radostin Stoyanov, Ramil Nugmanov, Rebekah Kim, Reshama Shaikh, Rohan Singh, Roman Feldbauer, Roman Yurchak, Roopam Sharma, Sam Waterbury, Scott Lowe, Sebastian Raschka, Stephen Tierney, SylvainLan, TakingItCasual, Thomas Fan, Thomas Moreau, Tom Dupré la Tour, Tulio Casagrande, Utkarsh Upadhyay, Xing Han Lu, Yaroslav Halchenko, Zach Miller

Versión 0.20.0

25 de septiembre de 2018

Este paquete de versiones se encuentra en una montaña de correcciones de errores, características y mejoras para la biblioteca Scikit-learn, y mejoras en la documentación y ejemplos. ¡Gracias a nuestros colaboradores!

Este lanzamiento está dedicado a la memoria de Raghav Rajagopalan.

Advertencia

La versión 0.20 es la última versión de scikit-learn para soportar Python 2.7 y Python 3.4. Scikit-learn 0.21 requerirá Python 3.5 o superior.

Destacados

Hemos intentado mejorar nuestro soporte para casos de uso comunes de la ciencia de datos, incluyendo valores faltantes, variables categóricas, datos heterogéneos y características con distribuciones inusuales. Los valores faltantes en las características, representados por NaNs, ahora son aceptados en el preprocesamiento de columnas como escaladores. Cada característica se ajusta sin tener en cuenta NaNs, y los datos que contienen NaNs pueden ser transformados. El nuevo módulo impute proporciona estimadores para aprender a pesar de que faltan datos.

ColumnTransformer maneja el caso donde diferentes características o columnas de un pandas.DataFrame necesitan un preprocesamiento diferente. Las columnas Categóricas de pandas o cadenas ahora pueden ser codificadas con OneHotEncoder o OrdinalEncoder.

TransformedTargetRegressor ayuda cuando el objetivo de regresión necesita ser transformado para ser modelado. PowerTransformer y KBinsDiscretizer se unen a QuantileTransformer como transformaciones no lineales.

Más allá de esto, hemos añadido el soporte de sample_weight a varios estimadores (incluyendo KTechns, BayesianRidge y ernelDensity) y criterios de detención mejorados en otros (incluyendo MLPRegressor, GradientBoostingRegressor y SGDRegressor).

Esta versión también es la primera en ir acompañada de un Glosario de Términos Comunes y Elementos de la API desarrollado por Joel Nothman. El glosario es un recurso de referencia para ayudar a los usuarios y colaboradores a familiarizarse con la terminología y las convenciones utilizadas en Scikit-learn.

Disculpa si tu contribución no ha entrado en los destacados. Hay mucho aquí…

Modelos modificados

Los siguientes estimadores y funciones, cuando se ajustan con los mismos datos y parámetros, pueden producir modelos diferentes de la versión anterior. Esto suele ocurrir debido a cambios en la lógica de modelado (corrección de errores o mejoras), o en los procedimientos de muestreo aleatorio.

Los detalles están listados en el registro de cambios a continuación.

(Mientras intentamos informar mejor a los usuarios proporcionando esta información, no podemos asegurar que esta lista esté completa.)

Mayores Errores Conocidos

  • #11924: linear_model.LogisticRegressionCV con solver='lbfgs' y multi_class='multinomial' puede ser no determinista o roto en macOS. Este parece ser el caso en los servidores Travis CI, pero no ha sido confirmado en MacBook personal! Este número ha estado presente en versiones anteriores.

  • #9354: metrics.pairwise.euclidean_distances (que se usa varias veces a lo largo de la biblioteca) da resultados con poca precisión, lo que afecta particularmente a su uso con entradas flotantes de 32-bits. Esto se volvió más problemático en las versiones 0.18 y 0.19 cuando algunos algoritmos fueron cambiados para evitar lanzar datos de 32 bits en 64-bit.

Registro de cambios

Se ha eliminado oficialmente el soporte para Python 3.3.

sklearn.cluster

sklearn.compose

sklearn.covariance

sklearn.datasets

sklearn.decomposition

  • Feature decomposition.dict_learning funciones y modelos ahora soportan restricciones de positividad. Esto se aplica al diccionario y al código disperso. #6374 por John Kirkham.

  • Feature Fix decomposition.SparsePCA ahora expone normalize_components. Cuando se establece como True, los datos de tren y de prueba se centran con la media del tren respectivamente durante la fase de ajuste y la fase de transformación. Esto corrige el comportamiento de SparsePCA. Cuando se establece en False, que es el valor por defecto, el comportamiento anormal anterior todavía se mantiene. El valor False es por compatibilidad con versiones anteriores y no debe utilizarse. #11585 por Ivan Panico.

  • Efficiency Mejoras de eficiencia en decomposition.dict_learning. #11420 y otros por John Kirkham.

  • Fix Corregir para error no informativo en descomposición.IncrementalPCA: ahora se produce un error si el número de componentes es mayor que el tamaño del lote elegido. El caso n_components=None fue adaptado en consecuencia. #6452. Por Wally Gauze.

  • Fix Se corrigió un error donde el método partial_fit de descomposición.IncrementalPCA usó división entera en lugar de división float en Python 2. #9492 por James Bourbeau.

  • Fix En decomposition.PCA seleccionando un parámetro n_components mayor que el número de muestras ahora provoca un error. Del mismo modo, el caso n_components=None ahora selecciona el mínimo de n_samples y n_features. #8484 por Wally Gauze.

  • Fix Se corrigió un error en decomposition.PCA donde los usuarios obtendrán un error inesperado con conjuntos de datos grandes cuando n_components='mle' en versiones de Python 3. #9886 por Hanmin Qin.

  • Fix Se corrigió un bajo flujo en el cálculo de KL-divergence para decomposition.NMF #10142 por Tom Dupre la Tour.

  • Fix Se corrigió un error en decomposition.SparseCoder al ejecutar la codificación OMP en paralelo usando estructuras de datos asignadas de solo lectura. #5956 por Vighnesh Birodkar y Olivier Grisel.

sklearn.discriminant_analysis

  • Efficiency Mejora de uso de memoria para _class_means y _class_cov en discriminant_analysis. #10898 por Nanxin Chen.

sklearn.dummy

sklearn.ensemble

sklearn.feature_extraction

sklearn.feature_selection

sklearn.gaussian_process

sklearn.impute

sklearn.isotonic

  • Fix Se ha corregido un error en isotonic.IsotonicRegression que combinaba incorrectamente las ponderaciones cuando se ajustaba un modelo a datos que incluían puntos con valores X idénticos. #9484 por Dallas Card

sklearn.linear_model

sklearn.manifold

  • Efficiency Mejoras de velocidad tanto para los métodos “exact” como “barnes_hut” en manifold.TSNE. #10593 y #10610 por Tom Dupre la Tour.

  • Feature Sparse input en manifold.Isomap.fit. #8554 por Leland McInnes.

  • Feature manifold.t_sne.trustworthiness acepta métricas distintas de Euclidean. #9775 por William de Vazelhes.

  • Fix Se corrigió un error en manifold.spectral_embedding donde la normalización del espectro estaba utilizando una división en lugar de una multiplicación. #8129 por Jan Margeta, Guillaume Lemaitre, y Devansh D..

  • API Change Feature Desaprobar el parámetro precomputed en la función manifold.t_sne.trustworthiness. En su lugar, el nuevo parámetro metric debe utilizarse con cualquier métrica compatible incluyendo “precomputed”, en cuyo caso la matriz de entrada X debería ser una matriz de distancias paralelas o distancias cuadradas. #9775 por William de Vazelhes.

  • API Change Desaprobar el parámetro precomputed en la función manifold.t_sne.trustworthiness. En su lugar, el nuevo parámetro metric debe utilizarse con cualquier métrica compatible incluyendo “precomputed”, en cuyo caso la matriz de entrada X debería ser una matriz de distancias paralelas o distancias cuadradas. #9775 por William de Vazelhes.

sklearn.metrics

sklearn.mixture

sklearn.model_selection

sklearn.multioutput

sklearn.naive_bayes

sklearn.neighbors

sklearn.neural_network

sklearn.pipeline

  • Feature El método predict de pipeline.Pipeline ahora pasa los argumentos de las palabras clave al último estimador del pipeline, permitiendo el uso de parámetros como return_std en un pipeline con precaución. #9304 por Breno Freitas.

  • API Change pipeline.FeatureUnion ahora soporta 'drop' como transformador para soltar características. #11144 por Thomas Fan.

sklearn.preprocessing

sklearn.svm

  • Fix Se corrigió un error en svm.SVC donde cuando el argumento kernel es unicode en Python2, el método predict_proba estaba levantando un TypeError inesperado dado entradas densas. #10412 por Jiongyan Zhang.

  • API Change Desaprobar el parámetro random_state en svm.OneClassSVM ya que la implementación subyacente no es aleatoria. #9497 por Albert Thomas.

  • API Change El valor predeterminado del parámetro gamma de svm.SVC, NuSVC, SVR, NuSVR, OneClassSVM cambiará de 'auto' a 'scale' en la versión 0.22 para tener mejor cuenta las características sin escalar. #8361 por Gaurav Dhingra y Ting Neo.

sklearn.tree

  • Enhancement Aunque es privado (y por lo tanto no garantizado la estabilidad de la API), tree._criterion.ClassificationCriterion y tree. criterion.RegressionCriterion ahora puede ser cimportado y extendido. #10325 por Camil Staps.

  • Fix Se corrigió un error en tree.BaseDecisionTree con splitter="best" donde el umbral de división podía volverse infinito cuando los valores en X estaban cerca de infinito. #10536 por Jonathan Ohayon.

  • Fix Se corrigió un error en tree.MAE para asegurar que los pesos de muestra se estén utilizando durante el cálculo de impureza del árbol MAE. El comportamiento anterior podría provocar la elección de divisiones subóptimas, ya que el cálculo de impureza consideraba que todas las muestras eran de igual importancia. #11464 por John Stott.

sklearn.utils

Múltiples módulos

Varios

  • Major Feature Un nuevo parámetro de configuración, working_memory fue añadido para controlar los límites de consumo de memoria en operaciones por bloques (chunked), como la nueva metrics.pairwise_distances_chunked. Ver Limitación de la memoria de trabajo. #10280 por Joel Nothman y Aman Dalmia.

  • Feature La versión de joblib empaquetada con Scikit-learn ahora es 0.12. Esto usa una nueva implementación multiprocesamiento predeterminada, llamada loky. Aunque esto puede incurrir en algo de memoria y comunicación, debería proporcionar una mayor estabilidad entre plataformas que depender del multiprocesamiento estándar de librerías Python. #11741 por los desarrolladores de Joblib, especialmente Thomas Moreau y Olivier Grisel.

  • Feature Se ha añadido una variable de entorno para usar el joblib del sitio en lugar de la vendida (Variables de entorno). La API principal de joblib está ahora expuesta en sklearn.utils. #11166 por Gael Varoquaux.

  • Feature Añade soporte de PyPy 3 casi completo. Las funcionalidades no soportadas son datasets.load_svmlight_file, feature_extraction.FeatureHasher y feature_extraction.text.HashingVectorizer. Para ejecutarse en PyPy, PyPy3-v5.10+, Numpy 1.14.0+, y scipy 1.1. + son requeridos. #11010 por Ronan Lamy y Roman Yurchak.

  • Feature Un método de utilidad sklearn.show_versions fue añadido para imprimir información relevante para la depuración. Incluye el sistema de usuarios, el ejecutable Python, la versión de las bibliotecas principales y la información de enlace BLAS . #11596 por Alexandre Boucaud

  • Fix Se corrigió un error al configurar parámetros en el metaestimador, involucrando tanto un estimador envuelto como su parámetro. #9999 por Marcus Voss y Joel Nothman.

  • Fix Se corrigió un error en el que se llamaba a sklearn.base.clone no estaba seguro en el hilo y podría resultar en un error de «pop de lista vacía». #9569 por Andreas Müller.

  • API Change El valor predeterminado de n_jobs se cambia de 1 a None en todas las funciones y clases relacionadas. n_jobs=None significa unset. Generalmente será interpretado como n_jobs=1, a menos que el joblib.Parallel en el contexto del backend especifica lo contrario (Ver Glossary para obtener información adicional). Ten en cuenta que este cambio sucede inmediatamente (es decir, sin un ciclo de obsolescencia). #11741 por Olivier Grisel.

  • Fix Se corrigió un error en los ayudantes de validación donde pasar un DataFrame de Dask resulta en un error. #12462 por Zachariah Miller

Cambios en las comprobaciones de los estimadores

Estos cambios afectan principalmente a los desarrolladores de bibliotecas.

Colaboradores de código y documentación

Gracias a quienes han contribuido al mantenimiento y mejora del proyecto desde la versión 0.19, incluyendo:

211217613, Aarshay Jain, absolutelyNoWarranty, Adam Greenhall, Adam Kleczewski, Adam Richie-Halford, adelr, AdityaDaflapurkar, Adrin Jalali, Aidan Fitzgerald, aishgrt1, Akash Shivram, Alan Liddell, Alan Yee, Albert Thomas, Alexander Lenail, Alexander-N, Alexandre Boucaud, Alexandre Gramfort, Alexandre Sevin, Alex Egg, Alvaro Perez-Diaz, Amanda, Aman Dalmia, Andreas Bjerre-Nielsen, Andreas Mueller, Andrew Peng, Angus Williams, Aniruddha Dave, annaayzenshtat, Anthony Gitter, Antonio Quinonez, Anubhav Marwaha, Arik Pamnani, Arthur Ozga, Artiem K, Arunava, Arya McCarthy, Attractadore, Aurélien Bellet, Aurélien Geron, Ayush Gupta, Balakumaran Manoharan, Bangda Sun, Barry Hart, Bastian Venthur, Ben Lawson, Benn Roth, Breno Freitas, Brent Yi, brett koonce, Caio Oliveira, Camil Staps, cclauss, Chady Kamar, Charlie Brummitt, Charlie Newey, chris, Chris, Chris Catalfo, Chris Foster, Chris Holdgraf, Christian Braune, Christian Hirsch, Christian Hogan, Christopher Jenness, Clement Joudet, cnx, cwitte, Dallas Card, Dan Barkhorn, Daniel, Daniel Ferreira, Daniel Gomez, Daniel Klevebring, Danielle Shwed, Daniel Mohns, Danil Baibak, Darius Morawiec, David Beach, David Burns, David Kirkby, David Nicholson, David Pickup, Derek, Didi Bar-Zev, diegodlh, Dillon Gardner, Dillon Niederhut, dilutedsauce, dlovell, Dmitry Mottl, Dmitry Petrov, Dor Cohen, Douglas Duhaime, Ekaterina Tuzova, Eric Chang, Eric Dean Sanchez, Erich Schubert, Eunji, Fang-Chieh Chou, FarahSaeed, felix, Félix Raimundo, fenx, filipj8, FrankHui, Franz Wompner, Freija Descamps, frsi, Gabriele Calvo, Gael Varoquaux, Gaurav Dhingra, Georgi Peev, Gil Forsyth, Giovanni Giuseppe Costa, gkevinyen5418, goncalo-rodrigues, Gryllos Prokopis, Guillaume Lemaitre, Guillaume «Vermeille» Sanchez, Gustavo De Mari Pereira, hakaa1, Hanmin Qin, Henry Lin, Hong, Honghe, Hossein Pourbozorg, Hristo, Hunan Rostomyan, iampat, Ivan PANICO, Jaewon Chung, Jake VanderPlas, jakirkham, James Bourbeau, James Malcolm, Jamie Cox, Jan Koch, Jan Margeta, Jan Schlüter, janvanrijn, Jason Wolosonovich, JC Liu, Jeb Bearer, jeremiedbb, Jimmy Wan, Jinkun Wang, Jiongyan Zhang, jjabl, jkleint, Joan Massich, Joël Billaud, Joel Nothman, Johannes Hansen, JohnStott, Jonatan Samoocha, Jonathan Ohayon, Jörg Döpfert, Joris Van den Bossche, Jose Perez-Parras Toledano, josephsalmon, jotasi, jschendel, Julian Kuhlmann, Julien Chaumond, julietcl, Justin Shenk, Karl F, Kasper Primdal Lauritzen, Katrin Leinweber, Kirill, ksemb, Kuai Yu, Kumar Ashutosh, Kyeongpil Kang, Kye Taylor, kyledrogo, Leland McInnes, Léo DS, Liam Geron, Liutong Zhou, Lizao Li, lkjcalc, Loic Esteve, louib, Luciano Viola, Lucija Gregov, Luis Osa, Luis Pedro Coelho, Luke M Craig, Luke Persola, Mabel, Mabel Villalba, Maniteja Nandana, MarkIwanchyshyn, Mark Roth, Markus Müller, MarsGuy, Martin Gubri, martin-hahn, martin-kokos, mathurinm, Matthias Feurer, Max Copeland, Mayur Kulkarni, Meghann Agarwal, Melanie Goetz, Michael A. Alcorn, Minghui Liu, Ming Li, Minh Le, Mohamed Ali Jamaoui, Mohamed Maskani, Mohammad Shahebaz, Muayyad Alsadi, Nabarun Pal, Nagarjuna Kumar, Naoya Kanai, Narendran Santhanam, NarineK, Nathaniel Saul, Nathan Suh, Nicholas Nadeau, P.Eng., AVS, Nick Hoh, Nicolas Goix, Nicolas Hug, Nicolau Werneck, nielsenmarkus11, Nihar Sheth, Nikita Titov, Nilesh Kevlani, Nirvan Anjirbag, notmatthancock, nzw, Oleksandr Pavlyk, oliblum90, Oliver Rausch, Olivier Grisel, Oren Milman, Osaid Rehman Nasir, pasbi, Patrick Fernandes, Patrick Olden, Paul Paczuski, Pedro Morales, Peter, Peter St. John, pierreablin, pietruh, Pinaki Nath Chowdhury, Piotr Szymański, Pradeep Reddy Raamana, Pravar D Mahajan, pravarmahajan, QingYing Chen, Raghav RV, Rajendra arora, RAKOTOARISON Herilalaina, Rameshwar Bhaskaran, RankyLau, Rasul Kerimov, Reiichiro Nakano, Rob, Roman Kosobrodov, Roman Yurchak, Ronan Lamy, rragundez, Rüdiger Busche, Ryan, Sachin Kelkar, Sagnik Bhattacharya, Sailesh Choyal, Sam Radhakrishnan, Sam Steingold, Samuel Bell, Samuel O. Ronsin, Saqib Nizam Shamsi, SATISH J, Saurabh Gupta, Scott Gigante, Sebastian Flennerhag, Sebastian Raschka, Sebastien Dubois, Sébastien Lerique, Sebastin Santy, Sergey Feldman, Sergey Melderis, Sergul Aydore, Shahebaz, Shalil Awaley, Shangwu Yao, Sharad Vijalapuram, Sharan Yalburgi, shenhanc78, Shivam Rastogi, Shu Haoran, siftikha, Sinclert Pérez, SolutusImmensus, Somya Anand, srajan paliwal, Sriharsha Hatwar, Sri Krishna, Stefan van der Walt, Stephen McDowell, Steven Brown, syonekura, Taehoon Lee, Takanori Hayashi, tarcusx, Taylor G Smith, theriley106, Thomas, Thomas Fan, Thomas Heavey, Tobias Madsen, tobycheese, Tom Augspurger, Tom Dupré la Tour, Tommy, Trevor Stephens, Trishnendu Ghorai, Tulio Casagrande, twosigmajab, Umar Farouk Umar, Urvang Patel, Utkarsh Upadhyay, Vadim Markovtsev, Varun Agrawal, Vathsala Achar, Vilhelm von Ehrenheim, Vinayak Mehta, Vinit, Vinod Kumar L, Viraj Mavani, Viraj Navkal, Vivek Kumar, Vlad Niculae, vqean3, Vrishank Bhardwaj, vufg, wallygauze, Warut Vijitbenjaronk, wdevazelhes, Wenhao Zhang, Wes Barnett, Will, William de Vazelhes, Will Rosenfeld, Xin Xiong, Yiming (Paul) Li, ymazari, Yufeng, Zach Griffith, Zé Vinícius, Zhenqing Hu, Zhiqing Xiao, Zijie (ZJ) Poh