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
¶
Fix Se ha corregido un error en
cluster.KMeans
por el que la inicialización de KMeans++ podía provocar raramente un IndexError. #11756 por Joel Nothman.
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 transformadorremainder
. #14237 porAndreas Schuderer <schuderer>
.
sklearn.decomposition
¶
Fix Se ha corregido un error en
cross_decomposition.CCA
mejorando la estabilidad numérica cuandoY
es cercano a cero. #13903 por Thomas Fan.
sklearn.model_selection
¶
Fix Se ha corregido un error por el que
model_selection.StratifiedKFold
baraja las muestras de cada clase con el mismorandom_state
, haciendo queshuffle=True
sea ineficaz. #13124 por Hanmin Qin.
sklearn.neighbors
¶
Fix Se ha corregido un error en
neighbors.KernelDensity
que no podía restaurarse desde un pickle si se había utilizadosample_weight
. #13772 por Aditya Vyas.
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
¶
Fix Se ha corregido un error en
cluster.KMeans
por el que el cálculo era de un solo hilo cuandon_jobs > 1
on_jobs = -1
. #12949 por Prabakaran Kumaresshan.
sklearn.compose
¶
Fix Corregido un error en
compose.ColumnTransformer
para manejar índices negativos en la lista de columnas de los transformadores. #12946 por Pierre Tallotte.
sklearn.covariance
¶
Fix Corregida una regresión en
covariance.graphical_lasso
para que el cason_features=2
sea tratado correctamente. #13276 por Aurélien Bellet.
sklearn.decomposition
¶
Fix Se corrigió un error en
decomposition.sparse_encode
donde el cálculo era un solo hilo cuandon_jobs > 1
on_jobs = -1
. #13005 por Prabakaran Kumaresshan.
sklearn.datasets
¶
Efficiency
sklearn.datasets.fetch_openml
ahora carga los datos por streaming, evitando un alto uso de memoria. #13312 por Joris Van den Bossche.
sklearn.feature_extraction
¶
Fix Se ha corregido un error en
feature_extraction.text.CountVectorizer
que provocaba que la matriz de rasgos dispersos tuviera precisiones deindptr
eindices
contradictorias bajo vocabularios muy grandes. #11295 por Gabriel Vacaliuc.
sklearn.impute
¶
Fix añadir soporte para datos no numéricos en
sklearn.impute.MissingIndicator
que no era soportado mientrassklearn.impute.SimpleImputer
lo soportaba para algunas estrategias de imputación. #13046 por Guillaume Lemaitre.
sklearn.linear_model
¶
Fix Corregido un error en
linear_model.MultiTaskElasticNet
ylinear_model.MultiTaskLasso
que se rompía cuandowarm_start = True
. #12360 por Aakanksha Joshi.
sklearn.preprocessing
¶
Fix Se ha corregido un error en
preprocessing.KBinsDiscretizer
en el questrategy='kmeans'
falla con un error durante la transformación debido a bordes de recipientes sin clasificar. #13134 por Sandro Casagrande.Fix Se ha corregido un error en
preprocessing.OneHotEncoder
por el que la obsolescencia decategorical_features
se manejaba incorrectamente en combinación conhandle_unknown='ignore'
. #12881 por Joris Van den Bossche.Fix Los bins cuyo ancho es demasiado pequeño (es decir, <= 1e-8) se eliminan con una advertencia en
preprocessing.KBinsDiscretizer
. #13165 por Hanmin Qin.
sklearn.svm
¶
Fix Se ha corregido un error en
svm.SVC
,svm.NuSVC
,svm.SVR
,svm.NuSVR
ysvm.OneClassSVM
en el que la opciónscale
del parámetrogamma
se define erróneamente como1 / (n_características * X.std())
. Ahora se define como1 / (n_características * X.var())
. #13221 by Hanmin Qin.
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
whenmetric=='jaccard'
(bug fix)uso de métricas
'seuclidean'
o ``”mahalanobis”` en algunos casos (corrección de errores)
Registro de cambios¶
sklearn.compose
¶
Fix Se ha corregido un problema en
compose.make_column_transformer
que genera un error inesperado cuando las columnas son pandas Index o pandas Series. #12704 por Hanmin Qin.
sklearn.metrics
¶
Fix Se ha corregido un error en
metrics.pairwise_distances
ymetrics.pairwise_distances_chunked
donde los parámetrosV
de las métricas"seuclidean"
yVI
de las métricas"mahalanobis"
se calculaban después de dividir los datos en trozos en lugar de calcularse previamente en los datos completos. #12701 por Jeremie du Boisberranger.
sklearn.neighbors
¶
Fix Se ha corregido la función de distancia jaccard
sklearn.neighbors.DistanceMetric
para que devuelva 0 cuando se comparan dos vectores totalmente nulos. #12685 por Thomas Fan.
sklearn.utils
¶
Fix La llamada a
utils.check_array
enpandas.Series
con datos categóricos, que daba un error en 0.20.0, ahora devuelve de nuevo la salida esperada. #12699 por Joris Van den Bossche.
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.
decomposition.IncrementalPCA
(bug fix)
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 cuandon_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
¶
Fix Se ha corregido un problema en
compose.ColumnTransformer
al apilar columnas con tipos no convertibles a numérico. #11912 por Adrin Jalali.API Change
compose.ColumnTransformer
ahora aplica elsparse_returhold
incluso si todos los resultados de la transformación son esparcidos. #12304 por Andreas Muñller.API Change
compose.make_column_transformer
ahora espera(transformer, columnas)
en lugar de(columns, transformer)
para mantener consistente concompose.ColumnTransformer
. #12339 por Adrin Jalali.
sklearn.datasets
¶
Fix
datasets.fetch_openml
para usar correctamente la caché local. #12246 por Jan N. van Rijn.Fix
datasets.fetch_openml
para manejar correctamente los atributos ignorados y los atributos de identificación de fila. #12330 por Jan N. van Rijn.Fix Se ha corregido el desbordamiento de enteros en
datasets.make_classification
para valores del parámetron_informative
mayores de 64. #10811 por Roman Feldbauer.Fix Se ha corregido el atributo
DESCR
del conjunto de datos de olivetti para que apunte a la ubicación correcta endatasets.fetch_olivetti_faces
. #12441 por Jérémie du BoisberrangerFix
datasets.fetch_openml
para volver a intentar descargar cuando la lectura de caché local falla. #12517 por Thomas Fan.
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
¶
Fix Se ha corregido un error que afectaba mayormente a
ensemble.RandomForestClassifier
donde ``class_weight=”balanced_subsample”` falló con más de 32 clases. #12165 por Joel Nothman.Fix Se corrigió un error que afectaba a
ensemble.BaggingClassifier
,ensemble.BaggingRegressor
yensemble.IsolationForest
, dondemax_features
a veces fue redondeado a cero. #12388 por Connor Tann.
sklearn.feature_extraction
¶
Fix Se corrigió una regresión en v0.20.0 donde
feature_extraction.text.CountVectorizer
y otros vectorizadores de texto podían error durante la validación de palabras de parada con preprocesadores o tokenizadores personalizados. #12393 por Roman Yurchak.
sklearn.linear_model
¶
Fix
linear_model.SGDClassifier
y variantes conearly_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 ajoblib.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 usamosrequire=sharedmem
en la creación de instancia dejoblib.Parallel
. #12518 por Pierre Glaser y Olivier Grisel.
sklearn.metrics
¶
Fix Se corrigió un error en
metrics.pairwise.pairwise_distances_argmin_min
que devolvió la raíz cuadrada de la distancia cuando el parámetro métrico se estableció en «euclidean». #12481 por Jérémie du Boisberranger.Fix Se ha corregido un error en
metrics.pairwise.pairwise_distances_chunked
que no se aseguró de que el diagonal es cero para las distancias euclidanas. #12612 por Andreas Muller.API Change La
metrics.calinski_harabaz_score
ha sido renombrada ametrics.calinski_harabasz_score
y será eliminada en la versión 0. 3. #12211 por Lisa Thomas, Mark Hannel y Melissa Ferrari.
sklearn.mixture
¶
Fix Asegúrate de que el método
fit_predict
demixture.GaussianMixture
ymixture.BayesianGaussianMixture
siempre rinden asignaciones consistentes conajustado
seguido depredice
incluso si el criterio de convergencia es demasiado suelto o no cumplido. #12451 por Olivier Grisel.
sklearn.neighbors
¶
Fix forzar el backend de paralelismo a
threading
paraneighbors.KDTree
yneighbors.BallTree
en Python 2.7 para evitar errores de pickling causados por la serialización de sus métodos. #12171 por Thomas Moreau.
sklearn.preprocessing
¶
Fix Se ha corregido error en
preprocessing.OrdinalEncoder
al pasar las categorías especificadas manualmente. #12365 por Joris Van den Bossche.Fix Se ha corregido un error en
preprocessing.KBinsDiscretizer
donde el métodotransform
muta el atributo_encoder
. El métodotransform
es ahora seguro para los hilos. #12514 por Hanmin Qin.Fix Se ha corregido un error en
preprocessing.PowerTransformer
donde la transformación de Yeo-Johnson era incorrecta para los parámetros de lambda fuera de[0, 2]
#12522 por Nicolas Hug.Fix Se corrigió un error en
preprocessing.OneHotEncoder
donde falló la transformación cuando se estableció para ignorar cadenas numéricas desconocidas de diferentes longitudes #12471 por Gabriel Marzinotto.API Change El valor predeterminado del argumento
method
enpreprocessing.power_transform
cambiará debox-cox
ayeo-johnson
para que coincida conpreprocessing.PowerTransformer
en la versión 0.23. Un FutureWarning se eleva cuando se utiliza el valor predeterminado. #12317 por Eric Chang.
sklearn.utils
¶
Fix Usar float64 para acumulador medio para evitar problemas de precisión de punto flotante en
preprocessing.StandardScaler
ydecomposition.IncrementalPCA
al usar conjuntos de datos float32. #12338 por bauks.Fix La llamada a
utils.check_array
enpandas.Series
con datos categóricos, que daba un error en 0.20.0, ahora devuelve de nuevo la salida esperada. #12625 por Andreas Müller
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 anp.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 ensklearn.utils
, excepto porutils.parallel_backend
yutils.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.
cluster.MeanShift
(bug fix)decomposition.IncrementalPCA
en Python 2 (bug fix)decomposition.SparsePCA
(bug fix)ensemble.GradientBoostingClassifier
(corrección de errores que afecta las características de importancias)isotonic.IsotonicRegression
(bug fix)linear_model.ARDRegression
(bug fix)linear_model.LogisticRegressionCV
(bug fix)linear_model.OrthogonalMatchingPursuit
(bug fix)linear_model.PassiveAggressiveClassifier
(bug fix)linear_model.PassiveAggressiveRegressor
(bug fix)linear_model.Perceptron
(bug fix)linear_model.SGDClassifier
(bug fix)linear_model.SGDRegressor
(bug fix)metrics.roc_auc_score
(bug fix)metrics.roc_curve
(bug fix)neural_network.BaseMultilayerPerceptron
(bug fix)neural_network.MLPClassifier
(bug fix)neural_network.MLPRegressor
(bug fix)Las notas de lanzamiento v0.19.0 no pudieron mencionar una incompatibilidad hacia atrás con
model_selection.StratifiedKFold
cuandoshuffle=True
debido a #7823.
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
consolver='lbfgs'
ymulti_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
¶
Major Feature
cluster.AgglomerativeClustering
ahora soporta un clúster de Enlace único a través delinkage='single'
. #9372 por Leland McInnes y Steve Astels.Feature
cluster.KMeans
ycluster.MiniBatchKMeans
ahora soportan pesos de muestra mediante el nuevo parámetrosample_weight
en la funciónfit`
. #10933 de Johannes Hansen.Efficiency
cluster.KMeans
,cluster.MiniBatchKMeans
ycluster.k_means
pasaron conalgorithm='full'
ahora fuerza el pedido mayor de filas, mejorando el tiempo de ejecución. #10471 por Gaurav Dhingra.Efficiency
cluster.DBSCAN
ahora está paralelizado de acuerdo an_jobs
independientemente delalgoritmo
. #8003 por Joël Billaud.Enhancement
cluster.KMeans
ahora da una advertencia si el número de clústeres distintos encontrados es menor quen_clusters
. Esto puede ocurrir cuando el número de puntos distintos en el conjunto de datos es realmente menor que el número de cluster que está buscando. #10059 por Christian Braune.Fix Se ha corregido un error por el que el método
fit
decluster.AffinityPropagation
almacenaba los centros de los clusters como una matriz 3d en lugar de 2d en caso de no convergencia. Para la misma clase, se ha corregido un comportamiento indefinido y arbitrario en caso de datos de entrenamiento en los que todas las muestras tenían la misma similitud. #9612. Por Jonatan Samoocha.Fix Se corrigió un error en
cluster.spectral_clustering
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..Fix Se corrigió un error en
cluster.k_means_elkan
donde laiteración
devuelta era 1 menor que el valor correcto. También agregó el atributon_iter_
faltante en la cadena docstring decluster.KMeans
. #11353 de Jeremie du Boisberranger.Fix Se corrigió un error en
cluster.mean_shift
donde las etiquetas asignadas no eran deterministas si había varios clusters con las mismas intensidades. #11901 por Adrin Jalali.API Change Queda obsoleto
pooling_func
parámetro no utilizado encluster.AgglomerativeClustering
. #9875 por Kumar Ashutosh.
sklearn.compose
¶
Nuevo módulo.
Major Feature Se añadió
compose.ColumnTransformer
, que permite aplicar diferentes transformadores a diferentes columnas de arrays o pandas DataFrames. #9012 por Andreas Müller y Joris Van den Bossche, y #11315 por Thomas Fan.Major Feature Se ha añadido el
compose.TransformedTargetRegressor
que transforma el objetivo y antes de encajar un modelo de regresión. Las predicciones se mapean al espacio original a través de una transforma inversa. #9041 por Andreas Müller y Guillaume Lemaitre.
sklearn.covariance
¶
Efficiency Mejoras en el tiempo de ejecución en
covariance.GraphicalLasso
. #9858 por Steven Brown.API Change El
covariance.graph_lasso
,covariance.GraphLasso
ycovariance.GraphLassoCV
han sido renombrados acovariance.graphical_lasso
,covariance.GraphicalLasso
ycovariance.GraphicalLassoCV
respectivamente y será eliminado en la versión 0.22. #9993 por Artiem Krinitsyn
sklearn.datasets
¶
Major Feature Se añadió
datasets.fetch_openml
para obtener conjuntos de datos de OpenML. OpenML es una plataforma libre y abierta para compartir datos y se utilizará en lugar de mldata ya que proporciona mejor disponibilidad de servicio. #9908 por Andreas Müller y Jan N. van Rijn.Feature En
datasets.make_blobs
, ahora se puede pasar una lista al parámetron_samples
para indicar el número de muestras a generar por cada clúster. #8617 por Maskani Filali Mohamed y Konstantinos Katrioplas.Feature Se añadió el atributo
filename
adatasets
que tienen un archivo CSV. #9101 por alex-33 y Maskani Filali Mohamed.Feature Se ha añadido el parámetro
return_X_y
a varios cargadores de conjuntos de datos. #10774 por Chris Catalfo.Fix Corregido un error en
datasets.load_boston
que tenía un punto de datos erróneo. #10795 por Takeshi Yoshizawa.Fix Se ha corregido un error en
datasets.load_iris
que tenía dos puntos de datos erróneos. #11082 por Sadhana Srinivasan y Hanmin Qin.Fix Se ha corregido un error en
datasets.fetch_kddcup99
, donde los datos no se barajaban correctamente. #9731 por Nicolas Goix.Fix Se ha corregido un error en
datasets.make_circles
, por el que no se podía generar un número impar de puntos de datos. #10045 por Christian Braune.API Change Obsoleto
sklearn.datasets.fetch_mldata
que se eliminará en la versión 0.22. mldata.org ya no está operativo. Hasta su eliminación seguirá siendo posible cargar conjuntos de datos en caché. #11466 por Joel Nothman.
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 exponenormalize_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 cason_components=None
fue adaptado en consecuencia. #6452. Por Wally Gauze.Fix Se corrigió un error donde el método
partial_fit
dedescomposició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 cason_components=None
ahora selecciona el mínimo den_samples
yn_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 cuandon_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
endiscriminant_analysis
. #10898 por Nanxin Chen.
sklearn.dummy
¶
Feature
dummy.DummyRegressor
ahora tiene una opciónreturn_std
en su métodopredict
. Las desviaciones estándar devueltas serán ceros.Feature
dummy.DummyClassifier
ydummy.DummyRegressor
ahora solo requiere que X sea un objeto con longitud o forma finita. #9832 por Vrishank Bhardwaj.Feature
dummy.DummyClassifier
ydummy.DummyRegressor
ahora pueden ser anotados sin proporcionar muestras de prueba. #11951 de Rüdiger Busche.
sklearn.ensemble
¶
Feature
ensemble.BaggingRegressor
yensemble.BaggingClassifier
ahora puede encajar con valores faltantes/no finitos en X y/o multi-salida Y para soportar tuberías de envoltura que realizan su propia imputación. #9707 por Jimmy Wan.Feature
ensemble.GradientBoostingClassifier
yensemble.GradientBoostingRegressor
ahora soportan detenerse temprano a través den_iter_no_change
,validation_fraction
ytol
. #7071 por Raghav RVFeature Se añadió el parámetro
named_estimators_
enensemble.VotingClassifier
para acceder a estimadores equipados. #9157 por Herilalaina Rakotoarison.Fix Se corrigió un error al ajustar
ensemble.GradientBoostingClassifier
oensemble.GradientBoostingRegressor
conwarm_start=True
que previamente aumentó un fallo de segmentación debido a una no conversión de la matriz CSC en formato CSR esperada pordecisión_función
. Del mismo modo, los arreglos ordenados por Fortrans se convierten en arreglos ordenados por C en un caso dado. #9991 por Guillaume Lemaitre.Fix Se corrigió un error en
ensemble.GradientBoostingRegressor
yensemble.GradientBoostingClassifier
para tener importancia de características resumidas y luego normalizadas, en lugar de normalizar sobre una base por árbol. El comportamiento anterior sobreponderó la importancia de Gini de las características que aparecen en etapas posteriores. Este problema solo afectó a las importaciones de características. #11176 por Gil Forsyth.API Change El valor predeterminado del parámetro
n_estimators
deensemble.RandomForestClassifier
,ensemble.RandomForestRegressor
,ensemble.ExtraTreesClassifier
,ensemble.ExtraTreesRegressor
, yensemble.RandomTreesEmbedding
cambiarán de 10 en la versión 0.20 a 100 en 0.22. Se eleva un FutureWarning cuando se utiliza el valor predeterminado. #11542 por Anna Ayzenshtat.API Change Clases derivadas de
ensemble.BaseBagging
. El atributoestimators_samples_
devolverá una lista de arreglos con los índices seleccionados para cada bootstrap en lugar de una lista de arreglos con la máscara de las muestras seleccionadas para cada bootstrap. Los índices permiten repetir las muestras mientras que la máscara no permite esta funcionalidad. #9524 by Guillaume Lemaitre.Fix
ensemble.BaseBagging
donde no se podía reproducir de forma determinista el resultado defit
utilizando los atributos del objeto cuando se establecerandom_state
. #9723 por Guillaume Lemaitre.
sklearn.feature_extraction
¶
Feature Habilitar la llamada a get_feature_names en
feature_extraction.text.CountVectorizer
no adaptada e inicializada con un vocabulario. #10908 por Mohamed Maskani.Enhancement
idf_
ahora se puede establecer en unfeature_extraction.text.TfidfTransformer
. #10899 por Sergey Melderis.Fix Se ha corregido un error en
feature_extraction.image.extract_patches_2d
que lanzaba una excepción simax_patches
era mayor o igual que el número de todos los fragmentos posibles en lugar de devolver simplemente el número de fragmentos posibles. #10101 por Varun AgrawalFix Se ha corregido un error en
feature_extraction.text.CountVectorizer
,feature_extraction.text.TfidfVectorizer
,feature_extraction.text. HashingVectorizer
para soportar la indexación de matrices dispersas de 64 bits necesaria para procesar grandes conjuntos de datos con más de 2-10⁹ tokens (palabras o n-gramas). #9147 por Claes-Fredrik Mannby y Roman Yurchak.Fix Se ha corregido un error en
feature_extraction.text.TfidfVectorizer
que ignoraba el parámetrodtype
. Además,feature_extraction.text.TfidfTransformer
preservarádtype
para flotantes y lanzará una advertencia sidtype
solicitado es entero. #10441 por Mayur Kulkarni y Guillaume Lemaitre.
sklearn.feature_selection
¶
Feature Añadida la funcionalidad de seleccionar K mejores características a
feature_selection.SelectFromModel
. #6689 por Nihar Sheth y Quazi Rahman.Feature Añadido el parámetro
min_features_to_select
afeature_selection.RFECV
para limitar el número de características evaluadas. #11293 por Brent Yi.Feature
feature_selection.RFECV
’s fit method now supports groups. #9656 by Adam Greenhall.Fix Se ha corregido el cálculo de
n_features_to_compute
para casos de borde con puntuaciones de CV empatadas enfeature_selection.RFECV
. #9222 por Nick Hoh.
sklearn.gaussian_process
¶
Efficiency En
gaussian_process.GaussianProcessRegressor
, el métodopredict
es más rápido cuando se utilizareturn_std=True
en particular cuando se llama varias veces seguidas. #9234 por andrewww y Minghui Liu.
sklearn.impute
¶
Nuevo módulo, adoptando
preprocessing.Imputer
comoimpute.SimpleImputer
con cambios menores (ver bajo preprocesamiento abajo).Major Feature Añadido
impute.MissingIndicator
que genera un indicador binario para valores faltantes. #8075 por Maniteja Nandana y Guillaume Lemaitre.Feature El
impute.SimpleImputer
tiene una nueva estrategia,'constant'
, para completar los valores faltantes con uno fijo, dado por el parámetrofill_value
. Esta estrategia soporta datos numéricos y no numéricos, al igual que la estrategia'most_frequent'
ahora. #11211 por Jeremie du Boisberranger.
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
¶
Feature
linear_model.SGDClassifier
,linear_model.SGDRegressor
,linear_model.PassiveAggressiveClassifier
,linear_model.PassiveAggressiveRegressor
ylinear_model.Perceptron
ahora expone los parámetrosearly_stopping
,validation_fraction
yn_iter_no_change
, para detener el monitoreo de optimización de la puntuación en un conjunto de validación. Una nueva estrategia de aprendizaje"adaptativa"
divide la tasa de aprendizaje entre 5 cada vez que los epoches consecutivosn_iter_no_change
fallan al mejorar el modelo. #9043 por Tom Dupre la Tour.Feature Añade el parámetro
sample_weight
al método de ajuste delinear_model.BayesianRidge
para la regresión lineal ponderada. #10112 por Peter St. Juan.Fix Se ha corregido un error en
logistic.logistic_regression_path
para asegurarse de que los coeficientes devueltos son correctos cuandomulticlass='multinomial'
. Anteriormente, algunos de los coeficientes se anularían entre sí, lo que provocaría resultados incorrectos enlinear_model.LogisticRegressionCV
. #11724 por Nicolas Hug.Fix Se corrigió un error en
linear_model.LogisticRegression
donde al usar el parámetromulti_class='multinomial'
, el métodopredict_proba
estaba devolviendo probabilidades incorrectas en el caso de resultados binarios. #9939 por Roger Westover.Fix Se corrigió un error en
linear_model.LogisticRegressionCV
donde el métodoscore
siempre calcula la precisión, no la métrica dada por el parámetroscoring
. #10998 por Thomas Fan.Fix Se corrigió un error en
linear_model.LogisticRegressionCV
donde la estrategia “ovr” siempre se utilizó para calcular las puntuaciones de validación cruzada en la configuración de múltiples clases, incluso si se estableció'multinomial'
. #8720 por William de Vazelhes.Fix Se corrigió un error en
linear_model.OrthogonalMatchingPursuit
que se rompió al configurarnormalize=False
. #10071 por Alexandre Gramfort.Fix Se corrigió un error en
linear_model.ARDRegression
que causó estimaciones incorrectamente actualizadas para la desviación estándar y los coeficientes. #10153 por Jörg Döpfert.Fix Se corrigió un error en
linear_model.ARDRegression
ylinear_model.BayesianRidge
que causó predicciones de NaN al encajar con un objetivo constante. #10095 por Jörg Döpfert.Fix Se corrigió un error en
linear_model.RidgeClassifierCV
donde el parámetrostore_cv_values
no fue implementado aunque fue documentado encv_values
como una manera de configurar el almacenamiento de valores de validación cruzada para diferentes alfas. #10297 por Mabel Villalba-Jiménez.Fix Se corrigió un error en
linear_model.ElasticNet
que causaba que la entrada fuera anulada cuando se usaba el parámetrocopy_X=True
ycheck_input=False
. #10581 por Yacine Mazari.Fix Se corrigió un error en
sklearn.linear_model.Lasso
donde el coeficiente tenía una forma incorrecta cuandofit_intercept=False
. #10687 por Martin Hahn.Fix Se corrigió un error en
sklearn.linear_model.LogisticRegression
donde elmulti_class='multinomial'
con salida binariacon warm_start=True
#10836 por Aishwarya Srinivasan.Fix Se corrigió un error en
linear_model.RidgeCV
donde el uso de enteroalphas
planteó un error. #10397 por Mabel Villalba-Jiménez.Fix Se corrigió la condición que desencadena el cálculo de huecos (gap) en
linear_model.Lasso
ylinear_model.ElasticNet
cuando se trabaja con matrices dispersas. #10992 por Alexandre Gramfort.Fix Se corrigió un error en
linear_model.SGDClassifier
,linear_model.SGDRegressor
,linear_model.PassiveAggressiveClassifier
,linear_model.PassiveAggressiveRegressor
ylinear_model.Perceptron
, donde el criterio de parada estaba deteniendo el algoritmo antes de la convergencia. Un parámetron_iter_no_change
fue añadido y establecido por defecto a 5. El comportamiento anterior es equivalente a ajustar el parámetro a 1. #9043 por Tom Dupre la Tour.Fix Se ha corregido un error por el que los estimadores en liblinear y libsvm-based fallaban si se les pasaba una matriz scipy.sparse con índices de 64 bits. Ahora lanzan un ValueError. #11327 por Karan Dhingra y Joel Nothman.
API Change Los valores por defecto de los parámetros
solver
ymulti_class
delinear_model.LogisticRegression
cambiará respectivamente de'liblinear'
y'ovr'
en la versión 0. 0 a'lbfgs'
y'auto'
en la versión 0.22. Se eleva un FutureWarning cuando se utilizan los valores por defecto. #11905 por Tom Dupre la Tour y Joel Nothman.API Change Desaprobar la opción
positive=True
enlinear_model.Lars
ya que la implementación subyacente está rota. Utilizalinear_model.Lasso
en su lugar. #9837 por Alexandre Gramfort.API Change
n_iter_
puede variar de las versiones anteriores enlinear_model.LogisticRegression
consolver='lbfgs'
ylinear_model.HuberRegressor
. Para Scipy <= 1.0. , el optimizador puede realizar más del número máximo de iteraciones solicitadas. Ahora ambos estimadores reportarán como mucho iteracionesmax_iter
incluso si se realizaron más. #10723 por Joel Nothman.
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ónmanifold.t_sne.trustworthiness
. En su lugar, el nuevo parámetrometric
debe utilizarse con cualquier métrica compatible incluyendo “precomputed”, en cuyo caso la matriz de entradaX
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ónmanifold.t_sne.trustworthiness
. En su lugar, el nuevo parámetrometric
debe utilizarse con cualquier métrica compatible incluyendo “precomputed”, en cuyo caso la matriz de entradaX
debería ser una matriz de distancias paralelas o distancias cuadradas. #9775 por William de Vazelhes.
sklearn.metrics
¶
Major Feature Se añadió la métrica
metrics.davies_bouldin_score
para la evaluación de los modelos de clúster sin una verdad terrenal. #10827 por Luis Osa.Major Feature Se añadió la métrica
metrics.balanced_accuracy_score
y una puntuación'balanced_accuracy'
correspondiente para la clasificación binaria y multiclase. #8066 por @xyguo y Aman Dalmia, y #10587 por Joel Nothman.Feature La AUC parcial está disponible a través del parámetro
max_fpr
enmetrics.roc_auc_score
. #3840 por Alexander Niederbühl.Feature Una puntuación basada en
metrics.brier_score_loss
también está disponible. #9521 por Hanmin Qin.Feature Se ha añadido un control sobre la normalización en
metrics.normalized_mutual_info_score
ymetrics.adjusted_mutual_info_score
mediante el parámetroaverage_method
. En la versión 0.22, el normalizador por defecto para cada uno se convertirá en la media aritmética de las entradas de cada clustering. #11124 por Arya McCarthy.Feature Se ha añadido el parámetro
output_dict
enmetrics.classification_report
para devolver las estadísticas de clasificación como diccionario. #11160 por Dan Barkhorn.Feature
métricas.classification_report
ahora reporta todos los promedios aplicables sobre los datos dados, incluyendo el promedio micro, macro y ponderado, así como muestras promedio para los datos multietiqueta. #11679 por Alexander Pacha.Feature
metrics.average_precision_score
ahora soporta el binarioy_true
distinto de{0, 1}
o{-1, 1}
a través del parámetropos_label
. #9980 por Hanmin Qin.Feature
metrics.label_ranking_average_precision_score
ahora soportasample_weight
. #10845 por Jose Perez-Parras Toledano.Feature Añadir parámetro
dense_output
ametrics.pairwise.linear_kernel
. Cuando False y ambas entradas sean dispersas, devolverán una matriz dispersa. #10999 por Taylor G Smith.Efficiency
metrics.silhouette_score
ymetrics.silhouette_samples
son más eficientes en memoria y se ejecutan más rápido. Esto evita algunos bloqueos y MemoryErrors reportados. #11135 por Joel Nothman.Fix Se ha corregido un error en
metrics.precision_recall_fscore_support
cuandorange(n_labels)
truncado es pasado como valor paralabels
. #10377 por Gaurav Dhingra.Fix Se corrigió un error debido a un error de punto flotante en
metrics.roc_auc_score
con pesos no enteros. #9786 por Hanmin Qin.Fix Se corrigió un error en el que
metrics.roc_curve
a veces comienza en el eje Y en lugar de (0, 0), lo cual es inconsistente con el documento y otras implementaciones. Ten en cuenta que esto no influirá en el resultado demétricas.roc_auc_score
#10093 por alexryndin y Hanmin Qin.Fix Se ha corregido un error para evitar el desbordamiento de enteros. Producto lanzado a 64 bits enteros en
metrics.mutual_info_score
. #9772 por Kumar Ashutosh.Fix Se ha corregido un error donde
metrics.average_precision_score
a veces devuelvenan
cuandosample_weight
contiene 0. #9980 por Hanmin Qin.Fix Se corrigió un error en
metrics.fowlkes_mallows_score
para evitar el desbordamiento de enteros. Se emitió valor de retorno decontingency_matrix
aint64
y producto computado de raíces cuadradas en lugar de raíz cuadrada del producto. #9515 por Alan Liddell y Manh Dao.API Change Desaprobar el parámetro
reorder
enmetrics.auc
ya que ya no es requerido parametrics.roc_auc_score
. Además, el uso dereorder=True
puede ocultar errores debido a un error de punto flotante en la entrada. #9851 por Hanmin Qin.API Change En
metrics.normalized_mutual_info_score
ymetrics.adjusted_mutual_info_score
, se advierte queaverage_method
tendrá un nuevo valor por defecto. En la versión 0.22, el normalizador por defecto para cada uno se convertirá en la media aritmética de las entropías de cada agrupación. Actualmente,metrics.normalized_mutual_info_score
utiliza el valor por defecto demétodo_de_promedio='geométrico'
, ymetrics.adjusted_mutual_info_score
utiliza el valor por defecto demétodo_de_promedio='máximo'
para coincidir con sus comportamientos en la versión 0.19. #11124 por Arya McCarthy.API Change El parámetro
batch_size
parametrics.pairwise_distances_argmin_min
ymetrics.pairwise_distances_argmin
está obsoleto para ser eliminado en la v0.22. Ya no tiene ningún efecto, ya que el tamaño del lote está determinado por la configuración global deworking_memory
. Ver Limitación de la memoria de trabajo. #10280 por Joel Nothman y Aman Dalmia.
sklearn.mixture
¶
Feature Añadida la función fit_predict a
mixture.GaussianMixture
ymixture.GaussianMixture
, que es esencialmente equivalente a llamar a fit y predict. #10336 por Shu Haoran y Andrew Peng.Fix Se ha corregido un error en
mixture.BaseMixture
por el que al informen_iter_
le faltaba una iteración. Afectaba amixture.GaussianMixture
ymixture.BayesianGaussianMixture
. #10740 por Erich Schubert y Guillaume Lemaitre.Fix Se ha corregido un error en
mixture.BaseMixture
y sus subclasesmixture.GaussianMixture
ymixture.BayesianGaussianMixture
donde ellower_bound_
no era el límite inferior máximo de todas las inicializaciones (cuandon_init > 1
), sino sólo el límite inferior de la última inicialización. #10869 por Aurélien Géron.
sklearn.model_selection
¶
Feature Añadir el parámetro
return_estimator
enmodel_selection.cross_validate
para devolver los estimadores ajustados en cada división. #9686 por Aurélien Bellet.Feature El nuevo atributo
refit_time_
se almacenará enmodel_selection.GridSearchCV
ymodel_selection.RandomizedSearchCV
sirefit
se establece comoTrue
. Esto permitirá medir el tiempo completo que se tarda en realizar la optimización de los hiperparámetros y el reajuste del mejor modelo en todo el conjunto de datos. #11310 by Matthias Feurer.Feature Exponer el parámetro
error_score
enmodel_selection.cross_validate
,model_selection.cross_val_score
,model_selection.learning_curve
ymodel_selection.validation_curve
para controlar el comportamiento que se desencadena cuando se produce un error enmodel_selection._fit_and_score
. #11576 by Samuel O. Ronsin.Feature
BaseSearchCV
tiene ahora una interfaz experimental y privada para soportar estrategias de búsqueda de parámetros personalizados, a través de su método_run_search
. Consulta las implementaciones enmodel_selection.GridSearchCV
ymodel_selection.RandomizedSearchCV
y, por favor, proporciona tu opinión si lo utilizas. Ten en cuenta que no aseguramos la estabilidad de esta API más allá de la versión 0.20. #9599 by Joel NothmanEnhancement Añadir un mensaje de error mejorado en
model_selection.cross_val_score
cuando se pasan múltiples métricas en la palabra clavescoring
. #11006 por Ming Li.API Change El número por defecto de pliegues de validación cruzada
cv
y el número por defecto de divisionesn_splits
en los divisores tipomodel_selection.KFold
cambiarán de 3 a 5 en 0.22 ya que 3 pliegues tienen mucha varianza. #11557 por Alexandre Boucaud.API Change El parámetro por defecto
iid
demodel_selection.GridSearchCV
ymodel_selection.RandomizedSearchCV
cambiará deTrue
aFalse
en la versión 0.22 para corresponder a la definición estándar de validación cruzada, y el parámetro se eliminará en la versión 0.24 por completo. Este parámetro tiene mayor importancia práctica cuando los tamaños de los diferentes conjuntos de pruebas en la validación cruzada son muy desiguales, es decir, en las estrategias de CV basadas en grupos. #9085 by Laurent Direr and Andreas Müller.API Change El valor por defecto del parámetro
error_score
enmodel_selection.GridSearchCV
ymodel_selection.RandomizedSearchCV
cambiará anp.NaN
en la versión 0.22. #10677 por Kirill Zhdanovich.API Change Se ha cambiado la excepción ValueError lanzada en
model_selection.ParameterSampler
a un UserWarning para el caso en que la clase se instancie con un valor den_iter
mayor que el espacio total de parámetros en la parrilla de parámetros.n_iter
actúa ahora como límite superior de las iteraciones. #10982 by Juliet LawtonAPI Change La entrada no válida para
model_selection.ParameterGrid
ahora genera TypeError. #10928 por Solutus Immensus
sklearn.multioutput
¶
Major Feature Añadida
multioutput.RegressorChain
para la regresión multiobjetivo. #9257 por Kumar Ashutosh.
sklearn.naive_bayes
¶
Major Feature Añadida
naive_bayes.ComplementNB
, que implementa el clasificador Complement Naive Bayes descrito en Rennie et al. (2003). #8190 por Michael A. Alcorn.Feature Añadir el parámetro
var_smoothing
ennaive_bayes.GaussianNB
para dar un control preciso sobre el cálculo de las varianzas. #9681 por Dmitry Mottl.Fix Se ha corregido un error en
naive_bayes.GaussianNB
que generaba un error incorrecto para la lista anterior que sumaba 1. #10005 por Gaurav Dhingra.Fix Se ha corregido un error en
naive_bayes.MultinomialNB
que no aceptaba pseudocuentas con valor vectorial (alpha). #10346 por Tobias Madsen
sklearn.neighbors
¶
Efficiency
neighbors.RadiusNeighborsRegressor
yneighbors.RadiusNeighborsClassifier
ahora se paralelizan segúnn_jobs
independientemente delalgoritmo
. #10887 por Joël Billaud.Efficiency
Nearest neighbors
los métodos de consulta son ahora más eficientes en memoria cuandoalgorithm='brute'
. #11136 por Joel Nothman y Aman Dalmia.Feature Añadir el parámetro
sample_weight
al método de ajuste deneighbors.KernelDensity
para permitir la ponderación en la estimación de la densidad del núcleo. #4394 por Samuel O. Ronsin.Feature Detección de novedades con
neighbors.LocalOutlierFactor
: Añadir un parámetronovelty
aneighbors.LocalOutlierFactor
. Cuandonovelty
se establece como True,neighbors.LocalOutlierFactor
puede utilizarse para la detección de novedades, es decir, para predecir sobre nuevos datos no vistos. Los métodos de predicción disponibles sonpredict
,decision_function
yscore_samples
. Por defecto,novelty
está establecido enFalse
, y sólo está disponible el métodofit_predict
. Por Albert Thomas.Fix Se ha corregido un error en
neighbors.NearestNeighbors
por el que el ajuste de un modelo NearestNeighbors falla cuando a) la métrica de distancia utilizada es una llamada y b) la entrada al modelo NearestNeighbors es dispersa. #9579 por Thomas Kober.Fix Corregido un error para que
predict
enneighbors.RadiusNeighborsRegressor
pueda manejar conjuntos de vecinos vacíos cuando se usan pesos no uniformes. También se genera una nueva advertencia cuando no se encuentran vecinos para las muestras. #9655 por Andreas Bjerre-Nielsen.Fix Efficiency Se ha corregido un error en la construcción de
KDTree
que resulta en tiempos de construcción y consulta más rápidos. #11556 por Jake VanderPlasFix Se ha corregido un error en
neighbors.KDTree
yneighbors.BallTree
por el que los objetos de árbol decapados cambiaban su tipo a la superclaseBinaryTree
. #11774 por Nicolas Hug.
sklearn.neural_network
¶
Feature Añadir el parámetro
n_iter_no_change
enneural_network.BaseMultilayerPerceptron
,neural_network.MLPRegressor
, yneural_network.MLPClassifier
para dar control sobre el número máximo de épocas para no cumplir con la mejora detol
. #9456 por Nicholas Nadeau.Fix Se ha corregido un error en
neural_network.BaseMultilayerPerceptron
,neural_network.MLPRegressor
, yneural_network.MLPClassifier
con el nuevo parámetron_iter_no_change
ahora en 10 desde el 2 previamente codificado. #9456 por Nicholas Nadeau.Fix Se ha corregido un error en
neural_network.MLPRegressor
por el que el ajuste abandonaba inesperadamente antes de tiempo debido a mínimos locales o fluctuaciones. #9456 por Nicholas Nadeau
sklearn.pipeline
¶
Feature El método
predict
depipeline.Pipeline
ahora pasa los argumentos de las palabras clave al último estimador del pipeline, permitiendo el uso de parámetros comoreturn_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
¶
Major Feature Ampliado
preprocessing.OneHotEncoder
para permitir la codificación de características categóricas de cadena como una matriz numérica utilizando un esquema de codificación de una sola vez (o ficticia), y añadidopreprocessing.OrdinalEncoder
para convertir a enteros ordinales. Estas dos clases ahora manejan la codificación de todos los tipos de características (también maneja características con valores de cadena) y deriva las categorías basadas en los valores únicos de las características en lugar del valor máximo de las mismas. #9151 y #10521 por Vighnesh Birodkar y Joris Van den Bossche.Major Feature Añadido
preprocessing.KBinsDiscretizer
para convertir las características continuas en características categóricas o codificadas en un punto. #7668, #9647, #10195, #10192, #11272, #11467 y #11505. por Henry Lin, Hanmin Qin, Tom Dupre la Tour y Giovanni Giuseppe Costa.Major Feature Añadido
preprocessing.PowerTransformer
, que implementa las transformaciones de potencia de Yeo-Johnson y Box-Cox. Las transformaciones de potencia intentan encontrar un conjunto de transformaciones paramétricas en función de las características para asignar aproximadamente los datos a una distribución gaussiana centrada en cero y con varianza unitaria. Esto es útil como una transformación estabilizadora de la varianza en situaciones donde la normalidad y la homocedasticidad son deseables. #10210 por Eric Chang y Maniteja Nandana, y #11520 por Nicolas Hug.Major Feature Los valores NaN se ignoran y se tratan en los siguientes métodos de preprocesamiento:
preprocessing.MaxAbsScaler
,preprocessing.MinMaxScaler
,preprocessing.RobustScaler
,preprocessing.StandardScaler
,preprocessing.PowerTransformer
,preprocessing.QuantileTransformer
ypreprocessing. maxabs_scale
,preprocessing.minmax_scale
,preprocessing.robust_scale
,preprocessing.scale
,preprocessing.power_transform
,preprocessing. quantile_transform
respectivamente en los temas #11011, #11005, #11308, #11206, #11306, y #10437. Por Lucija Gregov y Guillaume Lemaitre.Feature
preprocessing.PolynomialFeatures
ahora soporta entrada dispersa. #10452 por Aman Dalmia y Joel Nothman.Feature
preprocessing.RobustScaler
ypreprocessing.robust_scale
pueden ajustarse usando matrices dispersas. #11308 por Guillaume Lemaitre.Feature
preprocessing.OneHotEncoder
ahora admite el método get_feature_names para obtener los nombres de características transformadas. #10181 por Nirvan Anjirbag y Joris Van den Bossche.Feature Se ha añadido un parámetro
check_inverse
apreprocessing.FunctionTransformer
para asegurar quefunc
yinverse_func
son la inversa de la otra. #9399 por Guillaume Lemaitre.|El método
transform
desklearn.preprocessing.MultiLabelBinarizer
ahora ignora cualquier clase desconocida. Se lanza una advertencia indicando las clases desconocidas encontradas que se ignoran. #10913 by Rodrigo Agundez.Fix Corregidos errores en
preprocessing.LabelEncoder
que a veces lanzaba errores cuando se llamaba atransform
oinverse_transform
con arrays vacíos. #10458 por Mayur Kulkarni.Fix Corregir ValueError en
preprocessing.LabelEncoder
al usarinverse_transform
en etiquetas no vistas. #9816 por Charlie Newey.Fix Corregir error en
preprocessing.OneHotEncoder
que descartaba eldtype
cuando devolvía una salida de matriz dispersa. #11042 por Daniel Morales.Fix Corregir
fit
ypartial_fit
enpreprocssing.StandardScaler
en el caso raro cuandowith_mean=False
ywith_std=False
que se bloquearon al llamar aencajar
más de una vez y dar resultados inconsistentes paramean_
si la entrada era una matriz esparse o una matriz densa.mean_
se establecerá enNinguno
con entradas dispersas y densas.n_samples_seen_
también será reportado para ambos tipos de entrada. #11235 por Guillaume Lemaitre.API Change Obsoletos los parámetros
n_values
ycategorical_features
y los atributosactive_features_
,feature_indices_
yn_values_
depreprocessing.OneHotEncoder
. El parámetron_values
puede ser reemplazado por el nuevo parámetrocategories
, y los atributos con el nuevo atributocategories_
. Seleccionando las características categóricas con el parámetrocategorical_features
ahora es mejor soportado usandocompose.ColumnTransformer
. #10521 por Joris Van den Bossche.API Change Obsoleto
preprocessing.Imputer
y mover el módulo correspondiente aimpute.SimpleImputer
. #9726 por Kumar Ashutosh.API Change El parámetro
axis
que estaba enpreprocessing.Imputer
ya no está presente enimpute.SimpleImputer
. El comportamiento es equivalente aaxis=0
(impute a lo largo de las columnas). La imputación en sentido contrario puede realizarse con FunctionTransformer (por ejemplo,FunctionTransformer(lambda X: SimpleImputer().fit_transform(X. ).T)
). #10829 por Guillaume Lemaitre y Gilberto Olimpio.API Change El marcador NaN para los valores faltantes ha sido cambiado entre el
preprocessing.Imputer
y elimpute.SimpleImputer
.missing_values='NaN'
ahora debería sermissing_values=np.nan
. #11211 por Jeremie du Boisberranger.API Change En
preprocessing.FunctionTransformer
, el predeterminado devalidate
será deTrue
aFalse
en 0.22. #10655 por Guillaume Lemaitre.
sklearn.svm
¶
Fix Se corrigió un error en
svm.SVC
donde cuando el argumentokernel
es unicode en Python2, el métodopredict_proba
estaba levantando un TypeError inesperado dado entradas densas. #10412 por Jiongyan Zhang.API Change Desaprobar el parámetro
random_state
ensvm.OneClassSVM
ya que la implementación subyacente no es aleatoria. #9497 por Albert Thomas.API Change El valor predeterminado del parámetro
gamma
desvm.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
ytree. criterion.RegressionCriterion
ahora puede ser cimportado y extendido. #10325 por Camil Staps.Fix Se corrigió un error en
tree.BaseDecisionTree
consplitter="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
¶
Feature
utils.check_array
yutils.check_X_y
ahora tienenaccept_large_sparse
para controlar si las matrices scipy.sparce deben rechazarse de análisis con índices de 64-bits. #11327 por Karan Dhingra y Joel Nothman.Efficiency Fix Evita copiar los datos en
utils.check_array
cuando los datos de entrada son un mapa de mem(ycopy=False
). #10663 por Arthur Mensch y Loïc Estève.API Change
utils.check_array
produce unFutureWarning
indicando que los arreglos de bytes/strings se interpretarán como números decimales que empiezan en la versión 0. 2. #10229 por Ryan Lee
Múltiples módulos¶
Feature API Change API de detección de valores atípicos más coherente: Agrega un método
score_samples
ensvm.OneClassSVM
,ensemble.IsolationForest
,neighbors.LocalOutlierFactor
,covariance.EllipticEnvelope
. Permite acceder a las funciones de puntuación en bruto de los documentos originales. Un nuevo parámetrooffset_
permite enlazar los métodosscore_samples
ydecision_function
. El parámetrocontamination
de los métodosensemble.IsolationForest
yneighbors.LocalOutlierFactor
decision_function
se utiliza para definir esteoffset_
tal que los valores atípicos (respectivamente inliers) tengan valores negativos (respectivamente positivos) dedecision_function
. Por defecto,contamination
se mantiene sin cambios a 0.1 durante un período de obsolescencia. En la versión 0. 2, se establecerá en «auto», por lo que se utilizarán compensaciones de puntuación específicas del método. En el métododecision_function
decovariance.EllipticEnvelope
, el parámetroraw_values
queda obsoleto, ya que en 0.22 se devolverá siempre la distancia de Mahalanobis desplazada. #9015 de Nicolas Goix.Feature API Change Un parámetro
behaviour
ha sido introducido enensemble.IsolationForest
para asegurar la compatibilidad con versiones anteriores. En el comportamiento antiguo, ladecisi_function
es independiente del parámetrocontamination
. Así se utiliza un atributo de umbral dependiendo del parámetrocontamination
. En el nuevo comportamiento, ladecisi_function
depende del parámetrocontamination
, de tal manera que 0 se convierte en su umbral natural para detectar los vientres. Establecer comportamiento a «viejo» es obsoleto y no será posible en la versión 0.22. Al margen, el parámetro de comportamiento será eliminado en 0.24. #11553 por Nicolas Goix.API Change Se añadió una advertencia de convergencia a
svm.LinearSVC
ylinear_model.LogisticRegression
cuandoverbose
está establecido en 0. #10881 por Alexandre Sevin.API Change Se ha cambiado el tipo de advertencia de
UserWarning
aexceptions.ConvergenceWarning
por convergencia fallida enlinear_model.logistic_regression_path
,linear_model.RANSACRegressor
,linear_model.ridge_regression
,gaussian_process.GaussianProcessRegressor
,gaussian_process.GaussianProcessClassifier
,decomposition.fastica
,cross_decomposition.PLSCanonical
,cluster.AffinityPropagation
, ycluster.Birch
. #10306 por Jonathan Siebert.
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 nuevametrics.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
yfeature_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 BoucaudFix 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 de1
aNone
en todas las funciones y clases relacionadas.n_jobs=None
significaunset
. Generalmente será interpretado comon_jobs=1
, a menos que eljoblib.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.
Comprobaciones de transformadores ahora se aplican si el estimador implementa transform, independientemente de si hereda de
sklearn.base.TransformerMixin
. #10474 por Joel Nothman.Ahora se comprueba la consistencia entre decision_function y predicciones categóricas. #10500 por Narine Kokhlikyan.
Permitir que las pruebas en
utils.estimator_checks.check_estimator
prueben funciones que acepten datos combinados. #9701 por Kyle JohnsonPermitir a
utils.estimator_checks.check_estimator
verificar que no hay ninguna configuración privada aparte de parámetros durante la inicialización del estimador. #9378 por Herilalaina RakotoarisonEl conjunto de comprobaciones en
utils.estimator_checks.check_estimator
ahora incluye una prueba decheck_set_params
que comprueba queset_params
es equivalente a pasar parámetros en__init__
y advierte si encuentra validación de parámetros. #7738 por Alvin ChiangAñade pruebas de invariancia para las métricas de racimo. #8102 por Ankita Sinha y Guillaume Lemaitre.
Añade
check_methods_subset_invariance
acheck_estimator
, que comprueba que los métodos de estimación son invariantes si se aplican a un subconjunto de datos. #10428 por Jonathan OhayonAñade pruebas en
utils.estimator_checks.check_estimator
para comprobar que un estimador puede manejar datos de entrada de memmap de solo lectura. #10663 por Arthur Mensch y Loïc Estève.check_sample_weights_pandas_series
ahora usa 8 en lugar de 6 muestras para acomodar el número predeterminado de clústeres encluster.KMeans
. #10933 por Johannes Hansen.Los estimadores ahora se comprueban si
sample_weight=None
equivale asample_weight=np.ones(...)
. #11558 por Sergul Aydore.
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