Versión 0.15

4 de septiembre de 2014

Corrección de errores

  • Solucionado el manejo del parámetro p de la distancia de Minkowski que fue previamente ignorado en los modelos de vecinos más cercanos. Por Nikolay Mayorov.

  • Se han corregido alphas duplicadas en linear_model.LassoLars con una parada temprana en Python de 32 bits. Por Olivier Grisel y Fabian Pedregosa.

  • Se corrigió la compilación bajo Windows cuando scikit-learn se compila con MSVC, mientras que NumPy se construye con MinGW. De Olivier Grisel y Federico Vaggi.

  • Se ha corregido un error de overflow de índice del arreglo en el solucionador de descenso de coordenadas. Por Gael Varoquaux.

  • Mejor manejo de advertencias de obsolescencia de numpy 1.9. Por Gael Varoquaux.

  • Se ha eliminado una copia de datos innecesaria en cluster.KTechns. De Gael Varoquaux.

  • Cierra explícitamente los archivos abiertos para evitar ResourceWarnings bajo Python 3. Por Calvin Giles.

  • La transform de discriminant_analysis.LinearDiscriminantAnalysis ahora proyecta la entrada en las direcciones más discriminantes. Por Martin Billinger.

  • Corregido overflow potencial en _tree.safe_realloc por Lars Buitinck.

  • Optimización de rendimiento en isotonic.IsotonicRegression. Por Robert Bradshaw.

  • nose ya no es una dependencia al tiempo de ejecución para importar sklearn, solo para ejecutar las pruebas. Por Joel Nothman.

  • Muchas correcciones de la documentación y del sitio web por Joel Nothman, Lars Buitinck Matt Pico, y otros.

Versión 0.15.1

1 de agosto de 2014

Corrección de errores

  • Se hizo que cross_validation.cross_val_score usara cross_validation.KFold en lugar de cross_validation.StratifiedKFold en problemas de clasificación de múltiples salidas. Por Nikolay Mayorov.

  • Soporte para etiquetas no vistas preprocessing.LabelBinarizer para restaurar el comportamiento predeterminado de 0.14.1 para compatibilidad con versiones anteriores. Por Hamzeh Alsalhi.

  • Se ha corregido el criterio de parada de cluster.KTechns que evitó la detección temprana de convergencia. Por Edward Row y Gael Varoquaux.

  • Corregido el comportamiento de multiclass.OneVsOneClassifier. en el caso de vínculos en el nivel de voto por clase para calcular la suma por clase correcta del puntaje de las predicciones. Por Andreas Müller.

  • Se hizo que cross_validation.cross_val_score y grid_search.GridSearchCV aceptaran listas de Python como datos de entrada. Esto es especialmente útil para la validación cruzada y para la selección de modelos de pipelines de procesamiento de texto. Por Andreas Müller.

  • Se corrigieron las comprobaciones de los datos de entrada de la mayoría de los estimadores para aceptar datos de entrada que implementen el protocolo de NumPy __array__. Esto es el caso para pandas.Series y pandas.DataFrame en las versiones más recientes de pandas. Por Gael Varoquaux.

  • Se ha corregido una regresión para linear_model.SGDClassifier con class_weight="auto" en datos con etiquetas no contiguas. Por Olivier Grisel.

Versión 0.15

15 de julio de 2014

Destacados

  • Muchas mejoras de velocidad y memoria en todo el código

  • Grandes mejoras de velocidad y de memoria en bosques aleatorios (y árboles adicionales) que también se benefician mejor de la computación paralela.

  • Ajuste incremental a BernoulliRBM

  • Añadido cluster.AgglomerativeClustering para análisis de conglomerados aglomerativo jerárquico con enlazamiento promedio, enlazamiento completo y estrategias Ward.

  • Añadido linear_model.RANSACRegressor para modelos de regresión robustos.

  • Añadido reducción de dimensionalidad con manifold.TSNE el cual puede utilizarse para visualizar datos de alta dimensión.

Registro de cambios

Nuevas características

