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_scoreymetrics.mutual_info_scorecon NumPy 1.20+. #19179 por Thomas Fan.
sklearn.semi_supervised¶
Fix
semi_supervised.SelfTrainingClassifieracepta 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.KernelPCAes ahora más consistente entre datos de 32-bits y 64-bits cuando el kernel tiene autovalores pequeños positivos.Fix
decomposition.TruncatedSVDse vuelve determinista exponiendo un parámetrorandom_state.Fix
linear_model.Perceptroncuandopenalty='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_paramsahora generará unAttributeErrorsi 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.fitahora soporta la paralelización a través dejoblib.Parallelutilizando el argumenton_jobs. #17107 por Julien Jerphanion.Enhancement Permite
calibration.CalibratedClassifierCVusar con el prefijopipeline.Pipelinedonde los datos no sonXno es array-like, como la matriz dispersa o el dataframe al comienzo. #17546 por Lucy Liu.Enhancement Añadir el parámetro
ensembleacalibration.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.svmcon el parámetroprobabilities=True). #17856 por Lucy Liu y Andrea Esuli.
sklearn.cluster¶
Enhancement
cluster.AgglomerativeClusteringtiene 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.SpectralClusteringycluster.spectral_clusteringtienen 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_pluspluscomo 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.MiniBatchKMeansestá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.ColumnTransformeromitirá los transformadores donde el selector de columna es una lista de booleanos que son False. #17616 por Thomas Fan.Fix
compose.ColumnTransformerahora muestra el resto en la visualización del diagrama. #18167 por Thomas Fan.Fix
compose.ColumnTransformerrefuerza el conteo estricto y el orden de los nombres de las columnas entrefitytransformlanzando 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.PLSSVDque 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_componentesestá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 atransformen los datos de entrenamiento. El atributonorm_y_weightstambié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.TruncatedSVDse 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_openmlvalida 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_openmlvalida 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_openmlahora permite que el argumentoas_framesea “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_covtypesoporta ahora el argumento opcionalas_frame; cuando se establece en True, los miembrosdatayframedel objeto Bunch devuelto son DataFrames de pandas , y el miembrotargetes una Serie de pandas. #17491 por Alex Liang.Enhancement
datasets.fetch_kddcup99soporta ahora el argumento opcionalas_frame; cuando se establece en True, los miembrosdatayframedel objeto Bunch devuelto son DataFrames de pandas, y el miembrotargetes una Serie de pandas. #18280 por Alex Liang y Guillaume Lemaitre.Enhancement
datasets.fetch_20newsgroups_vectorizedahora soporta la carga como unDataFramede pandas estableciendoas_frame=True. #17499 por Brigitta Sipőcz y Guillaume Lemaitre.API Change El valor por defecto de
as_frameendatasets.fetch_openmlse ha cambiado de False a “auto”. #17610 por Jiaxiang.
sklearn.decomposition¶
Enhancement
decomposition.FactorAnalysisahora soporta el argumento opcionalrotation, que puede tomar el valorNone,'varimax'o'quartimax'. #11064 por Jona Sassenhagen.Enhancement
decomposition.NMFsoporta 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.KernelPCAel 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.SparseCoderpara 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 atributodictionaryy el parámetro constructor. #17679 por Xavier Dupré.Fix
TruncatedSVD.fit_transformdevuelve consistentemente lo mismo queTruncatedSVD.fitseguido deTruncatedSVD.transform. #18528 por Albert Villanova del Moral y Ruifeng Zheng.
sklearn.discriminant_analysis¶
Enhancement
discriminant_analysis.LinearDiscriminantAnalysisahora puede utilizar la estimación de covarianza personalizada estableciendo el parámetrocovariance_estimator. #14446 por Hugo Richard.
sklearn.ensemble¶
Major Feature
ensemble.HistGradientBoostingRegressoryensemble.HistGradientBoostingClassifierahora tienen soporte nativo para características categóricas con el parámetrocategorical_features. #18394 por Nicolas Hug y Thomas Fan.Feature
ensemble.HistGradientBoostingRegressoryensemble.HistGradientBoostingClassifiersoportan 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.HistGradientBoostingRegressoryensemble.HistGradientBoostingClassifierpara 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.HistGradientBoostingRegressoryensemble.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.HistGradientBoostingRegressoryensemble.HistGradientBoostingClassifierque ahora pueden aceptar datos con tipo de datouint8enpredict. #18410 por Nicolas Hug.API Change El parámetro
n_classes_está ahora obsoleto enensemble.GradientBoostingRegressory devuelve1. #17702 por Simona Maggio.API Change El error medio absoluto (“mae”) está ahora obsoleto para el parámetro
criterionenensemble.GradientBoostingRegressoryensemble.GradientBoostingClassifier. #18326 por Madhura Jayaratne.
sklearn.exceptions¶
API Change
exceptions.ChangedBehaviorWarningyexceptions.NonBLASDotWarningestá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.DictVectorizeracepta múltiples valores para una característica categórica. #17367 por Peng Yu y Chiara Marmo.Fix
feature_extraction.CountVectorizerplantea 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.SequentialFeatureSelectorque 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_getterafeature_selection.RFE,feature_selection.RFECVyfeature_selection.SelectFromModel, que permite al usuario especificar un nombre/ruta de atributo o uncallablepara extraer la importancia de la característica del estimador. #15361 por Venkatachalam N.Efficiency Reduce la huella de memoria en
feature_selection.mutual_info_classifyfeature_selection.mutual_info_regressionllamando aneighbors.KDTreepara contar los vecinos más cercanos. #17878 por Noel Rogers.Enhancement
feature_selection.RFEsoporta la opción de que el número den_features_to_selectsea 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_paramsdespués de ajustar un Proceso Gaussiano y genera unConvergenceWarningsi los límites de los hiperparámetros son demasiado estrechos. #12638 por Sylvain Lannuzel.
sklearn.impute¶
Feature
impute.SimpleImputerahora 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_transformpara revertir los datos imputados al original cuando se instancian conadd_indicator=True. #17612 por Srimukh Sripada.Fix reemplaza los valores por defecto en
impute.IterativeImputerde los parámetrosmin_valueymax_valuea-np.infynp.inf, respectivamente en lugar deNone. Sin embargo, el comportamiento de la clase no cambia, ya queNoneya tenía estos valores por defecto. #16493 por Darshan N.Fix
impute.IterativeImputerno intentará establecer el atributorandom_statedel estimador, permitiendo utilizarlo con más clases externas. #15636 por David Cortes.Efficiency
impute.SimpleImputeres 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_dependenceyinspection.plot_partial_dependencepermiten 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_weightainspection.permutation_importance. #16906 por Roei Kahny.API Change Los argumentos posicionales están obsoletos en
inspection.PartialDependenceDisplay.ploty 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.IsotonicRegressionpara la inspección del modelo. #16289 por Masashi Kishimoto y Olivier Grisel.Enhancement
isotonic.IsotonicRegressionahora 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.PolynomialCountSketchque 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.Nystroemahora soporta la paralelización a través dejoblib.Parallelutilizando el argumenton_jobs. #18545 por Laurenz Reitsam.
sklearn.linear_model¶
Feature
linear_model.LinearRegressionahora obliga a que los coeficientes sean todos positivos cuandopositivese establece comoTrue. #17578 por Joseph Knox, Nelle Varoquaux y Chiara Marmo.Enhancement
linear_model.RidgeCVahora permite encontrar un valor de regularización óptimoalphapara 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.TheilSenRegressordondepredictyscorefallaban cuandofit_intercept=Falsey había una característica durante el ajuste. #18121 por Thomas Fan.Fix Corregido un error en
linear_model.ARDRegressionen el quepredictgeneraba un error cuandonormalize=Trueyreturn_std=TrueporqueX_offset_yX_scale_no estaban definidos. #18607 por fhaselbeck.Fix Se añadió el parámetro
l1_ratiofaltante 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
MemoryErrorcuando se utilizaba con entradas grandes. #17997 por Bertrand Maisonneuve.Enhancement Añadido el parámetro
square_distancesamanifold.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.MDSahora establece correctamente su atributo_pairwise. #18278 por Thomas Fan.
sklearn.metrics¶
Feature Añadida
metrics.cluster.pair_confusion_matrixque 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 laskpuntuaciones predichas más altas.accuracy_scorees el caso especial dek = 1. #16625 por Geoffrey Bolmier.Feature Se añadió
metrics.det_curvepara 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_curveymetrics.DetCurveDisplaypara facilitar el gráfico de las curvas DET. #18176 por Guillaume Lemaitre.Feature Se añadió la métrica
metrics.mean_absolute_percentage_errory 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_scoreimplementando el índice Rand (no ajustado). #17412 por Uwe F Mayer.Feature
metrics.plot_confusion_matrixahora soporta que la barra de colores sea opcional en el gráfico de matplotlib estableciendocolorbar=False. #17192 por Avi Gupta.Feature
metrics.plot_confusion_matrixahora 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_weightametrics.median_absolute_error. #17225 por Lucy Liu.Enhancement Añadido el parámetro
pos_labelenmetrics.plot_precision_recall_curvepara 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_labelenmetrics.plot_roc_curvepara 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_reportque generaba AttributeError cuando se llamaba conoutput_dict=Truepara valores de longitud 0. #17777 por Shubhanshu Mishra.Fix Se corrigió un error en
metrics.classification_reportque generaba AttributeError cuando se llamaba conoutput_dict=Truepara valores de longitud 0. #17777 por Shubhanshu Mishra.Fix Se corrigió un error en
metrics.jaccard_scoreque recomendaba el parámetrozero_divisioncuando se llamaba sin muestras verdaderas o predichas. #17826 por Richard Decal y Joseph WillardFix Corregido error en
metrics.hinge_lossdonde se produce un error cuando ay_truele 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_functionopredict_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_matrixdonde se produce un error cuandoy_truecontiene etiquetas que no han sido vistas previamente por el clasificador mientras los parámetroslabelsydisplay_labelsestá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.HalvingRandomSearchCVymodel_selection.HalvingGridSearchCVque implementan la división sucesiva a la mitad, y pueden utilizarse como sustitutos demodel_selection.RandomizedSearchCVymodel_selection.GridSearchCV. #13900 por Nicolas Hug, Joel Nothman y Andreas Müller.Feature
model_selection.RandomizedSearchCVymodel_selection.GridSearchCVahora tienen el métodoscore_samples#17478 por Teon Brooks y Mohamed Maskani.Enhancement
model_selection.TimeSeriesSplittiene dos nuevos argumentos de palabra clavetest_sizeygap. El argumentotest_sizepermite que la longitud de la serie de tiempo fuera de la muestra sea fija para todos los pliegues. El argumentogapelimina 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_scoreymodel_selection.validation_curveahora 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.RandomizedSearchCVpermiten 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_curveahora acepta fit_params para pasar parámetros adicionales del estimador. #18595 por Amanda Dsouza.Fix Corregido el
lendemodel_selection.ParameterSamplercuando todas las distribuciones son listas yn_iteres 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.GridSearchCVymodel_selection.RandomizedSearchCVresulten en puntuaciones no finitas. #18266 por Subrat Sahu, Nirvan y Arthur Book.Enhancement
model_selection.GridSearchCV,model_selection.RandomizedSearchCVymodel_selection.cross_validatesoportan quescoringsea 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.OneVsOneClassifierahora 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.OutputCodeClassifieracepte datos de entrada dispersos en sus métodosfitypredict. 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.MultiOutputClassifierymultioutput.MultiOutputRegressoraceptan 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
orderenmultioutput.ClassifierChain. #18124 por Gus Brocchini y Amanda Dsouza.
sklearn.naive_bayes¶
Enhancement Añadido un parámetro
min_categoriesanaive_bayes.CategoricalNBque 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. BernoulliNBynaive_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,mahalanobisyhaversineenneighbors.DistanceMetricevitando la adquisición inesperada de GIL en Cython al establecern_jobs>1enneighbors.KNeighborsClassifier,neighbors. KNeighborsRegressor,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressor,metrics.pairwise_distancesy validando los datos fuera de los bucles. #17038 por Wenbo Zhao.Efficiency
neighbors.NeighborsBasese 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.BinaryTreegenerará unValueErrorcuando se ajuste a un arreglo de datos que tenga puntos con diferentes dimensiones. #18691 por Chiara Marmo.Fix
neighbors.NearestCentroidcon unshrink_thresholdnumérico generará unValueErroral ajustarse en datos con todas las características constantes. #18370 por Trevor Waite.Fix En los métodos
radius_neighborsyradius_neighbors_graphdeneighbors.NearestNeighbors,neighbors.RadiusNeighborsClassifier,neighbors. RadiusNeighborsRegressor, yneighbors.RadiusNeighborsTransformer, utilizandosort_results=Trueahora 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.MLPClassifieryneural_network.MLPRegressor. #17759 por Srimukh Sripada.Fix Corregido el método
fitdeneural_network.MLPClassifierque no itera amax_itersi 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_weightsapipeline.FeatureUnionque no estén presentes entransformer_listdarán lugar a unValueError. #17876 por Cary Goltermann.Fix Una porción de un
pipeline.Pipelineahora hereda los parámetros del pipeline original (memoryyverbose). #18429 por Albert Villanova del Moral y Paweł Biernat.
sklearn.preprocessing¶
Feature
preprocessing.OneHotEncoderahora soporta valores faltantes tratándolos como una categoría. #17317 por Thomas Fan.Feature Añadido un nuevo parámetro
handle_unknowncon una opciónuse_encoded_value, junto con un nuevo parámetrounknown_valueapreprocessing.OrdinalEncoderpara 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
clipapreprocessing.MinMaxScaler, que recorta los valores transformados de los datos de prueba afeature_range. #17833 por Yashika Sharma.Feature Añadido el parámetro
sample_weightapreprocessing.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.GridSearchCVpara facilitar la legibilidad. #16935 por Raghav Rajagopalan y Chiara Marmo.Enhancement Añadido
unit_varianceapreprocessing.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
dtypeapreprocessing.KBinsDiscretizer. #16335 por Arthur Imbert.Fix Se produce un error en
sklearn.preprocessing.OneHotEncoder.inverse_transformcuandohandle_unknown='error'ydrop=Nonepara 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.OneHotEncoderypreprocessing.OrdinalEncoder. #15763 por Thomas Fan.
sklearn.svm¶
sklearn.tree¶
Feature
tree.DecisionTreeRegressorahora soporta el nuevo criterio de división'poisson'útil para modelar datos de conteo. #17386 por Christian Lorentzen.Enhancement
tree.plot_treeahora utiliza los colores de la configuración de matplotlib. #17187 por Andreas Müller.API Change El parámetro
X_idx_sortedestá ahora obsoleto entree.DecisionTreeClassifier.fitytree.DecisionTreeRegressor.fit, y no tiene efecto. #17614 por Juan Carlos Alfaro Jiménez.
sklearn.utils¶
Enhancement Añadido
check_methods_sample_order_invarianceacheck_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_arraypara 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.