Versión 0.21.3

Leyenda para registros de cambios

  • Major Feature : algo grande que no podías hacer antes.

  • Feature : algo que no podías hacer antes.

  • 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.

30 de julio de 2019

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.

  • Las notas de publicación de la versión v0.20.0 no mencionan una incompatibilidad con versiones anteriores en metrics.make_scorer cuando needs_proba=True y y_true es binario. Ahora, se supone que la función scorer acepta un y_pred 1D (es decir, la probabilidad de la clase positiva, de forma (n_samples,)), en lugar de un y_pred 2D (es decir, de forma (n_samples, 2)).

Registro de cambios

sklearn.cluster

sklearn.compose

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

sklearn.datasets

sklearn.ensemble

  • Fix Se corrigió el error de división por cero en HistGradientBoostingClassifier y HistGradientBoostingRegressor. #14024 por Nicolas Hug <NicolasHug>.

sklearn.impute

sklearn.inspection

sklearn.linear_model

sklearn.neighbors

sklearn.tree

  • Fix Corregido error en tree.export_text cuando el árbol tiene una característica y se pasa un único nombre de característica. #14053 por Thomas Fan.

  • Fix Se ha corregido un problema con plot_tree en el que se mostraban los cálculos de entropía incluso para el criterio gini en DecisionTreeClassifiers. #13947 por Frank Hoang.

Versión 0.21.2

24 de mayo de 2019

Registro de cambios

sklearn.decomposition

sklearn.metrics

sklearn.preprocessing

sklearn.utils.sparsefuncs

Versión 0.21.1

17 de mayo de 2019

Esta es una versión de corrección de errores para resolver principalmente algunas incidencias de empaquetado de la versión 0.21.0. También incluye mejoras menores en la documentación y algunas correcciones de errores.

Registro de cambios

sklearn.inspection

sklearn.metrics

  • Fix Se ha corregido un error en metrics.pairwise_distances donde aparecía AttributeError para métricas booleanas cuando X tenía un dtype booleano y Y == None. #13864 por Paresh Mathur.

  • Fix Se han corregido dos errores en metrics.pairwise_distances cuando n_jobs > 1. En primer lugar, solía devolver una matriz de distancias con el mismo tipo de entrada (dtype), incluso para un tipo de entrada entero. Luego la diagonal no era cero para la métrica euclidiana cuando Y es X. #13877 por Jérémie du Boisberranger.

sklearn.neighbors

Versión 0.21.0

Mayo de 2019

Modelos modificados

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

Los detalles se encuentran en el registro de cambios más abajo.

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

Principales Errores Conocidos

  • El valor predeterminado de max_iter para linear_model.LogisticRegression es demasiado pequeño para muchos solucionadores dado el valor predeterminado de tol. En particular, cambiamos accidentalmente el valor predeterminado de max_iter para el solucionador liblinear de 1000 a 100 iteraciones en #3591 publicado en la versión 0.16. En una futura versión esperamos elegir mejor los valores predeterminados de max_iter y tol de forma heurística dependiendo del solucionador (ver #13317).

Registro de cambios

El soporte para Python 3.4 e inferior ha sido oficialmente eliminado.

sklearn.base

  • API Change La puntuación R2 utilizada cuando se llama a score en un regresor utilizará multioutput='uniform_average' desde la versión 0.23 para mantener la coherencia con metrics.r2_score. Esto influirá en el método score de todos los regresores de salida múltiple (excepto en multioutput.MultiOutputRegressor). #13157 por Hanmin Qin.

sklearn.calibration

sklearn.cluster

sklearn.compose

sklearn.datasets

sklearn.decomposition

  • Enhancement decomposition.KernelPCA ahora tiene una salida determinista (resuelta la ambigüedad de signo en la descomposición de valores propios de la matriz kernel). #13241 por Aurélien Bellet.

  • Fix Se ha corregido un error en decomposition.KernelPCA, fit().transform() ahora produce la salida correcta (la misma que fit_transform()) en caso de autovalores no eliminados (remove_zero_eig=False). También se ha acelerado fit_inverse_transform utilizando el mismo truco que en fit_transform para calcular la transformada de X. #12143 por Sylvain Marié

  • Fix Se ha corregido un error en decomposition.NMF donde init = 'nndsvd', init = 'nndsvda', y init = 'nndsvdar' se permiten cuando n_components < n_features en lugar de n_components <= min(n_samples, n_features). #11650 por Hossein Pourbozorg y Zijie (ZJ) Poh.

  • API Change El valor predeterminado del argumento init en decomposition.non_negative_factorization cambiará de random a None en la versión 0.23 para hacerlo consistente con decomposition.NMF. Se genera un FutureWarning cuando se utiliza el valor predeterminado. #12988 por Zijie (ZJ) Poh.

sklearn.discriminant_analysis

sklearn.dummy

sklearn.ensemble