Mejoras (Enhancements)

  • Añade soporte de entrada dispersa a los metaestimadores ensemble.AdaBoostClassifier y ensemble.AdaBoostRegressor. Por Hamzeh Alsalhi.

  • Mejoras de memoria para los árboles de decisión, por Arnaud Joly.

  • Los árboles de decisión pueden construirse ahora de la mejor manera posible utilizando max_leaf_nodes como criterio de parada. Refactorizado el código del árbol para usar o una pila o una cola de prioridad para la construcción de árboles. Por Peter Prettenhofer y Gilles Louppe.

  • Los árboles de decisiones se pueden ajustar ahora en matrices de estilo fortrano y c, y arreglos no-continuos sin la necesidad de hacer una copia. Si la matriz de entrada tiene un dtype diferente a np.float32, se hará una copia de estilo fortran ya que el diseño de memoria de estilo fortran tiene ventajas de velocidad. Por Peter Prettenhofer y Gilles Louppe.

  • Mejora de velocidad de los árboles de regresión mediante la optimización del cálculo del criterio de error cuadrado medio. Esto llevo a la mejora de velocidad de los módulos de árbol, bosques y árboles de potenciación de gradiente. Por Arnaud Joly

  • Las funciones img_to_graph y grid_tograph en sklearn.feature_extraction.image ahora devuelven np.ndarray en lugar de np.matrix cuando return_as=np.ndarray. Consulta la sección de Notas para más información sobre la compatibilidad.

  • Se ha cambiado el almacenamiento interno de los árboles de decisión para usar un arreglo struct. Esto arregló algunos pequeños errores, mientras mejoraba el código y proporcionaba una pequeña ganancia de velocidad. Por Joel Nothman.

  • Reduce el uso de memoria y sobrecarga cuando se ajusta y predice con bosques de árboles aleatorizados en paralelo con n_jobs ! 1 aprovechando el nuevo backend de hilos de joblib 0.8 y liberando el GIL en el código de Cython que ajusta árboles.. Por Olivier Grisel y Gilles Louppe.

  • Mejora de velocidad del módulo sklearn.ensemble.gradient_boosting. Por Gilles Louppe y Peter Prettenhofer.

  • Varias mejoras al módulo sklearn.ensemble.gradient_boosting, un argumento warm_start para ajustar árboles adicionales, un argumento max_leaf_nodes para ajustar a árboles de estilo GBM, un argumento de ajuste monitor para inspeccionar el estimador durante la capacitación, y una refactorización del código verboso. Por Peter Prettenhofer.

  • sklearn.ensemble.ExtraTrees más rapido mediante el cacheo de valores de característica. Por Arnaud Joly.

  • Algoritmo de construcción de árboles basado en profundidades más rápido, como el árbol de decisiones, bosque aleatorio, árboles extra o la potenciación de árboles degradados (con estrategia de crecimiento basado en profundidad) evitando dividir las constantes características encontradas en el subconjunto de la muestra. Por Arnaud Joly.

  • Agrega el parámetro pre-podando min_weight_fraction_leaf a métodos basados en árboles: la fracción mínima ponderada de las muestras de entrada requeridas para estar en un nodo de hoja. Por Noel Dawe.

  • Añadido metrics.pairwise_distances_argmin_min, por Philippe Gervais.

  • Se añadió el método predict a cluster.AffinityPropagation y cluster.mediumShift, por Mathieu Blondel.

  • Las multiplicaciones de vector y matriz han sido optimizadas en toda la biblioteca por Denis Engemann, y Alexandre Gramfort. En particular, deberían tomar menos memoria con versiones anteriores de NumPy (anteriores a 1.7.2).

  • Los ejemplos de precision-exhaustividad y ROC ahora usan train_test_split, y tienen más explicación de por qué estas métricas son útiles. Por Kyle Kastner

  • El algoritmo de entrenamiento para decomposition.NMF es más rápido para las matrices dispersas y tiene una complejidad de memoria mucho menos, lo que significa que aumentará su escala hasta los conjuntos de datos grandes. Por Lars Buitinck.

  • Se añadió la opción svd_method con valor predeterminado de «randomized» a decomposition.FactorAnalysis para ahorrar memoria y acelerar significativamente el cálculo por Denis Engemann, y Alexandre Gramfort.

  • Cambiado cross_validation. tratifiedKFold para tratar de preservar tanto del orden original de muestras como sea posible para no ocultar la sobrecapacidad en los conjuntos de datos con un nivel no despreciable de dependencia en las muestras. Por Daniel Nouri y Olivier Grisel.

  • Añade soporte de salida múltiple a gaussian_process.GaussianProcess por John Novak.

  • Soporte para matrices de distancia precalculadas en estimadores de vecinos más cercanos por Robert Layton y Joel Nothman.

  • Cálculos de norm optimizados para NumPy 1.6 y versiones posteriores por Lars Buitinck. En particular, el algoritmo k-medias ya no necesita una estructura temporal de datos del tamaño de su entrada.

  • dummy.DummyClassifier ahora puede utilizarse para predecir un valor de salida constante. Por Manoj Kumar.

  • dummy.DummyRegressor ahora tiene un parámetro de estrategia que permite predecir la media, la mediana del conjunto de entrenamiento o un valor de salida constante. De Maheshakya Wijewardena.

  • La salida de clasificación multi-etiqueta en el formato de indicador multietiqueta ahora está soportada por metrics.roc_auc_score y metrics.average_precision_score por Arnaud Joly.

  • Mejoras significativas de rendimiento (más de 100x de velocidad para grandes problemas) en isotonic.IsotonicRegression por Andrew Tulloch.

  • Mejoras de velocidad y uso de memoria en el algoritmo SGD para modelos lineales: ahora usa hilos, no procesos separados, cuando n_jobs>1. Por Lars Buitinck.

  • La búsqueda en cuadrícula y la validación cruzada permiten NaNs en los arreglos de entrada para que preprocesadores como preprocessing.Imputer puedan ser entrenados dentro del bucle de validación cruzada, evitando posibles resultados sesgados.

  • La regresión de cresta ahora puede tratar con ponderados de la muestra en el espacio de características (solo espacio de muestras hasta entonces). Por Michael Eickenberg Ambas soluciones son proporcionadas por el solucionador Cholesky.

  • Varías métricas de clasificación y regresión ahora soportan muestras ponderadas con el nuevo argumento sample_weight: metrics.accuracy_score, metrics.zero_one_loss, metrics.precision_score, metrics.average_precision_score, metrics.f1_score, metrics.fbeta_score, metrics.recall_score, metrics.roc_auc_score, metrics.explained_variance_score, metrics.mean_squared_error, metrics.mean_absolute_error, metrics.r2_score. Por Noel Dawe.

  • Aceleración del generador de muestras datasets.make_multilabel_classification. Por Joel Nothman.

