Versión 0.24.1¶
Enero 2021
Empaquetado¶
Las wheels 0.24.0 de scikit-learn no funcionaban con MacOS <1.15 debido a libomp
. La versión de libomp
utilizada para construir las wheels era demasiado reciente para las versiones más antiguas de macOS. Esta incidencia se ha solucionado para las wheels de scikit-learn en la versión 0.24.1. Las wheels de scikit-learn publicadas en PyPI.org ahora soportan oficialmente macOS 10.13 y posteriores.
Registro de cambios¶
sklearn.metrics
¶
Fix Corregir un error de estabilidad numérica que podía ocurrir en
metrics.adjusted_mutual_info_score
ymetrics.mutual_info_score
con NumPy 1.20+. #19179 por Thomas Fan.
sklearn.semi_supervised
¶
Fix
semi_supervised.SelfTrainingClassifier
acepta ahora metaestimadores (por ejemplo,ensemble.StackingClassifier
). La validación de este estimador se realiza sobre el estimador ajustado, una vez que conocemos la existencia del métodopredict_proba
. #19126 de Guillaume Lemaitre.
Versión 0.24.0¶
Diciembre 2020
Para una breve descripción de los principales aspectos de la versión, consulta Aspectos Destacados de scikit-learn 0.24.
Leyenda para registros de cambios¶
Major Feature : algo grande que antes no podías hacer.
Feature : algo que antes no podías hacer.
Efficiency : una característica existente ahora puede no requerir tanto cálculo o memoria.
Enhancement : una mejora menor variada.
Fix : algo que anteriormente no funcionaba según lo documentado – o según las expectativas razonables – ahora debería funcionar.
API Change : tendrás que cambiar tu código para tener el mismo efecto en el futuro; o una característica será eliminada en el futuro.
Coloca los cambios en su módulo correspondiente.
Modelos cambiados¶
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 modelización (corrección de errores o mejoras), o en los procedimientos de muestreo aleatorio.
Fix El comportamiento de
decomposition.KernelPCA
es ahora más consistente entre datos de 32-bits y 64-bits cuando el kernel tiene autovalores pequeños positivos.Fix
decomposition.TruncatedSVD
se vuelve determinista exponiendo un parámetrorandom_state
.Fix
linear_model.Perceptron
cuandopenalty='elasticnet'
.
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.)
Registro de cambios¶
sklearn.base
¶
Fix
base.BaseEstimator.get_params
ahora generará unAttributeError
si un parámetro no puede ser recuperado como un atributo de instancia. Antes devolvíaNone
. #17448 por Juan Carlos Alfaro Jiménez.
sklearn.calibration
¶
Efficiency
calibration.CalibratedClassifierCV.fit
ahora soporta la paralelización a través dejoblib.Parallel
utilizando el argumenton_jobs
. #17107 por Julien Jerphanion.Enhancement Permite
calibration.CalibratedClassifierCV
usar con el prefijopipeline.Pipeline
donde los datos no sonX
no es array-like, como la matriz dispersa o el dataframe al comienzo. #17546 por Lucy Liu.Enhancement Añadir el parámetro
ensemble
acalibration.CalibratedClassifierCV
, que permite la implementación de la calibración a través de un conjunto de calibradores (método actual) o sólo un calibrador utilizando todos los datos (similar a la característica incorporada de los estimadoressklearn.svm
con el parámetroprobabilities=True
). #17856 por Lucy Liu y Andrea Esuli.
sklearn.cluster
¶
Enhancement
cluster.AgglomerativeClustering
tiene un nuevo parámetrocompute_distances
. Cuando se establece comoTrue
, las distancias entre conglomerados se calculan y se almacenan en el atributodistances_
incluso cuando no se utiliza el parámetrodistance_threshold
. Este nuevo parámetro es útil para producir visualizaciones de dendrogramas, pero introduce una sobrecarga computacional y de memoria. #17984 por Michael Riedmann, Emilie Delattre, y Francesco Casalegno.Enhancement
cluster.SpectralClustering
ycluster.spectral_clustering
tienen un nuevo argumento de palabra claveverbose
. Cuando se establece comoTrue
, se mostrarán mensajes adicionales que pueden ayudar a la depuración. #18052 por Sean O. Stalley.Enhancement Se añadió
cluster.kmeans_plusplus
como función pública. La inicialización de KMeans++ ahora puede ser llamada por separado para generar los centroides iniciales de los conglomerados. #17937 por @g-walshAPI Change Los atributos
counts_
yinit_size_
decluster.MiniBatchKMeans
están obsoletos y se eliminarán en la versión 1.1 (cambio de nombre de la 0.26). #17864 por Jérémie du Boisberranger.
sklearn.compose
¶
Fix
compose.ColumnTransformer
omitirá los transformadores donde el selector de columna es una lista de booleanos que son False. #17616 por Thomas Fan.Fix
compose.ColumnTransformer
ahora muestra el resto en la visualización del diagrama. #18167 por Thomas Fan.Fix
compose.ColumnTransformer
refuerza el conteo estricto y el orden de los nombres de las columnas entrefit
ytransform
lanzando un error en lugar de una advertencia, siguiendo el ciclo de obsolescencia. #18256 por Madhura Jayratne.
sklearn.covariance
¶
API Change Se reemplazó
cv_alphas_
porcv_results_['alphas']
ygrid_scores_
por puntuaciones divididas encv_results_
encovariance.GraphicalLassoCV
.cv_alphas_
ygrid_scores_
se eliminarán en la versión 1.1 (cambio de nombre de la 0.26). #16392 por Thomas Fan.
sklearn.cross_decomposition
¶
Fix Se corregió un error en
cross_decomposition.PLSSVD
que a veces devolvía componentes en el orden de importancia invertido. #17095 por Nicolas Hug.Fix Se corrigió un error en
cross_decomposition.PLSSVD
,cross_decomposition.CCA
, ycross_decomposition.PLSCanonical
, que conducía a predicciones incorrectas paraest.transform(Y)
cuando los datos de entrenamiento son de objetivo simple. #17095 por Nicolas Hug.Fix Aumentada la estabilidad de
cross_decomposition.CCA
#18746 de Thomas Fan.API Change Para
cross_decomposition.NMF
, el valorinit
, cuandoinit=None' y n_components <= min(n_samples, n_features) se cambiará de `'nndsvd'
a'nndsvda'
en 1.1 (cambio de nombre de 0.26). #18525 por Chiara Marmo.API Change Los límites del parámetro
n_componentes
están ahora restringidos:a
[1, min(n_samples, n_features, n_targets)]
, paracross_decomposition.PLSSVD
,cross_decomposition.CCA
, ycross_decomposition.PLSCanonical
.a
[1, n_features]
ocross_decomposition.PLSRegression
.
Se producirá un error en la versión 1.1 (cambio de nombre de la versión 0.26). #17095 por Nicolas Hug.
API Change Para
cross_decomposition.PLSSVD
,cross_decomposition.CCA
, ycross_decomposition.PLSCanonical
, los atributosx_scores_
yy_scores_
han quedado obsoletos y se eliminarán en la versión 1.1 (cambio de nombre de 0.26). Pueden recuperarse llamando atransform
en los datos de entrenamiento. El atributonorm_y_weights
también será eliminado. #17095 por Nicolas Hug.API Change Para
cross_decomposition.PLSRegression
,cross_decomposition.PLSCanonical
,cross_decomposition.CCA
, ycross_decomposition. PLSSVD
, los atributosx_mean_
,y_mean_
,x_std_
yy_std_
han quedado obsoletos y se eliminarán en la versión 1.1 (cambio de nombre de la versión 0.26). #18768 por Maren Westermann.Fix
decomposition.TruncatedSVD
se convierte en determinista utilizandorandom_state
. Controla la inicialización de las ponderaciones del solucionador ARPACK subyacente. :pr:` #18302` por Gaurav Desai y Ivan Panico.
sklearn.datasets
¶
Feature
datasets.fetch_openml
valida ahora la suma de comprobación md5 de los archivos arff descargados o almacenados en caché para garantizar la integridad de los datos. #14800 por Shashank Singh y Joel Nothman.Feature
datasets.fetch_openml
valida ahora la suma de comprobación md5 de los archivos arff descargados o almacenados en caché para garantizar la integridad de los datos. #14800 por Shashank Singh y Joel Nothman.Enhancement
datasets.fetch_openml
ahora permite que el argumentoas_frame
sea “auto”, lo que intenta convertir los datos devueltos a DataFrames de pandas a menos que los datos sean dispersos. #17396 por Jiaxiang.Enhancement
datasets.fetch_covtype
soporta ahora el argumento opcionalas_frame
; cuando se establece en True, los miembrosdata
yframe
del objeto Bunch devuelto son DataFrames de pandas , y el miembrotarget
es una Serie de pandas. #17491 por Alex Liang.Enhancement
datasets.fetch_kddcup99
soporta ahora el argumento opcionalas_frame
; cuando se establece en True, los miembrosdata
yframe
del objeto Bunch devuelto son DataFrames de pandas, y el miembrotarget
es una Serie de pandas. #18280 por Alex Liang y Guillaume Lemaitre.Enhancement
datasets.fetch_20newsgroups_vectorized
ahora soporta la carga como unDataFrame
de pandas estableciendoas_frame=True
. #17499 por Brigitta Sipőcz y Guillaume Lemaitre.API Change El valor por defecto de
as_frame
endatasets.fetch_openml
se ha cambiado de False a “auto”. #17610 por Jiaxiang.
sklearn.decomposition
¶
Enhancement
decomposition.FactorAnalysis
ahora soporta el argumento opcionalrotation
, que puede tomar el valorNone
,'varimax'
o'quartimax'
. #11064 por Jona Sassenhagen.Enhancement
decomposition.NMF
soporta ahora el parámetro opcionalregularization
, que puede tomar los valoresNone
, “components”, “transformation” o “both”, de acuerdo condecomposition.NMF.non_negative_factorization
. #17414 por Bharat Raghunathan.Fix
decomposition.KernelPCA
el comportamiento es ahora más consistente entre los datos de entrada de 32-bits y 64-bits cuando el kernel tiene autovalores pequeños positivos. Los autovalores pequeños positivos no se descartaban correctamente para los datos de 32 bits. #18149 por Sylvain Marié.Fix Arreglado
decomposition.SparseCoder
para que siga la API de scikit-learn y soporte la clonación. El atributocomponents_
está obsoleto en la versión 0.24 y será eliminado en la 1.1 (cambio de nombre de la versión 0.26). Este atributo era redundante con el atributodictionary
y el parámetro constructor. #17679 por Xavier Dupré.Fix
TruncatedSVD.fit_transform
devuelve consistentemente lo mismo queTruncatedSVD.fit
seguido deTruncatedSVD.transform
. #18528 por Albert Villanova del Moral y Ruifeng Zheng.
sklearn.discriminant_analysis
¶
Enhancement
discriminant_analysis.LinearDiscriminantAnalysis
ahora puede utilizar la estimación de covarianza personalizada estableciendo el parámetrocovariance_estimator
. #14446 por Hugo Richard.
sklearn.ensemble
¶
Major Feature
ensemble.HistGradientBoostingRegressor
yensemble.HistGradientBoostingClassifier
ahora tienen soporte nativo para características categóricas con el parámetrocategorical_features
. #18394 por Nicolas Hug y Thomas Fan.Feature
ensemble.HistGradientBoostingRegressor
yensemble.HistGradientBoostingClassifier
soportan ahora el métodostaged_predict
, que permite monitorizar cada etapa. #16985 por Hao Chun Chang.Efficiency se rompen las referencias cíclicas en los nodos del árbol utilizados internamente en
ensemble.HistGradientBoostingRegressor
yensemble.HistGradientBoostingClassifier
para permitir la recolección oportuna de residuos (garbage) de grandes estructuras de datos intermedias y para mejorar el uso de la memoria enfit
. #18334 por Olivier Grisel Nicolas Hug, Thomas Fan y Andreas Müller.Efficiency La inicialización del histograma se realiza ahora en paralelo en
ensemble.HistGradientBoostingRegressor
yensemble.HistGradientBoostingClassifier
, lo que resulta en una mejora de la velocidad para los problemas que construyen muchos nodos en máquinas multinúcleo. #18341 por Olivier Grisel, Nicolas Hug, Thomas Fan, y Egor Smirnov.Fix Se corrigió un error en
ensemble.HistGradientBoostingRegressor
yensemble.HistGradientBoostingClassifier
que ahora pueden aceptar datos con tipo de datouint8
enpredict
. #18410 por Nicolas Hug.API Change El parámetro
n_classes_
está ahora obsoleto enensemble.GradientBoostingRegressor
y devuelve1
. #17702 por Simona Maggio.API Change El error medio absoluto (“mae”) está ahora obsoleto para el parámetro
criterion
enensemble.GradientBoostingRegressor
yensemble.GradientBoostingClassifier
. #18326 por Madhura Jayaratne.
sklearn.exceptions
¶
API Change
exceptions.ChangedBehaviorWarning
yexceptions.NonBLASDotWarning
están obsoletos y se eliminarán en la versión 1.1 (cambio de nombre de la versión 0.26). #17804 por Adrin Jalali.
sklearn.feature_extraction
¶
Enhancement
feature_extraction.DictVectorizer
acepta múltiples valores para una característica categórica. #17367 por Peng Yu y Chiara Marmo.Fix
feature_extraction.CountVectorizer
plantea una incidencia si se proporciona un patrón de token personalizado que captura más de un grupo. #15427 por Gangesh Gudmalwar y Erin R Hoffman.
sklearn.feature_selection
¶
Feature Se añadió
feature_selection.SequentialFeatureSelector
que implementa la selección secuencial de características hacia delante y hacia atrás. #6545 por Sebastian Raschka y #17159 por Nicolas Hug.Se añadió un nuevo parámetro
importance_getter
afeature_selection.RFE
,feature_selection.RFECV
yfeature_selection.SelectFromModel
, que permite al usuario especificar un nombre/ruta de atributo o uncallable
para extraer la importancia de la característica del estimador. #15361 por Venkatachalam N.Efficiency Reduce la huella de memoria en
feature_selection.mutual_info_classif
yfeature_selection.mutual_info_regression
llamando aneighbors.KDTree
para contar los vecinos más cercanos. #17878 por Noel Rogers.Enhancement
feature_selection.RFE
soporta la opción de que el número den_features_to_select
sea dado como un float que representa el porcentaje de características a seleccionar. #17090 por Lisa Schwetlick y Marija Vlajic Wheeler.
sklearn.gaussian_process
¶
Enhancement Se llama a un nuevo método
gaussian_process.Kernel._check_bounds_params
después de ajustar un Proceso Gaussiano y genera unConvergenceWarning
si los límites de los hiperparámetros son demasiado estrechos. #12638 por Sylvain Lannuzel.
sklearn.impute
¶
Feature
impute.SimpleImputer
ahora soporta una lista de cadenas cuandostrategy='most_frequent'
ostrategy='constant'
. #17526 por Ayako YAGI y Juan Carlos Alfaro Jiménez.Feature Se añadió el método
impute.SimpleImputer.inverse_transform
para revertir los datos imputados al original cuando se instancian conadd_indicator=True
. #17612 por Srimukh Sripada.Fix reemplaza los valores por defecto en
impute.IterativeImputer
de los parámetrosmin_value
ymax_value
a-np.inf
ynp.inf
, respectivamente en lugar deNone
. Sin embargo, el comportamiento de la clase no cambia, ya queNone
ya tenía estos valores por defecto. #16493 por Darshan N.Fix
impute.IterativeImputer
no intentará establecer el atributorandom_state
del estimador, permitiendo utilizarlo con más clases externas. #15636 por David Cortes.Efficiency
impute.SimpleImputer
es ahora más rápido con arreglos de tipo de datoobject
. Cuandostrategy='most_frequent'
enSimpleImputer
. #18987 por David Katz.
sklearn.inspection
¶
Feature Ahora
inspection.partial_dependence
yinspection.plot_partial_dependence
permiten calcular y graficar curvas de Expectativas Condicionales Individuales (ICE) controladas por el parámetrokind
. #16619 por Madhura Jayratne.Feature Añadido el parámetro
sample_weight
ainspection.permutation_importance
. #16906 por Roei Kahny.API Change Los argumentos posicionales están obsoletos en
inspection.PartialDependenceDisplay.plot
y darán error en la versión 1.1 (cambio de nombre de la versión 0.26). #18293 por Thomas Fan.
sklearn.isotonic
¶
Feature Expone los atributos ajustados
X_thresholds_
yy_thresholds_
que contienen los umbrales de interpolación duplicados de una instanciaisotonic.IsotonicRegression
para la inspección del modelo. #16289 por Masashi Kishimoto y Olivier Grisel.Enhancement
isotonic.IsotonicRegression
ahora acepta arreglos 2d con 1 característica como arreglo de entrada. #17379 por Jiaxiang.Fix Añadida la tolerancia al determinar los valores X duplicados para evitar que se predigan valores infinitos (inf) por
isotonic.IsotonicRegression
. #18639 por Lucy Liu.
sklearn.kernel_approximation
¶
Feature Añadida la clase
kernel_approximation.PolynomialCountSketch
que implementa el algoritmo Tensor Sketch para la aproximación del mapa de características del kernel polinomial. #13003 por Daniel López Sánchez.Efficiency
kernel_approximation.Nystroem
ahora soporta la paralelización a través dejoblib.Parallel
utilizando el argumenton_jobs
. #18545 por Laurenz Reitsam.
sklearn.linear_model
¶
Feature
linear_model.LinearRegression
ahora obliga a que los coeficientes sean todos positivos cuandopositive
se establece comoTrue
. #17578 por Joseph Knox, Nelle Varoquaux y Chiara Marmo.Enhancement
linear_model.RidgeCV
ahora permite encontrar un valor de regularización óptimoalpha
para cada objetivo por separado estableciendoalpha_per_target=True
. Esto solo es compatible cuando se utiliza el esquema de validación cruzada eficiente leave-one-out por defectocv=None
. #6624 por Marijn van Vliet.Fix Corregido un error en
linear_model.TheilSenRegressor
dondepredict
yscore
fallaban cuandofit_intercept=False
y había una característica durante el ajuste. #18121 por Thomas Fan.Fix Corregido un error en
linear_model.ARDRegression
en el quepredict
generaba un error cuandonormalize=True
yreturn_std=True
porqueX_offset_
yX_scale_
no estaban definidos. #18607 por fhaselbeck.Fix Se añadió el parámetro
l1_ratio
faltante enlinear_model.Perceptron
, para ser utilizado cuandopenalty='elasticnet'
. Esto cambia el valor por defecto de 0 a 0.15. #18622 por Haesun Park.
sklearn.manifold
¶
Efficiency Corregido #10493. Mejora el embedding local lineal (LLE en inglés), que provocaba una excepción
MemoryError
cuando se utilizaba con entradas grandes. #17997 por Bertrand Maisonneuve.Enhancement Añadido el parámetro
square_distances
amanifold.TSNE
, que proporciona compatibilidad hacia atrás durante la obsolescencia del comportamiento de cuadrados heredado. Las distancias se elevarán al cuadrado por defecto en la versión 1.1 (cambio de nombre de la versión 0.26), y este parámetro se eliminará en la versión 1.3. #17662 por Joshua Newton.Fix
manifold.MDS
ahora establece correctamente su atributo_pairwise
. #18278 por Thomas Fan.
sklearn.metrics
¶
Feature Añadida
metrics.cluster.pair_confusion_matrix
que implementa la matriz de confusión que surge de los pares de elementos de dos agrupaciones. #17412 por Uwe F Mayer.Feature Nueva métrica
metrics.top_k_accuracy_score
. Es una generalización demetrics.top_k_accuracy_score
, la diferencia es que una predicción se considera correcta siempre que la etiqueta verdadera esté asociada a una de lask
puntuaciones predichas más altas.accuracy_score
es el caso especial dek = 1
. #16625 por Geoffrey Bolmier.Feature Se añadió
metrics.det_curve
para calcular la métrica de clasificación de la curva de compensación de errores de detección. #10591 por Jeremy Karnowski y Daniel Mohns.Feature Añadida
metrics.plot_det_curve
ymetrics.DetCurveDisplay
para facilitar el gráfico de las curvas DET. #18176 por Guillaume Lemaitre.Feature Se añadió la métrica
metrics.mean_absolute_percentage_error
y el puntuador asociado para los problemas de regresión. #10708 corregido con el PR #15007 por Ashutosh Hathidara. El puntuador y algunos casos prácticos de prueba fueron tomados del PR #10711 por Mohamed Ali Jamaoui.Feature Añadida
metrics.rand_score
implementando el índice Rand (no ajustado). #17412 por Uwe F Mayer.Feature
metrics.plot_confusion_matrix
ahora soporta que la barra de colores sea opcional en el gráfico de matplotlib estableciendocolorbar=False
. #17192 por Avi Gupta.Feature
metrics.plot_confusion_matrix
ahora soporta que la barra de colores sea opcional en el gráfico de matplotlib estableciendo colorbar=False. #17192 por Avi Gupta.Enhancement Añadido el parámetro
sample_weight
ametrics.median_absolute_error
. #17225 por Lucy Liu.Enhancement Añadido el parámetro
pos_label
enmetrics.plot_precision_recall_curve
para especificar la clase positiva que se utilizará al calcular las estadísticas de precisión y exhaustividad. #17569 por Guillaume Lemaitre.Enhancement Añadido el parámetro
pos_label
enmetrics.plot_roc_curve
para especificar la clase positiva que se utilizará al calcular las estadísticas roc auc. #17651 por Clara Matos.Fix Se corrigió un error en
metrics.classification_report
que generaba AttributeError cuando se llamaba conoutput_dict=True
para valores de longitud 0. #17777 por Shubhanshu Mishra.Fix Se corrigió un error en
metrics.classification_report
que generaba AttributeError cuando se llamaba conoutput_dict=True
para valores de longitud 0. #17777 por Shubhanshu Mishra.Fix Se corrigió un error en
metrics.jaccard_score
que recomendaba el parámetrozero_division
cuando se llamaba sin muestras verdaderas o predichas. #17826 por Richard Decal y Joseph WillardFix Corregido error en
metrics.hinge_loss
donde se produce un error cuando ay_true
le faltan algunas etiquetas que se proporcionan explícitamente en el parámetrolabels
. #17935 por Cary Goltermann.Fix Corregidos los calificadores que aceptan un parámetro pos_label y calculan sus métricas a partir de los valores devueltos por
decision_function
opredict_proba
. Anteriormente, devolvían valores erróneos cuando pos_label no se correspondía conclassifier.classes_[1]
. Esto es especialmente importante cuando se entrenan clasificadores directamente con clases objetivo etiquetadas con cadenas. #18114 por Guillaume Lemaitre.Fix Se corrigió un error en
metrics.plot_confusion_matrix
donde se produce un error cuandoy_true
contiene etiquetas que no han sido vistas previamente por el clasificador mientras los parámetroslabels
ydisplay_labels
están ajustados aNone
. #18405 por Thomas J. Fan y Yakov Pchelintsev.
sklearn.model_selection
¶
Major Feature Se añadieron estimadores (experimentales) de búsqueda de parámetros
model_selection.HalvingRandomSearchCV
ymodel_selection.HalvingGridSearchCV
que implementan la división sucesiva a la mitad, y pueden utilizarse como sustitutos demodel_selection.RandomizedSearchCV
ymodel_selection.GridSearchCV
. #13900 por Nicolas Hug, Joel Nothman y Andreas Müller.Feature
model_selection.RandomizedSearchCV
ymodel_selection.GridSearchCV
ahora tienen el métodoscore_samples
#17478 por Teon Brooks y Mohamed Maskani.Enhancement
model_selection.TimeSeriesSplit
tiene dos nuevos argumentos de palabra clavetest_size
ygap
. El argumentotest_size
permite que la longitud de la serie de tiempo fuera de la muestra sea fija para todos los pliegues. El argumentogap
elimina un número fijo de muestras entre el conjunto de entrenamiento y el de prueba en cada pliegue. #13204 by Kyle Kosic.Enhancement
model_selection.permutation_test_score
ymodel_selection.validation_curve
ahora aceptan fit_params para pasar parámetros adicionales del estimador. #18527 por Gaurav Dhingra, Julien Jerphanion y Amanda Dsouza.Enhancement
model_selection.cross_val_score
,model_selection.cross_validate
,model_selection.GridSearchCV
, ymodel_selection.RandomizedSearchCV
permiten que el estimador falle la puntuación y reemplace la puntuación porerror_score
. Sierror_score="raise"
, se generará el error. #18343 por Guillaume Lemaitre y Devi Sandeep.Enhancement
model_selection.learning_curve
ahora acepta fit_params para pasar parámetros adicionales del estimador. #18595 por Amanda Dsouza.Fix Corregido el
len
demodel_selection.ParameterSampler
cuando todas las distribuciones son listas yn_iter
es mayor que el número de combinaciones únicas de parámetros. #18222 por Nicolas Hug.Fix Una corrección para que se genere una advertencia cuando una o más divisiones de CV de
model_selection.GridSearchCV
ymodel_selection.RandomizedSearchCV
resulten en puntuaciones no finitas. #18266 por Subrat Sahu, Nirvan y Arthur Book.Enhancement
model_selection.GridSearchCV
,model_selection.RandomizedSearchCV
ymodel_selection.cross_validate
soportan quescoring
sea un invocable que devuelva un diccionario de asociación de múltiples nombres/valores de métricas. #15126 por Thomas Fan.
sklearn.multiclass
¶
Enhancement
multiclass.OneVsOneClassifier
ahora acepta las entradas con valores faltantes. Por lo tanto, los estimadores que pueden manejar los valores faltantes (puede ser un pipeline con paso de imputación) se puede utilizar como un estimador para envoltorios multiclase. #17987 por Venkatachalam N.Fix Una corrección para permitir que
multiclass.OutputCodeClassifier
acepte datos de entrada dispersos en sus métodosfit
ypredict
. La comprobación de la validez de la entrada se delega ahora en el estimador base. #17233 por Zolisa Bleki.
sklearn.multioutput
¶
Enhancement Ahora
multioutput.MultiOutputClassifier
ymultioutput.MultiOutputRegressor
aceptan las entradas con valores faltantes. Por lo tanto, los estimadores que pueden manejar valores faltantes (puede ser un pipeline con paso de imputación, estimadores HistGradientBoosting) pueden ser utilizados como un estimador para envoltorios multiclase. #17987 por Venkatachalam N.Fix Una corrección para aceptar tuplas para el parámetro
order
enmultioutput.ClassifierChain
. #18124 por Gus Brocchini y Amanda Dsouza.
sklearn.naive_bayes
¶
Enhancement Añadido un parámetro
min_categories
anaive_bayes.CategoricalNB
que permite especificar un número mínimo de categorías por característica. Esto permite tener en cuenta las categorías no vistas durante el entrenamiento. #16326 por George Armstrong.API Change Los atributos
coef_
eintercept_
ahora están obsoletos ennaive_bayes.MultinomialNB
,naive_bayes.ComplementNB
,naive_bayes. BernoulliNB
ynaive_bayes.CategoricalNB
, y se eliminarán en la v1.1 (cambio de nombre de la versión 0.26). #17427 por Juan Carlos Alfaro Jiménez.
sklearn.neighbors
¶
Efficiency Acelera las métricas
seuclidean
,wminkowski
,mahalanobis
yhaversine
enneighbors.DistanceMetric
evitando la adquisición inesperada de GIL en Cython al establecern_jobs>1
enneighbors.KNeighborsClassifier
,neighbors. KNeighborsRegressor
,neighbors.RadiusNeighborsClassifier
,neighbors.RadiusNeighborsRegressor
,metrics.pairwise_distances
y validando los datos fuera de los bucles. #17038 por Wenbo Zhao.Efficiency
neighbors.NeighborsBase
se beneficia de una heurística mejoradaalgorithm = 'auto'
. Además del conjunto de reglas anterior, ahora, cuando el número de características supera los 15, se seleccionabrute
, asumiendo que la dimensionalidad intrínseca de los datos es demasiado alta para los métodos basados en árboles. #17148 por Geoffrey Bolmier.Fix
neighbors.BinaryTree
generará unValueError
cuando se ajuste a un arreglo de datos que tenga puntos con diferentes dimensiones. #18691 por Chiara Marmo.Fix
neighbors.NearestCentroid
con unshrink_threshold
numérico generará unValueError
al ajustarse en datos con todas las características constantes. #18370 por Trevor Waite.Fix En los métodos
radius_neighbors
yradius_neighbors_graph
deneighbors.NearestNeighbors
,neighbors.RadiusNeighborsClassifier
,neighbors. RadiusNeighborsRegressor
, yneighbors.RadiusNeighborsTransformer
, utilizandosort_results=True
ahora ordena correctamente los resultados incluso cuando se ajusta con el algoritmo «brute». #18612 por Tom Dupre la Tour.
sklearn.neural_network
¶
Efficiency El entrenamiento y la predicción de la red neuronal son ahora un poco más rápidos. #17603, #17604, #17606, #17608, #17609, #17633, #17661, #17932 por Alex Henrie.
Enhancement Evita la conversión de entrada float32 a float64 en
neural_network.BernoulliRBM
. #16352 por Arthur Imbert.Enhancement Soporta cálculos de 32 bits en
neural_network.MLPClassifier
yneural_network.MLPRegressor
. #17759 por Srimukh Sripada.Fix Corregido el método
fit
deneural_network.MLPClassifier
que no itera amax_iter
si se inicia en caliente. #18269 por Norbert Preining y Guillaume Lemaitre.
sklearn.pipeline
¶
Enhancement Las referencias a los transformadores pasados a través de
transformer_weights
apipeline.FeatureUnion
que no estén presentes entransformer_list
darán lugar a unValueError
. #17876 por Cary Goltermann.Fix Una porción de un
pipeline.Pipeline
ahora hereda los parámetros del pipeline original (memory
yverbose
). #18429 por Albert Villanova del Moral y Paweł Biernat.
sklearn.preprocessing
¶
Feature
preprocessing.OneHotEncoder
ahora soporta valores faltantes tratándolos como una categoría. #17317 por Thomas Fan.Feature Añadido un nuevo parámetro
handle_unknown
con una opciónuse_encoded_value
, junto con un nuevo parámetrounknown_value
apreprocessing.OrdinalEncoder
para permitir categorías desconocidas durante la transformación y establecer el valor codificado de las categorías desconocidas. #17406 por Felix Wick y #18406 por Nicolas Hug.Feature Añadido el parámetro
clip
apreprocessing.MinMaxScaler
, que recorta los valores transformados de los datos de prueba afeature_range
. #17833 por Yashika Sharma.Feature Añadido el parámetro
sample_weight
apreprocessing.StandardScaler
. Permite establecer ponderaciones individuales para cada muestra. #18510, #18447, #16066 y #18682 por Maria Telenczuk, Albert Villanova, @panpiort8 y Alex Gramfort.Enhancement Se mejoró la salida verbosa de
model_selection.GridSearchCV
para facilitar la legibilidad. #16935 por Raghav Rajagopalan y Chiara Marmo.Enhancement Añadido
unit_variance
apreprocessing.RobustScaler
, que escala los datos de salida de forma que las características normalmente distribuidas tengan una varianza de 1. #17193 por Lucy Liu y Mabel Villalba.Enhancement Añadido el parámetro
dtype
apreprocessing.KBinsDiscretizer
. #16335 por Arthur Imbert.Fix Se produce un error en
sklearn.preprocessing.OneHotEncoder.inverse_transform
cuandohandle_unknown='error'
ydrop=None
para muestras codificadas como todos ceros. #14982 por Kevin Winata.
sklearn.semi_supervised
¶
Major Feature Añadido
semi_supervised.SelfTrainingClassifier
, un metaclasificador que permite que cualquier clasificador supervisado funcione como un clasificador semisupervisado que puede aprender de datos no etiquetados. #11682 por Oliver Rausch y Patrice Becker.Fix Corregida la codificación incorrecta al utilizar tipos de datos de cadena unicode en
preprocessing.OneHotEncoder
ypreprocessing.OrdinalEncoder
. #15763 por Thomas Fan.
sklearn.svm
¶
sklearn.tree
¶
Feature
tree.DecisionTreeRegressor
ahora soporta el nuevo criterio de división'poisson'
útil para modelar datos de conteo. #17386 por Christian Lorentzen.Enhancement
tree.plot_tree
ahora utiliza los colores de la configuración de matplotlib. #17187 por Andreas Müller.API Change El parámetro
X_idx_sorted
está ahora obsoleto entree.DecisionTreeClassifier.fit
ytree.DecisionTreeRegressor.fit
, y no tiene efecto. #17614 por Juan Carlos Alfaro Jiménez.
sklearn.utils
¶
Enhancement Añadido
check_methods_sample_order_invariance
acheck_estimator
, que comprueba que los métodos del estimador son invariantes si se aplican al mismo conjunto de datos con diferente orden de muestreo #17598 por Jason Ngo.Enhancement Añadido el soporte para ponderaciones en
utils.sparse_func.incr_mean_variance_axis
. Por Maria Telenczuk y Alex Gramfort.Fix Genera un ValueError con un mensaje de error claro en
check_array
para DataFrames dispersos con tipos mixtos. #17992 por Thomas J. Fan y Alex Shacked.Fix Se permite que los modelos basados en árboles serializados sean deserializados en una máquina con diferente endianidad (endianness). #17644 por Qi Zhang.
Fix Comprobado que se genera el error adecuado cuando axis=1 y las dimensiones no coinciden en
utils.sparse_func.incr_mean_variance_axis
. Por Alex Gramfort.
Varios¶
Colaboradores de código y documentación¶
Gracias a todos los que han contribuido al mantenimiento y la mejora del proyecto desde la versión 0.23, incluyendo:
Abo7atm, Adam Spannbauer, Adrin Jalali, adrinjalali, Agamemnon Krasoulis, Akshay Deodhar, Albert Villanova del Moral, Alessandro Gentile, Alexander Lenail, alexandracraciun, Alexandre Gramfort, Alex Henrie, Alex Itkes, Alex Liang, alexshacked, Allan D Butler, Amanda Dsouza, amy12xx, Anand Tiwari, Anderson Nelson, Andreas Mueller, Ankit Choraria, Archana Subramaniyan, Arthur Imbert, Ashutosh Hathidara, Ashutosh Kushwaha, Atsushi Nukariya, Aura Munoz, AutoViz and Auto_ViML, Avi Gupta, Avinash Anakal, Ayako YAGI, barankarakus, barberogaston, beatrizsmg, Benjamin Bossan, Benjamin Pedigo, Ben Mainye, Bharat Raghunathan, Bhavika Devnani, Biprateep Dey, bmaisonn, Bo Chang, Boris Villazón-Terrazas, brigi, Brigitta Sipőcz, Bruno Charron, Byron Smith, Cary Goltermann, Cat Chenal, CeeThinwa, chaitanyamogal, Charles Patel, Chiara Marmo, Christian Kastner, Christian Lorentzen, Christoph Deil, Christos Aridas, Clara Matos, clmbst, Coelhudo, crispinlogan, Cristina Mulas, Daniel López, Daniel Mohns, darioka, Darshan N, david-cortes, Declan O’Neill, Deeksha Madan, Elizabeth DuPre, Eric Fiegel, Erich Schubert, Eric Larson, Erin Khoo, Erin R Hoffman, eschibli, Felix Wick, fhaselbeck, Forrest Koch, Francesco Casalegno, Frans Larsson, Gael Varoquaux, Gaurav Desai, Gaurav Sheni, genvalen, Geoffrey Bolmier, George Armstrong, George Kiragu, Gesa Stupperich, Ghislain Antony Vaillant, Gim Seng, Gordon Walsh, Gregory R. Lee, Guillaume Chevalier, Guillaume Lemaitre, Haesun Park, Hannah Bohle, Hao Chun Chang, Harry Scholes, Harsh Soni, Henry, Hirofumi Suzuki, Hitesh Somani, Hoda1394, Hugo Le Moine, hugorichard, indecisiveuser, Isuru Fernando, Ivan Wiryadi, j0rd1smit, Jaehyun Ahn, Jake Tae, James Hoctor, Jan Vesely, Jeevan Anand Anne, Jérémie du Boisberranger, JeroenPeterBos, JHayes, Jiaxiang, Jie Zheng, Jigna Panchal, jim0421, Jin Li, Joaquin Vanschoren, Joel Nothman, Jona Sassenhagen, Jonathan, Jorge Gorbe Moya, Joseph Lucas, Joshua Newton, Juan Carlos Alfaro Jiménez, Julien Jerphanion, Justin Huber, Kartik Chugh, Katarina Slama, kaylani2, Kendrick Cetina, Kenny Huynh, Kevin Markham, Kevin Winata, Kiril Isakov, kishimoto, Koki Nishihara, Krum Arnaudov, Kyle Kosic, Lauren Oldja, Laurenz Reitsam, Lisa Schwetlick, Louis Douge, Louis Guitton, Lucy Liu, Madhura Jayaratne, maikia, Manimaran, Manuel López-Ibáñez, Maren Westermann, Mariam-ke, Maria Telenczuk, Marijn van Vliet, Markus Löning, Martina G. Vilas, Martina Megasari, Martin Scheubrein, Mateusz Górski, mathschy, mathurinm, Matthias Bussonnier, Max Del Giudice, Michael, Milan Straka, Muoki Caleb, Nadia Tahiri, Ph. D, Naoki Hamada, Neil Botelho, N. Haiat, Nicolas Hug, Nils Werner, noelano, Norbert Preining, oj_lappi, Oleh Kozynets, Olivier Grisel, Pankaj Jindal, Pardeep Singh, Parthiv Chigurupati, Patrice Becker, Pete Green, pgithubs, Poorna Kumar, Prabakaran Kumaresshan, Probinette4, pspachtholz, pwalchessen, Qi Zhang, rachel fischoff, Rachit Toshniwal, Rafey Iqbal Rahman, Rahul Jakhar, Ram Rachum, RamyaNP, rauwuckl, Ravi Kiran Boggavarapu, Ray Bell, Reshama Shaikh, Richard Decal, Rishi Advani, Rithvik Rao, Rob Romijnders, roei, Romain Tavenard, Roman Yurchak, Ruby Werman, Ryotaro Tsukada, sadak, Saket Khandelwal, Sam, Sam Ezebunandu, Sam Kimbinyi, Sarah Brown, Saurabh Jain, Sean O. Stalley, Sergio, Shail Shah, Shane Keller, Shao Yang Hong, Shashank Singh, Shooter23, Shubhanshu Mishra, simonamaggio, Soledad Galli, Srimukh Sripada, Stephan Steinfurt, subrat93, Sunitha Selvan, Swier, SylvainLan, Sylvain Marié, Teon L Brooks, Terence Honles, Thijs van den Berg, Thomas9292, Thomas J Fan, Thomas J. Fan, Thomas S Benjamin, Thorben Jensen, tijanajovanovic, Timo Kaufmann, t-kusanagi2, tnwei, Tom Dupré la Tour, Trevor Waite, ufmayer, Umberto Lupo, Venkatachalam N, Vikas Pandey, Vinicius Rios Fuck, Violeta, watchtheblur, Wenbo Zhao, willpeppo, xavier dupré, Xethan, Xue Qianming, xun-tang, yagi-3, Yakov Pchelintsev, Yashika Sharma, Yi-Yan Ge, Yue Wu, Yutaro Ikeda, Zaccharie Ramzi, zoj613, Zhao Feng.