sklearn.externals

  • API Change Se ha eliminado externals.six ya que se ha dejado de dar soporte a Python 2.7. #12916 por Hanmin Qin.

sklearn.feature_extraction

sklearn.impute

  • Major Feature Se ha añadido impute.IterativeImputer, que es una estrategia para la imputación de valores faltantes mediante el modelado de cada característica con valores faltantes en función de otras características de forma round-robin. #8478 y #12177 por Sergey Feldman y Ben Lawson.

    La API de IterativeImputer es experimental y está sujeta a cambios sin ningún ciclo de obsolescencia. Para utilizarlas, es necesario importar explícitamente enable_iterative_imputer:

    >>> from sklearn.experimental import enable_iterative_imputer  # noqa
    >>> # now you can import normally from sklearn.impute
    >>> from sklearn.impute import IterativeImputer
    
  • Feature Los impute.SimpleImputer y impute.IterativeImputer tienen un nuevo parámetro 'add_indicator, que simplemente apila una transformación impute.MissingIndicator en la salida de la transformación del imputador. Esto permite que un estimador predictivo tenga en cuenta la falta de datos. #12583, #13601 por Danylo Baibak.

  • Fix En impute.MissingIndicator se evita la densificación implícita generando una excepción si la entrada es dispersa y la propiedad missing_values se establece en 0. #13240 por Bartosz Telenczuk.

  • Fix Se han corregido dos errores en impute.MissingIndicator. En primer lugar, cuando X es disperso, todos los valores distintos de cero no faltantes solían convertirse en Falso explícito en los datos transformados. Luego, cuando features='missing-only', todas las características solían mantenerse si no había ningún valor faltante. #13562 por Jérémie du Boisberranger.

sklearn.inspection

(nuevo subpaquete)

sklearn.isotonic

sklearn.linear_model

sklearn.manifold

  • Efficiency Se hace que manifold.tsne.trustworthiness utilice un índice invertido en lugar de una búsqueda np.where para encontrar el rango de vecinos en el espacio de entrada. Esto mejora la eficiencia en particular cuando se calcula con muchos vecinos y/o conjuntos de datos pequeños. #9907 por William de Vazelhes.

sklearn.metrics

sklearn.mixture

sklearn.model_selection

sklearn.multiclass

  • Fix Se ha corregido un problema en multiclass.OneVsOneClassifier.decision_function por el que el valor de decision_function de una muestra dada era diferente dependiendo de si decision_function se evaluaba en la muestra sola o en un lote que contenía esta misma muestra debido al escalamiento utilizado en decision_function. #10440 por Jonathan Ohayon.

sklearn.multioutput

sklearn.neighbors

sklearn.neural_network

sklearn.pipeline

sklearn.preprocessing

sklearn.svm

  • Fix Se ha solucionado un problema en svm.SVC.decision_function cuando decision_function_shape='ovr'. El valor de decision_function de una muestra dada era diferente dependiendo de si decision_function se evaluaba en la muestra sola o en un lote que contenía esta misma muestra debido al escalamiento utilizado en decision_function. #10440 por Jonathan Ohayon.

sklearn.tree

sklearn.utils

  • Feature utils.resample ahora acepta un parámetro stratify (de estratificación) para el muestreo según las distribuciones de clase. #13549 por Nicolas Hug.

  • API Change Se ha eliminado el parámetro warn_on_dtype de utils.check_array y utils.check_X_y. Se ha añadido una advertencia explícita para la conversión de tipos (dtypes) en check_pairwise_arrays si metric que se pasa es una métrica booleana por pares. #13382 por Prathmesh Savale.

Múltiples módulos

  • Major Feature El método __repr__() de todos los estimadores (utilizado cuando se llama a print(estimator)) ha sido completamente reescrito, basándose en la biblioteca estándar de impresión pretty de Python. Todos los parámetros se imprimen por defecto, pero esto puede ser alterado con la opción print_changed_only en sklearn.set_config. #11705 por Nicolas Hug.

  • Major Feature Se añaden etiquetas de estimadores: son anotaciones de los estimadores que permiten la inspección programática de sus capacidades, como el soporte de matrices dispersas, los tipos de salida y los métodos soportados. Las etiquetas de los estimadores también determinan las pruebas o tests que se ejecutan en un estimador cuando se llama a check_estimator. Lea más en el Manual de Usuario. #8022 por Andreas Müller.

  • Efficiency Se evitan las copias de memoria cuando se funden los arreglos a un dtype diferente en los múltiples estimadores. #11973 por Roman Yurchak.

  • Fix Se ha corregido un error en la implementación de la función helper (de ayuda) our_rand_r que no se comportaba de forma consistente en todas las plataformas. #13422 por Madhura Parikh y Clément Doumouro.

Varios

  • Enhancement Joblib ya no se vende en scikit-learn, y se convierte en una dependencia. La versión mínima soportada es joblib 0.11, sin embargo, se recomienda encarecidamente utilizar la versión >= 0.13. #13531 por Roman Yurchak.