Mejoras de documentación

  • El tutorial Trabajando con Datos de Texto ahora ha sido trabajado en la sección de tutoriales de la documentación principal. Incluye ejercicios y esqueletos para la presentación del tutorial. Tutorial original creado por varios autores incluidos Olivier Grisel., Lars Buitinck y muchos otros. Integración del tutorial dentro de la documentación scikit-learn por Jaques Grobler

  • Añadida documentación del Rendimiento Computacional. Discusión y ejemplos de la latencia de predicción / producción y diferentes factores que tienen influencia sobre la velocidad. Tips adicionales para la construcción de modelos mas rápidos y elección de un compromiso relevante entre la velocidad y el poder predictivo. Por Eustache Diemert.

Corrección de errores

  • Corregido error en decomposition.MiniBatchDictionaryLearning : partial_fit no funcionaba correctamente.

  • Corregido error en linear_model.stochastic_gradient : l1_ratio fue usado como (1.0 - l1_ratio) .

  • Corregido error en multiclass.OneVsOneClassifier con etiquetas de cadena

  • Se ha corregido un error en LassoCV y ElasticNetCV: no pre-calculaban la matriz de Gram con precompute=True o precompute="auto" y n_samples > n_features. Por Manoj Kumar.

  • Se ha corregido la estimación incorrecta de los grados de libertad en feature_selection.f_regression cuando las variantes no están centradas. Por Virgile Fritsch.

  • Se ha corregido una condición de carrera en el procesamiento paralelo con pre_dispatch != "all" (por ejemplo, en cross_val_score). Por Olivier Grisel.

  • Se plantea un error en cluster.FeatureAgglomeration y cluster.WardAgglomeration cuando no se dan muestras, en lugar de devolver un análisis de conglomerados sin sentido.

  • Corregido error en gradient_boosting.GradientBoostingRegressor con loss='huber': gamma podría no haber sido inicializado.

  • Corregidas importancias de características calculadas con un bosque de árboles aleatorios cuando se ajustan con sample_weight != None y/o con bootstrap=True. Por Gilles Louppe.

Resumen de cambios en la API

  • sklearn.hmm está obsoleto. Su eliminación está prevista para la versión 0.17.

  • El uso de covariance.EllipticEnvelop se ha eliminado después de su obsolescencia. Por favor, utiliza covariance.EllipticEnvelope en su lugar.

  • cluster.Ward está obsoleto. En su lugar, usa cluster.AgglomerativeClustering.

  • cluster.WardClustering está obsoleto. Usa

  • cluster.AgglomerativeClustering en su lugar.

  • cross_validation.Bootstrap está obsoleto. cross_validation.KFold o cross_validation.ShuffleSplit son recomendados en su lugar.

  • El apoyo directo para el formato de multietiquetas secuencia de secuencias (o lista de listas) está obsoleto. Para convertir a y desde el formato soportado de matriz de indicador binario, utiliza MultiLabelBinarizer. Por Joel Nothman.

  • Añade el método de puntuación a PCA siguiendo el modelo de PCA probabilístico y obsoleta el modelo ProbabilisticPCA cuya implementación de puntuación no es correcta. La computación ahora explota también el lemma de inversión de matriz para cálculos más rápidos. Por Alexandre Gramfort.

  • El método de puntuación de FactorAnalysis ahora devuelve el logaritmo de la verosimilitud promedio de las muestras. Utiliza score_samples para obtener el logaritmo de la verosimilitud de cada muestra. Por Alexandre Gramfort.

  • La generación de máscaras booleanas (el ajuste indices=False) desde generadores de validación cruzada está obsoleto. El soporte para las máscaras se eliminará en 0.17. Los generadores han producido arreglos de índices por defecto desde 0.10. Por Joel Nothman.

  • Los arreglos 1-d que contienen cadenas con dtype=object (como se usa en Pandas) ahora se consideran objetivos de clasificación válidos. Esto corrige una regresión de la versión 0.13 en algunos clasificadores. Por Joel Nothman.

  • Corregir el atributo incorrecto explained_variance_ratio_ en RandomizedPCA. Por Alexandre Gramfort.

  • Ajuste de alfas para cada l1_ratio en lugar de mean_l1_ratio en linear_model.ElasticNetCV y linear_model.LassoCV. Esto cambia la forma de alphas_ de (n_alphas,) a (n_l1_ratio, n_alphas) si el l1_ratio proporcionado es una matriz 1-D como un objeto de longitud mayor que uno. Por Manoj Kumar.

  • Corrección de linear_model.ElasticNetCV y linear_model.LassoCV cuando se ajusta el intercepto y los datos de entrada son dispersos. La rejilla automática de alphas no se calculaba correctamente y la escala con normalización era incorrecta.Por Manoj Kumar.

  • Corrección del número máximo incorrecto de características escogidas (max_features) en cada división para árboles de división, bosques aleatorios y potenciación de árboles degradados. Previamente, el conteo para el número de características escogidas empezaba solo después de una característica no constante en la división. Esta corrección de errores afectará el rendimiento computacional y de generalización de aquellos algoritmos en la presencia de características constantes. Para obtener generalizaciones previas debería modificar el valor de max_features. Por Arnaud Joly.

  • Corrección del número máximo incorrecto de características escogidas (max_features) en cada división por ensemble.ExtraTreesClassifier y ensemble.ExtraTreesRegressor. Previamente, solo características no constantes en la división se contarán como escogidas. Ahora las características constantes se cuentan como escogidas. Además, al menos una característica debe ser no constante para hacer una división válida. Esta corrección de errores afectará el rendimiento de cálculo y generalización para árboles adicionales en la presencía de características constantes. Para obtener el rendimiento de generalización previo, deberías modifícar el valor de max_features Por Arnaud Joly.

  • Corrección de utils.compute_class_weight cuando class_weight=="auto". Previamente se rompió para la entrada de``dtype`` no entero y el arreglo ponderado que se devolvía estaba equivocado. Por Manoj Kumar.

  • Corregir cross_validation.Bootstrap para devolver ValueError cuando n_train + n_test > n. Por Ronald Phlypo.

Personas