Cambios en las comprobaciones de los estimadores

Estos cambios afectan principalmente a los desarrolladores de bibliotecas.

Colaboradores de código y documentación

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

adanhawth, Aditya Vyas, Adrin Jalali, Agamemnon Krasoulis, Albert Thomas, Alberto Torres, Alexandre Gramfort, amourav, Andrea Navarrete, Andreas Mueller, Andrew Nystrom, assiaben, Aurélien Bellet, Bartosz Michałowski, Bartosz Telenczuk, bauks, BenjaStudio, bertrandhaut, Bharat Raghunathan, brentfagan, Bryan Woods, Cat Chenal, Cheuk Ting Ho, Chris Choe, Christos Aridas, Clément Doumouro, Cole Smith, Connossor, Corey Levinson, Dan Ellis, Dan Stine, Danylo Baibak, daten-kieker, Denis Kataev, Didi Bar-Zev, Dillon Gardner, Dmitry Mottl, Dmitry Vukolov, Dougal J. Sutherland, Dowon, drewmjohnston, Dror Atariah, Edward J Brown, Ekaterina Krivich, Elizabeth Sander, Emmanuel Arias, Eric Chang, Eric Larson, Erich Schubert, esvhd, Falak, Feda Curic, Federico Caselli, Frank Hoang, Fibinse Xavier`, Finn O’Shea, Gabriel Marzinotto, Gabriel Vacaliuc, Gabriele Calvo, Gael Varoquaux, GauravAhlawat, Giuseppe Vettigli, Greg Gandenberger, Guillaume Fournier, Guillaume Lemaitre, Gustavo De Mari Pereira, Hanmin Qin, haroldfox, hhu-luqi, Hunter McGushion, Ian Sanders, JackLangerman, Jacopo Notarstefano, jakirkham, James Bourbeau, Jan Koch, Jan S, janvanrijn, Jarrod Millman, jdethurens, jeremiedbb, JF, joaak, Joan Massich, Joel Nothman, Jonathan Ohayon, Joris Van den Bossche, josephsalmon, Jérémie Méhault, Katrin Leinweber, ken, kms15, Koen, Kossori Aruku, Krishna Sangeeth, Kuai Yu, Kulbear, Kushal Chauhan, Kyle Jackson, Lakshya KD, Leandro Hermida, Lee Yi Jie Joel, Lily Xiong, Lisa Sarah Thomas, Loic Esteve, louib, luk-f-a, maikia, mail-liam, Manimaran, Manuel López-Ibáñez, Marc Torrellas, Marco Gaido, Marco Gorelli, MarcoGorelli, marineLM, Mark Hannel, Martin Gubri, Masstran, mathurinm, Matthew Roeschke, Max Copeland, melsyt, mferrari3, Mickaël Schoentgen, Ming Li, Mitar, Mohammad Aftab, Mohammed AbdelAal, Mohammed Ibraheem, Muhammad Hassaan Rafique, mwestt, Naoya Iijima, Nicholas Smith, Nicolas Goix, Nicolas Hug, Nikolay Shebanov, Oleksandr Pavlyk, Oliver Rausch, Olivier Grisel, Orestis, Osman, Owen Flanagan, Paul Paczuski, Pavel Soriano, pavlos kallis, Pawel Sendyk, peay, Peter, Peter Cock, Peter Hausamann, Peter Marko, Pierre Glaser, pierretallotte, Pim de Haan, Piotr Szymański, Prabakaran Kumaresshan, Pradeep Reddy Raamana, Prathmesh Savale, Pulkit Maloo, Quentin Batista, Radostin Stoyanov, Raf Baluyot, Rajdeep Dua, Ramil Nugmanov, Raúl García Calvo, Rebekah Kim, Reshama Shaikh, Rohan Lekhwani, Rohan Singh, Rohan Varma, Rohit Kapoor, Roman Feldbauer, Roman Yurchak, Romuald M, Roopam Sharma, Ryan, Rüdiger Busche, Sam Waterbury, Samuel O. Ronsin, SandroCasagrande, Scott Cole, Scott Lowe, Sebastian Raschka, Shangwu Yao, Shivam Kotwalia, Shiyu Duan, smarie, Sriharsha Hatwar, Stephen Hoover, Stephen Tierney, Stéphane Couvreur, surgan12, SylvainLan, TakingItCasual, Tashay Green, thibsej, Thomas Fan, Thomas J Fan, Thomas Moreau, Tom Dupré la Tour, Tommy, Tulio Casagrande, Umar Farouk Umar, Utkarsh Upadhyay, Vinayak Mehta, Vishaal Kapoor, Vivek Kumar, Vlad Niculae, vqean3, Wenhao Zhang, William de Vazelhes, xhan, Xing Han Lu, xinyuliu12, Yaroslav Halchenko, Zach Griffith, Zach Miller, Zayd Hammoudeh, Zhuyi Xue, Zijie (ZJ) Poh, ^__^