Lista de colaboradores de la versión 0.15.1 por número de commits.

  • 312 Olivier Grisel

  • 275 Lars Buitinck

  • 221 Gael Varoquaux

  • 148 Arnaud Joly

  • 134 Johannes Schönberger

  • 119 Gilles Louppe

  • 113 Joel Nothman

  • 111 Alexandre Gramfort

  • 95 Jaques Grobler

  • 89 Denis Engemann

  • 83 Peter Prettenhofer

  • 83 Alexander Fabisch

  • 62 Mathieu Blondel

  • 60 Eustache Diemert

  • 60 Nelle Varoquaux

  • 49 Michael Bommarito

  • 45 Manoj-Kumar-S

  • 28 Kyle Kastner

  • 26 Andreas Mueller

  • 22 Noel Dawe

  • 21 Maheshakya Wijewardena

  • 21 Brooke Osborn

  • 21 Hamzeh Alsalhi

  • 21 Jake VanderPlas

  • 21 Philippe Gervais

  • 19 Bala Subrahmanyam Varanasi

  • 12 Ronald Phlypo

  • 10 Mikhail Korobov

  • 8 Thomas Unterthiner

  • 8 Jeffrey Blackburne

  • 8 eltermann

  • 8 bwignall

  • 7 Ankit Agrawal

  • 7 CJ Carey

  • 6 Daniel Nouri

  • 6 Chen Liu

  • 6 Michael Eickenberg

  • 6 ugurthemaster

  • 5 Aaron Schumacher

  • 5 Baptiste Lagarde

  • 5 Rajat Khanduja

  • 5 Robert McGibbon

  • 5 Sergio Pascual

  • 4 Alexis Metaireau

  • 4 Ignacio Rossi

  • 4 Virgile Fritsch

  • 4 Sebastian Säger

  • 4 Ilambharathi Kanniah

  • 4 sdenton4

  • 4 Robert Layton

  • 4 Alyssa

  • 4 Amos Waterland

  • 3 Andrew Tulloch

  • 3 murad

  • 3 Steven Maude

  • 3 Karol Pysniak

  • 3 Jacques Kvam

  • 3 cgohlke

  • 3 cjlin

  • 3 Michael Becker

  • 3 hamzeh

  • 3 Eric Jacobsen

  • 3 john collins

  • 3 kaushik94

  • 3 Erwin Marsi

  • 2 csytracy

  • 2 LK

  • 2 Vlad Niculae

  • 2 Laurent Direr

  • 2 Erik Shilts

  • 2 Raul Garreta

  • 2 Yoshiki Vázquez Baeza

  • 2 Yung Siang Liau

  • 2 abhishek thakur

  • 2 James Yu

  • 2 Rohit Sivaprasad

  • 2 Roland Szabo

  • 2 amormachine

  • 2 Alexis Mignon

  • 2 Oscar Carlsson

  • 2 Nantas Nardelli

  • 2 jess010

  • 2 kowalski87

  • 2 Andrew Clegg

  • 2 Federico Vaggi

  • 2 Simon Frid

  • 2 Félix-Antoine Fortin

  • 1 Ralf Gommers

  • 1 t-aft

  • 1 Ronan Amicel

  • 1 Rupesh Kumar Srivastava

  • 1 Ryan Wang

  • 1 Samuel Charron

  • 1 Samuel St-Jean

  • 1 Fabian Pedregosa

  • 1 Skipper Seabold

  • 1 Stefan Walk

  • 1 Stefan van der Walt

  • 1 Stephan Hoyer

  • 1 Allen Riddell

  • 1 Valentin Haenel

  • 1 Vijay Ramesh

  • 1 Will Myers

  • 1 Yaroslav Halchenko

  • 1 Yoni Ben-Meshulam

  • 1 Yury V. Zaytsev

  • 1 adrinjalali

  • 1 ai8rahim

  • 1 alemagnani

  • 1 alex

  • 1 benjamin wilson

  • 1 chalmerlowe

  • 1 dzikie drożdże

  • 1 jamestwebber

  • 1 matrixorz

  • 1 popo

  • 1 samuela

  • 1 François Boulogne

  • 1 Alexander Measure

  • 1 Ethan White

  • 1 Guilherme Trein

  • 1 Hendrik Heuer

  • 1 IvicaJovic

  • 1 Jan Hendrik Metzen

  • 1 Jean Michel Rouly

  • 1 Eduardo Ariño de la Rubia

  • 1 Jelle Zijlstra

  • 1 Eddy L O Jansson

  • 1 Denis

  • 1 John

  • 1 John Schmidt

  • 1 Jorge Cañardo Alastuey

  • 1 Joseph Perla

  • 1 Joshua Vredevoogd

  • 1 José Ricardo

  • 1 Julien Miotte

  • 1 Kemal Eren

  • 1 Kenta Sato

  • 1 David Cournapeau

  • 1 Kyle Kelley

  • 1 Daniele Medri

  • 1 Laurent Luce

  • 1 Laurent Pierron

  • 1 Luis Pedro Coelho

  • 1 DanielWeitzenfeld

  • 1 Craig Thompson

  • 1 Chyi-Kwei Yau

  • 1 Matthew Brett

  • 1 Matthias Feurer

  • 1 Max Linke

  • 1 Chris Filo Gorgolewski

  • 1 Charles Earl

  • 1 Michael Hanke

  • 1 Michele Orrù

  • 1 Bryan Lunt

  • 1 Brian Kearns

  • 1 Paul Butler

  • 1 Paweł Mandera

  • 1 Peter

  • 1 Andrew Ash

  • 1 Pietro Zambelli

  • 1 staubda