Versión 0.12.1¶
08 de octubre de 2012
La versión 0.12.1 es una versión de corrección de errores sin características adicionales, sino que es un conjunto de correcciones de errores
Registro de cambios¶
Mejora de la estabilidad numérica en el embedding espectral de Gael Varoquaux
Doctest bajo windows 64bit por Gael Varoquaux
Corrección de la documentación de la red elástica por Andreas Müller y Alexandre Gramfort
Comportamiento adecuado con arreglos NumPy ordenados en fortran por Gael Varoquaux
Hacer que GridSearchCV funcione con una matriz dispersa no CSR por Lars Buitinck
Fijar la computación paralela en MDS por Gael Varoquaux
Fijar el soporte de Unicode en el vectorizador de conteo por Andreas Müller
Corregir la ruptura de MinCovDet con X.shape = (3, 1) por Virgile Fritsch
Fijar el clon de los objetos SGD por Peter Prettenhofer
Estabilizar GMM por Virgile Fritsch
Personas¶
Versión 0.12¶
4 de septiembre de 2012
Registro de cambios¶
Varias mejoras de velocidad del módulo decision trees, por Gilles Louppe.
GradientBoostingRegressor
yGradientBoostingClassifier
ahora soportan el submuestreo de características a través del argumentomax_features
, por Peter Prettenhofer.Añadidas las funciones de pérdida de Huber y Quantile a
GradientBoostingRegressor
, por Peter Prettenhofer.Decision trees y forests of randomized trees ahora soportan problemas de clasificación y regresión de salida múltiple, por Gilles Louppe.
Añadido
LabelEncoder
, una sencilla clase de utilidad para normalizar etiquetas o transformar etiquetas no numéricas, por Mathieu Blondel.Se ha añadido la pérdida insensible a épsilon y la capacidad de hacer predicciones probabilísticas con la pérdida huber modificada en Descenso de Gradiente Estocástico, por Mathieu Blondel.
Añadido Escalamiento Multidimensional (Multi-dimensional Scaling, MDS), por Nelle Varoquaux.
El cargador de formatos de archivos SVMlight ahora detecta los archivos comprimidos (gzip/bzip2) y los descomprime sobre la marcha, por Lars Buitinck.
El serializador del formato de archivo SVMlight ahora preserva los valores de punto flotante de doble precisión, por Olivier Grisel.
Se ha añadido un framework de pruebas común para todos los estimadores, por Andreas Müller.
Mensajes de error comprensibles para estimadores que no aceptan entradas dispersas por Gael Varoquaux
Aceleración de la agrupación jerárquica por Gael Varoquaux. En particular, la construcción del árbol admite ahora una parada anticipada. Esto es útil cuando el número de conglomerados no es pequeño comparado con el número de muestras.
Añadir MultiTaskLasso y MultiTaskElasticNet para la selección conjunta de características, por Alexandre Gramfort.
Añadidas las funciones de conveniencia
metrics.auc_score
ymetrics.average_precision_score
por Andreas Müller.Mejora del soporte de matrices dispersas en el módulo Selección de características por Andreas Müller.
Nuevo analizador de n-gram de caracteres que tiene en cuenta los límites de las palabras para el módulo Extracción de característica de texto de @kernc.
Se ha corregido un error en la agrupación espectral que daba lugar a agrupaciones de un solo punto por parte de Andreas Müller.
En
CountVectorizer
, se ha añadido una opción para ignorar las palabras poco frecuentes,min_df
por Andreas Müller.Añadir soporte para múltiples objetivos en algunos modelos lineales (ElasticNet, Lasso y OrthogonalMatchingPursuit) por Vlad Niculae y Alexandre Gramfort.
Correcciones en la función de puntuación
ProbabilisticPCA
por Wei Li.Se ha corregido el cálculo de la importancia de las características en Gradient Tree Boosting.
Resumen de cambios en la API¶
El antiguo paquete
scikits.learn
ha desaparecido; todo el código debe importar desklearn
en su lugar, que fue introducido en 0.9.En
metrics.roc_curve
, el arreglothresholds
se devuelve ahora con su orden invertido, para mantenerlo consistente con el orden de losfpr
ytpr
devueltos.En los objetos
hmm
, comoGaussianHMM
,MultinomialHMM
, etc., todos los parámetros deben pasarse al objeto al inicializarlo y no a través defit
. Ahorafit
sólo aceptará los datos como parámetro de entrada.Para todas las clases de SVM, un comportamiento defectuoso de
gamma
fue corregido. Antes, el valor gamma predeterminado sólo se calculaba la primera vez que se llamaba afit
y luego se almacenaba. Ahora se recalcula en cada llamada afit
.Todas las clases
Base
son ahora meta clases abstractas para que no puedan ser instanciadas.cluster.ward_tree
ahora también devuelve el arreglo de los padres. Esto es necesario para la parada anticipada, en cuyo caso el árbol no está completamente construido.En
CountVectorizer
los parámetrosmin_n
ymax_n
se unieron al parámetron_gram_range
para permitir la búsqueda en cuadrícula de ambos a la vez.En
CountVectorizer
, las palabras que sólo aparecen en un documento se ignoran ahora por defecto. Para reproducir el comportamiento anterior, establecemin_df=1
.Corregida la inconsistencia de la API:
linear_model.SGDClassifier.predict_proba
ahora devuelve un arreglo de 2d cuando se ajusta a dos clases.Se ha corregido una incoherencia de la API:
discriminant_analysis.QuadraticDiscriminantAnalysis.decision_function
ydiscriminant_analysis.LinearDiscriminantAnalysis.decision_function
ahora devuelven 1d arreglos cuando se ajustan a dos clases.La red de alfas utilizada para el ajuste de
LassoCV
yElasticNetCV
se almacena ahora en el atributoalphas_
en lugar de anular el parámetro initalphas
.Los modelos lineales en los que alfa se estima por validación cruzada almacenan el valor estimado en el atributo
alpha_
en lugar de sóloalpha
obest_alpha
.GradientBoostingClassifier
ahora soportastaged_predict_proba
, ystaged_predict
.SVC
y otras clases de SVM dispersas están ahora obsoletas. Todas las clases del módulo Máquinas de Vectores de Soporte ahora seleccionan automáticamente la representación dispersa o densa en función de la entrada.Todos los algoritmos de conglomerado ahora interpretan el arreglo
X
dado afit
como datos de entrada, en particularSpectralClustering
yAffinityPropagation
que anteriormente esperaban matrices de afinidad.Para los algoritmos de conglomerado que toman como parámetro el número deseado de conglomerados, este parámetro se llama ahora
n_clusters
.
Personas¶
267 Andreas Müller
52 Vlad Niculae
44 Nelle Varoquaux
30 Alexis Mignon
30 Immanuel Bayer
16 Subhodeep Moitra
13 Yannick Schwartz
12 @kernc
9 Daniel Duckworth
8 John Benediktsson
7 Marko Burjek
4 Alexandre Abraham
3 Florian Hoenig
3 flyingimmidev
2 Francois Savard
2 Hannes Schulz
2 Peter Welinder
2 Wei Li
1 Alex Companioni
1 Brandyn A. White
1 Bussonnier Matthias
1 Charles-Pierre Astolfi
1 Dan O’Huiginn
1 David Cournapeau
1 David Cournapeau
1 Ludwig Schwardt
1 Olivier Hervieu
1 Sergio Medina
1 Shiqiao Du
1 Tim Sheerman-Chase
1 buguen
Versión 0.11¶
7 de mayo de 2012
Registro de cambios¶
Destacados¶
Árboles de regresión con potenciación de gradiente (Gradient Tree Boosting) para clasificación y regresión por Peter Prettenhofer y Scott White .
Simple cargador de características basado en dict con soporte para variables categóricas (
DictVectorizer
) por Lars Buitinck.Se ha añadido el coeficiente de correlación de Matthews (
metrics.matthews_corrcoef
) y se han añadido las opciones de macro y micromedio aprecision_score
,metrics.recall_score
yf1_score
por Satrajit Ghosh.Estimaciones Fuera de la Bolsa (Out of Bag) de error de generalización para Métodos combinados de Andreas Müller.
Modelos lineales dispersos aleatorios para la selección de características, por Alexandre Gramfort y Gael Varoquaux
Propagación de etiquetas para el Aprendizaje semi supervisado, por Clay Woolam. Nota la API semi supervisada es todavía un trabajo en progreso, y puede cambiar.
Añadida la selección de modelos BIC/AIC a la clásica Modelos de mezclas gaussianas y unificada la API con el resto de scikit-learn, por Bertrand Thirion
Añadido
StratifiedShuffleSplit
, que es unaShuffleSplit
con splits balanceados, por Yannick Schwartz.NearestCentroid
clasificador añadido, junto con un parámetroshrink_threshold
, que implementa la clasificación de centroides reducidos, por Robert Layton.
Otros cambios¶
Se han fusionado las implementaciones densas y dispersas del módulo Descenso de Gradiente Estocástico y se han expuesto los tipos de extensión de utilidad para los conjuntos de datos secuenciales
seq_dataset
y los vectores de pesoweight_vector
de Peter Prettenhofer.Se ha añadido
partial_fit
(soporte para el aprendizaje online/minilote) y warm_start al módulo Descenso de Gradiente Estocástico de Mathieu Blondel.Implementaciones densas y dispersas de las clases Máquinas de Vectores de Soporte y
LogisticRegression
fusionadas por Lars Buitinck.Los regresores pueden utilizarse ahora como estimador base en el módulo Algoritmos multiclase y multisalida de Mathieu Blondel.
Añadida la opción n_jobs a
metrics.pairwise.pairwise_distances
ymetrics.pairwise.pairwise_kernels
para el cálculo en paralelo, por Mathieu Blondel.K-medias ahora puede ejecutarse en paralelo, utilizando el argumento
n_jobs
para K-medias oKMeans
, por Robert Layton.Se ha mejorado la documentación de Validación cruzada: evaluación del rendimiento del estimador y Ajustar los hiperparámetros de un estimador y se ha introducido la nueva función de ayuda
cross_validation.train_test_split
por Olivier GriselSVC
los miembroscoef_
yintercept_
cambiaron de signo por consistencia condecision_function
; parakernel==linear
,coef_
fue corregido en el caso uno-vs-uno, por Andreas Müller.Mejoras en el rendimiento de la regresión de cresta eficiente con validación cruzada, especialmente para el caso de
n_samples > n_features
, enRidgeCV
, por Reuben Fletcher-Costin.Refactorización y simplificación de la API Extracción de característica de texto y corrección de un error que provocaba un posible IDF negativo, por Olivier Grisel.
Se ha eliminado la opción de poda de haces en el módulo
_BaseHMM
ya que es difícil de Cythonizar. Si estás interesado en contribuir con una versión de Cython, puedes usar la versión de python en el historial de git como referencia.Las clases en Vecino más cercano ahora soportan la métrica arbitraria de Minkowski para las búsquedas de vecinos más cercanos. La métrica se puede especificar con el argumento
p
.
Resumen de cambios en la API¶
EnvolventeElíptica
está ahora obsoleto - Por favor, utilizaEnvolventeElíptica
en su lugar.NeighborsClassifier
yNeighborsRegressor
han desaparecido del módulo Vecino más cercano. Utiliza las clasesKNeighborsClassifier
,RadiusNeighborsClassifier
,KNeighborsRegressor
y/oRadiusNeighborsRegressor
en su lugar.Las clases dispersas del módulo Descenso de Gradiente Estocástico están ahora obsoletas.
En
GMM
,DPGMM
yVBGMM
, los parámetros deben pasarse a un objeto al inicializarlo y no a través defit
. Ahorafit
sólo aceptará los datos como parámetro de entrada.los métodos
rvs
ydecode
del móduloGMM
están ahora obsoletos. En su lugar, deben utilizarsesample
yscore
opredict
.los atributos
_scores
y_pvalues
en los objetos de selección de características univariantes están ahora obsoletos. En su lugar, se debe utilizarscores_
opvalues_
.En
LogisticRegression
,LinearSVC
,SVC
yNuSVC
, el parámetroclass_weight
es ahora un parámetro de inicialización, no un parámetro a ajustar. Esto hace posible las búsquedas en cuadrícula sobre este parámetro.LFW
data
es ahora siempre de forma(n_samples, n_features)
para ser coherente con el conjunto de datos de caras Olivetti. Utilice el atributoimages
ypairs
para acceder a las formas de las imágenes naturales.En
LinearSVC
, el significado del parámetromulti_class
ha cambiado. Las opciones ahora son'ovr'
y'crammer_singer'
, siendo'ovr'
la predeterminada. Esto no cambia el comportamiento por defecto pero esperamos que sea menos confuso.La clase
Vectorizer
está obsoleta y se sustituye porTfidfVectorizer
.Se ha eliminado la estructura anidada del preprocesador/analizador para la extracción de características de texto. Todas esas características se pasan ahora directamente como argumentos planos del constructor a
TfidfVectorizer
yCountVectorizer
, en particular se utilizan ahora los siguientes parámetros:analyzer
puede ser'word'
o'char'
para cambiar el esquema de análisis por defecto, o utilizar una llamada específica de python (como anteriormente).Se han introducido el
tokenizer
y elpreprocessor
para que siga siendo posible personalizar esos pasos con la nueva API.input
controla explícitamente cómo interpretar la secuencia pasada afit
ypredict
: nombres de archivo, objetos de archivo o cadenas directas (byte o Unicode).la decodificación del conjunto de caracteres es explícita y estricta por defecto.
el
vocabulary
, ajustado o no, se almacena ahora en el atributovocabulary_
para ser coherente con las convenciones del proyecto.La clase
TfidfVectorizer
ahora deriva directamente deCountVectorizer
para hacer la búsqueda en cuadrícula trivial.los métodos
rvs
en el módulo_BaseHMM
están ahora obsoletos. En su lugar, se debe utilizarsample
.Se elimina la opción de poda de haces en el módulo
_BaseHMM
ya que es difícil de citar. Si estás interesado, puedes mirar en los códigos de la historia por git.El cargador de formatos SVMlight soporta ahora archivos con índices de columna basados en cero y en uno, ya que ambos se dan «en la naturaleza».
Los argumentos de la clase
ShuffleSplit
son ahora consistentes conStratifiedShuffleSplit
. Los argumentostest_fraction
ytrain_fraction
están obsoletos y han sido renombrados comotest_size
ytrain_size
y pueden aceptar tantofloat
comoint
.Los argumentos de la clase
Bootstrap
son ahora consistentes conStratifiedShuffleSplit
. Los argumentosn_test
yn_train
están obsoletos y se han renombrado comotest_size
ytrain_size
y pueden aceptar tantofloat
comoint
.Argumento
p
añadido a las clases en Vecino más cercano para especificar una métrica Minkowski arbitraria para las búsquedas de vecinos más cercanos.
Personas¶
282 Andreas Müller
198 Gael Varoquaux
129 Olivier Grisel
114 Mathieu Blondel
103 Clay Woolam
28 flyingimmidev
26 Shiqiao Du
17 David Marek
14 Vlad Niculae
11 Yannick Schwartz
9 fcostin
7 Nick Wilson
5 Adrien Gaidon
5 Nelle Varoquaux
5 Emmanuelle Gouillart
3 Joonas Sillanpää
3 Paolo Losi
2 Charles McCarthy
2 Roy Hyunjin Han
2 Scott White
2 ibayer
1 Brandyn White
1 Carlos Scheidegger
1 Claire Revillet
1 Conrad Lee
1 Jan Hendrik Metzen
1 Meng Xinfan
1 Shiqiao
1 Udi Weinsberg
1 Virgile Fritsch
1 Xinfan Meng
1 Yaroslav Halchenko
1 jansoe
1 Leon Palafox
Versión 0.10¶
11 de enero de 2012
Registro de cambios¶
Se ha eliminado la compatibilidad con Python 2.5; la versión mínima de Python necesaria para utilizar scikit-learn es ahora la 2.6.
Covarianza inversa dispersa utilizando el grafo Lasso, con un estimador validado cruzado asociado, por Gael Varoquaux
Nuevo módulo Tree por Brian Holt, Peter Prettenhofer, Satrajit Ghosh y Gilles Louppe. El módulo viene con documentación completa y ejemplos.
Se ha corregido un error en el módulo RFE por parte de Gilles Louppe (problema #378).
Se ha corregido una fuga de memoria en el módulo Máquinas de Vectores de Soporte por parte de Brian Holt (problema #367).
Pruebas más rápidas de Fabian Pedregosa y otros.
Métrica de evaluación del análisis de cluster del coeficiente de silueta añadida como
silhouette_score
por Robert Layton.Se ha corregido un error en K-medias en el manejo del parámetro
n_init
: el algoritmo de conglomerado se ejecutaban_init
veces pero se retenía la última solución en lugar de la mejor solución de Olivier Grisel.Refactorización menor en el módulo Descenso de Gradiente Estocástico; consolidación de los métodos de predicción densa y dispersa; mejora del rendimiento del tiempo de prueba convirtiendo los parámetros del modelo en arreglos de estilo fortran después del ajuste (sólo multiclase).
Métrica de información mutua ajustada añadida como
adjusted_mutual_info_score
por Robert Layton.Los modelos como SVC/SVR/LinearSVC/LogisticRegression de libsvm/liblinear ahora soportan el escalado del parámetro de regularización C por el número de muestras por Alexandre Gramfort.
Nuevo módulo Métodos de ensamblaje por Gilles Louppe y Brian Holt. El módulo viene con el algoritmo de bosque aleatorio y el método de extra-árboles, junto con documentación y ejemplos.
Detección de novedades y valores atípicos: detección de valores atípicos y novedades, por Virgile Fritsch.
Aproximación de núcleo: una transformación que implementa la aproximación de kernel para el SGD rápido en núcleos no lineales por Andreas Müller.
Se ha corregido un error debido al intercambio de módulos en Búsqueda de coincidencias ortogonales (OMP) por parte de Vlad Niculae.
Codificación dispersa con un diccionario precalculado por Vlad Niculae.
K-medias de mini lotes mejoras de rendimiento por Olivier Grisel.
K-medias soporte para matrices dispersas por Mathieu Blondel.
Documentación mejorada para desarrolladores y para el módulo
sklearn.utils
, por Jake Vanderplas.Cargador de conjuntos de datos 20newsgroups vectorizados (
fetch_20newsgroups_vectorized
) por Mathieu Blondel.Utilidades para el cálculo rápido de la media y la varianza de las matrices dispersas por Mathieu Blondel.
Hacer que
scale
yScaler
funcionen en matrices dispersas por Olivier GriselImportaciones de características mediante árboles de decisión y/o bosques de árboles, por Gilles Louppe.
Implementación paralela de bosques de árboles aleatorios por Gilles Louppe.
ShuffleSplit
puede submuestrear los conjuntos de entrenamiento así como los conjuntos de prueba por Olivier Grisel.Errores en la construcción de la documentación corregidos por Andreas Müller.
Resumen de cambios en la API¶
Aquí están las instrucciones de migración de código cuando se actualiza desde la versión 0.9 de scikit-learn:
Algunos estimadores que pueden sobrescribir sus entradas para ahorrar memoria tenían antes los parámetros
overwrite_
; éstos han sido sustituidos por los parámetroscopy_
con el significado exactamente contrario.Esto afecta especialmente a algunos de los estimadores de
linear_model
. El comportamiento por defecto sigue siendo copiar todo lo que se pasa.El cargador de conjuntos de datos SVMlight
load_svmlight_file
ya no permite cargar dos archivos a la vez; en su lugar, utilizaload_svmlight_files
. Además, el parámetro (no utilizado)buffer_mb
ha desaparecido.Los estimadores dispersos del módulo Descenso de Gradiente Estocástico utilizan el vector de parámetros densos
coef_
en lugar desparse_coef_
. Esto mejora significativamente el rendimiento del tiempo de prueba.El módulo Estimación de covarianza tiene ahora un estimador robusto de la covarianza, el estimador del Determinante Mínimo de la Covarianza.
Las métricas de evaluación de conglomerados en
metrics.cluster
han sido refactorizadas, pero los cambios son compatibles con el pasado. Se han trasladado almetrics.cluster.supervised
, junto conmetrics.cluster.unsupervised
que contiene el Coeficiente de Silueta.La función
permutation_test_score
se comporta ahora de la misma manera quecross_val_score
(es decir, utiliza la puntuación media de los pliegues)Los generadores de validación cruzada utilizan ahora índices enteros (
indices=True
) por defecto en lugar de máscaras booleanas. Esto hace más intuitivo su uso con datos de matrices dispersas.Las funciones utilizadas para la codificación dispersa,
sparse_encode
ysparse_encode_parallel
se han combinado ensparse_encode
, y las formas de los arreglos se han transpuesto para que sean consistentes con la configuración de la factorización de la matriz, a diferencia de la configuración de la regresión.Se ha corregido un error en el manejo del formato de los archivos SVMlight/LibSVM; los archivos generados con
dump_svmlight_file
deberían volver a generarse. (Deberían seguir funcionando, pero accidentalmente se les ha añadido una columna extra de ceros)La clase
BaseDictionaryLearning
ha sido sustituida porSparseCodingMixin
.fast_svd
ha sido renombrado comorandomized_svd
y el sobremuestreo por defecto se fija ahora en 10 vectores aleatorios adicionales en lugar de duplicar el número de componentes a extraer. El nuevo comportamiento sigue el documento de referencia.
Personas¶
Las siguientes personas contribuyeron a scikit-learn desde la última versión:
246 Andreas Müller
242 Olivier Grisel
220 Gilles Louppe
183 Brian Holt
166 Gael Varoquaux
144 Lars Buitinck
73 Vlad Niculae
60 Robert Layton
44 Noel Dawe
3 Jan Hendrik Metzen
3 Kenneth C. Arnold
3 Shiqiao Du
3 Tim Sheerman-Chase
2 Bala Subrahmanyam Varanasi
2 DraXus
2 Michael Eickenberg
1 Bogdan Trach
1 Félix-Antoine Fortin
1 Juan Manuel Caicedo Carvajal
1 Nelle Varoquaux
1 Tiziano Zito
1 Xinfan Meng
Versión 0.9¶
21 de septiembre de 2011
scikit-learn 0.9 fue lanzado en septiembre de 2011, tres meses después de la versión 0.8 e incluye los nuevos módulos Aprendizaje múltiple, El proceso de Dirichlet así como varios algoritmos nuevos y mejoras en la documentación.
Esta versión también incluye el trabajo de aprendizaje de diccionario desarrollado por Vlad Niculae como parte del programa Google Summer of Code.
Registro de cambios¶
Nuevo módulo Aprendizaje múltiple por Jake Vanderplas y Fabian Pedregosa.
Nuevo Dirichlet Process Modelo de mezclas gaussianas por Alexandre Passos
Refactorización del módulo Vecino más cercano por Jake Vanderplas : refactorización general, soporte para matrices dispersas en la entrada, mejoras en la velocidad y en la documentación. Ver la siguiente sección para una lista completa de los cambios en la API.
Mejoras en el módulo Selección de características por Gilles Louppe : refactorización de las clases RFE, reescritura de la documentación, aumento de la eficiencia y cambios menores en la API.
Análisis de componentes principales dispersos (SparsePCA y MiniBatchSparsePCA) de Vlad Niculae, Gael Varoquaux y Alexandre Gramfort
La impresión de un estimador ahora se comporta independientemente de las arquitecturas y la versión de Python gracias a Jean Kossaifi.
Loader para el formato libsvm/svmlight por Mathieu Blondel y Lars Buitinck
Mejoras en la documentación: imágenes en miniatura en la galería de ejemplos por Fabian Pedregosa.
Corrección de errores importantes en el módulo Máquinas de Vectores de Soporte (segfaults, mal rendimiento) por Fabian Pedregosa.
Añadido Bayesiano ingenuo multinomial y Bayesiano ingenuo de Bernoulli por Lars Buitinck
Optimización de la extracción de características del texto por Lars Buitinck
Selección de rasgos por chi-cuadrado (
feature_selection.univariate_selection.chi2
) por Lars Buitinck.Conjuntos de datos generados refactorización del módulo por Gilles Louppe
Reescritura del árbol de bolas por Jake Vanderplas
Implementación del algoritmo DBSCAN por Robert Layton
Kmeans predice y transforma por Robert Layton
Refactorización del módulo de preprocesamiento por Olivier Grisel
Media desplazada más rápida por Conrad Lee
Nuevo
Bootstrap
, Validación cruzada de permutaciones aleatorias, también conocida como Mezcla y División y varias otras mejoras en los esquemas de validación cruzada por Olivier Grisel y Gael VaroquauxÍndice de Rand ajustado y métrica de evaluación del conglomerado V-Measure de Olivier Grisel
Añadido
Orthogonal Matching Pursuit
por Vlad NiculaeAñadidas las utilidades del extractor de parches 2D en el módulo Extracción de características por Vlad Niculae
Implementación de
LassoLarsCV
(solucionador Lasso de validación cruzada utilizando el algoritmo Lars) yLassoLarsIC
(selección de modelos BIC/AIC en Lars) por Gael Varoquaux y Alexandre GramfortMejoras de escalabilidad en
metrics.roc_curve
por Olivier HérculesFunciones de ayuda a la distancia
metrics.pairwise.pairwise_distances
ymetrics.pairwise.pairwise_kernels
de Robert LaytonMini-Batch K-Means
de Nelle Varoquaux y Peter Prettenhofer.utilidades mldata de Pietro Berkes.
El conjunto de datos de caras Olivetti por David Warde-Farley.
Resumen de cambios en la API¶
Aquí están las instrucciones de migración de código cuando se actualiza desde la versión 0.8 de scikit-learn:
El paquete
scikits.learn
fue renombrado comosklearn
. Sigue existiendo un alias del paquetescikits.learn
para la compatibilidad con versiones anteriores.Los proyectos de terceros que dependen de scikit-learn 0.9+ deben actualizar su código base. Por ejemplo, en Linux / MacOSX simplemente ejecute (¡haz una copia de seguridad primero!):
find -name "*.py" | xargs sed -i 's/\bscikits.learn\b/sklearn/g'
Los estimadores ya no aceptan los parámetros del modelo como argumentos de
ajuste
: en su lugar, todos los parámetros deben pasarse únicamente como argumentos del constructor o utilizando el método ahora públicoset_params
heredado deBaseEstimator
.Algunos estimadores todavía pueden aceptar argumentos de palabras clave en el
fit
pero esto está restringido a los valores dependientes de los datos (por ejemplo, una matriz de Gram o una matriz de afinidad que se precalculan a partir de la matriz de datosX
.El paquete
cross_val
ha sido renombrado across_validation
aunque también existe un alias del paquetecross_val
para la compatibilidad con el pasado.Los proyectos de terceros que dependen de scikit-learn 0.9+ deben actualizar su código base. Por ejemplo, en Linux / MacOSX simplemente ejecute (¡haz una copia de seguridad primero!):
find -name "*.py" | xargs sed -i 's/\bcross_val\b/cross_validation/g'
El argumento
score_func
de la funciónsklearn.cross_validation.cross_val_score
ahora se espera que aceptey_test
yy_predicted
como únicos argumentos para las tareas de clasificación y regresión oX_test
para los estimadores no supervisados.El parámetro
gamma
para los algoritmos de la máquina de vectores de soporte se establece en1 / n_features
por defecto, en lugar de1 / n_samples
.El
sklearn.hmm
ha sido marcado como huérfano: será eliminado de scikit-learn en la versión 0.11 a menos que alguien contribuya con documentación, ejemplos y arregle los problemas de estabilidad numérica.sklearn.neighbors
se ha convertido en un submódulo. Los dos estimadores disponibles anteriormente,NeighborsClassifier
yNeighborsRegressor
han sido marcados como obsoletos. Su funcionalidad se ha dividido en cinco nuevas clases:NearestNeighbors
para búsquedas de vecinos no supervisadas,KNeighborsClassifier
yRadiusNeighborsClassifier
para problemas de clasificación supervisada, yKNeighborsRegressor
yRadiusNeighborsRegressor
para problemas de regresión supervisada.sklearn.ball_tree.BallTree
ha sido trasladado asklearn.neighbors.BallTree
. El uso de la primera generará una advertencia.sklearn.linear_model.LARS()
y las clases relacionadas (LassoLARS, LassoLARSCV, etc.) han sido renombradas asklearn.linear_model.Lars()
.Todas las métricas de distancia y núcleos en
sklearn.metrics.pairwise
tienen ahora un parámetro Y, que por defecto es None. Si no se da, el resultado es la distancia (o similitud del kernel) entre cada muestra en Y. Si se da, el resultado es la distancia por pares (o similitud del núcleo) entre las muestras en X a Y.sklearn.metrics.pairwise.l1_distance
se llama ahoramanhattan_distance
, y por defecto devuelve la distancia por pares. Para la distancia por componentes, establece el parámetrosum_over_features
aFalse
.
Los alias de paquetes de retrocompatibilidad y otras clases y funciones obsoletas se eliminarán en la versión 0.11.
Personas¶
38 personas han contribuido a esta publicación.
387 Vlad Niculae
320 Olivier Grisel
192 Lars Buitinck
179 Gael Varoquaux
168 Fabian Pedregosa (INRIA, Parietal Team)
127 Jake Vanderplas
120 Mathieu Blondel
42 Robert Layton
38 Nelle Varoquaux
30 Conrad Lee
22 Pietro Berkes
18 andy
17 David Warde-Farley
12 Brian Holt
11 Robert
8 Amit Aides
6 Salvatore Masecchia
5 Paolo Losi
4 Vincent Schut
3 Alexis Metaireau
3 Bryan Silverthorn
2 Minwoo Jake Lee
1 Emmanuelle Gouillart
1 David Cournapeau
1 Lucas Wiman
1 Thouis (Ray) Jones
1 Tim Sheerman-Chase
Versión 0.8¶
11 de mayo de 2011
scikit-learn 0.8 fue lanzado en mayo de 2011, un mes después del primer scikit-learn coding sprint
«internacional» <https://github.com/scikit-learn/scikit-learn/wiki/Upcoming-events>`_ y está marcado por la inclusión de módulos importantes: Análisis de conglomerados jerárquicos, Descomposición cruzada, Factorización matricial no negativa (NMF o NNMF), soporte inicial para Python 3 y por importantes mejoras y correcciones de errores.
Registro de cambios¶
En esta versión se han introducido varios módulos nuevos:
Nuevo módulo Análisis de conglomerados jerárquicos de Vincent Michel, Bertrand Thirion, Alexandre Gramfort y Gael Varoquaux.
Kernel PCA implementación de Mathieu Blondel
El conjunto de datos de reconocimiento facial Labeled Faces in the Wild por Olivier Grisel.
Nuevo módulo Descomposición cruzada por Edouard Duchesnay.
Factorización matricial no negativa (NMF o NNMF) módulo Vlad Niculae
Implementación del algoritmo Reducción Aproximante de Oracle de Virgile Fritsch en el módulo Estimación de covarianza.
Algunos otros módulos se han beneficiado de importantes mejoras o limpiezas.
Soporte inicial para Python 3: construye e importa limpiamente, algunos módulos son utilizables mientras otros tienen pruebas fallidas por Fabian Pedregosa.
PCA
es ahora utilizable desde el objeto Pipeline de Olivier Grisel.Correcciones de fugas de memoria en los enlaces de libsvm, BallTree más seguro de 64 bits por Lars Buitinck.
error y corrección de estilo en el algoritmo K-medias de Jan Schluíter.
Añadir atributo convergente a los Modelos de Mezcla Gaussiana por Vincent Schut.
Implementado
transform
,predicar_log_proba
enLinearDiscriminantAnalysis
Por Mathieu Blondel.Refactorización en el módulo Máquinas de Vectores de Soporte y corrección de errores por Fabian Pedregosa, Gael Varoquaux y Amit Aides.
Módulo SGD refactorizado (se ha eliminado la duplicación de código, se ha mejorado la nomenclatura de las variables), se ha añadido una interfaz para el peso de la muestra por Peter Prettenhofer.
Wrapped BallTree con Cython por Thouis (Ray) Jones.
Añadida la función
svm.l1_min_c
de Paolo Losi.Tipografías, estilo de documentos, etc. de Yaroslav Halchenko, Gael Varoquaux, Olivier Grisel, Yann Malet, Nicolas Pinto, Lars Buitinck y Fabian Pedregosa.
Personas¶
Personas que hicieron posible esta publicación precedida por el número de confirmaciones:
159 Olivier Grisel
96 Vlad Niculae
32 Paolo Losi
- 11 Virgile Fritsch
7 Lars Buitinck
6 Vincent Michel
4 Thouis (Ray) Jones
4 Vincent Schut
3 Jan Schlüter
2 Julien Miotte
2 Yann Malet
1 Amit Aides
1 Feth Arezki
1 Meng Xinfan
Versión 0.7¶
2 de marzo de 2011
scikit-learn 0.7 fue lanzado en marzo de 2011, aproximadamente tres meses después de la versión 0.6. Esta versión está marcada por las mejoras en la velocidad de los algoritmos existentes como k-Nearest Neighbors y el algoritmo K-Means y por la inclusión de un algoritmo eficiente para el cálculo de la solución Ridge Generalized Cross Validation. A diferencia de la versión anterior, no se han añadido nuevos módulos a esta versión.
Registro de cambios¶
Mejoras en el rendimiento del muestreo del Modelo de Mezcla Gaussiana [Jan Schlüter].
Implementación de un Ridge eficiente con validación cruzada en
RidgeCV
[Mathieu Blondel]Mejor manejo de la colinealidad y de la detención temprana en
linear_model.lars_path
[Alexandre Gramfort y Fabian Pedregosa].Correcciones para el ordenamiento liblineal de las etiquetas y el signo de los coeficientes [Dan Yamins, Paolo Losi, Mathieu Blondel y Fabian Pedregosa].
Mejoras en el rendimiento del algoritmo Nearest Neighbors en espacios de alta dimensión [Fabian Pedregosa].
Mejoras de rendimiento para
KMeans
[Gael Varoquaux y James Bergstra].Comprobación de la validez de las clases basadas en SVM [Mathieu Blondel].
Refactorización de
NeighborsClassifier
yneighbors.kneighbors_graph
: se han añadido diferentes algoritmos para la búsqueda de k-Nearest Neighbor y se ha implementado un algoritmo más estable para encontrar los pesos del baricentro. También se ha añadido algo de documentación para desarrolladores para este módulo, ver notes_neighbors para más información [Fabian Pedregosa].Mejoras en la documentación: Añadido
RandomizedPCA
yLogisticRegression
a la referencia de la clase. También se han añadido referencias de matrices utilizadas para el conglomerado y otras correcciones [Gael Varoquaux, Fabian Pedregosa, Mathieu Blondel, Olivier Grisel, Virgile Fritsch , Emmanuelle Gouillart]Se vincula decision_function en clases que hacen uso de liblinear, variantes densas y dispersas, como
LinearSVC
oLogisticRegression
[Fabian Pedregosa].Mejoras en el rendimiento y la API de
metrics.euclidean_distances
y deRandomizedPCA
[James Bergstra].Corregir problemas de compilación en NetBSD [Kamel Ibn Hassen Derouiche]
Permitir secuencias de entrada de diferentes longitudes en
GaussianHMM
[Ron Weiss].Corrección de un error en la propagación de afinidades causado por una indexación incorrecta [Xinfan Meng]
Personas¶
Personas que hicieron posible esta publicación precedida por el número de confirmaciones:
14 Dan Yamins
2 Satrajit Ghosh
2 Vincent Dubourg
1 Emmanuelle Gouillart
1 Kamel Ibn Hassen Derouiche
1 Paolo Losi
1 VirgileFritsch
1 Xinfan Meng
Versión 0.6¶
21 de diciembre de 2010
scikit-learn 0.6 fue lanzado en diciembre de 2010. Se caracteriza por la inclusión de varios módulos nuevos y un cambio de nombre general de los antiguos. También se caracteriza por la inclusión de nuevos ejemplos, incluyendo aplicaciones a conjuntos de datos del mundo real.
Registro de cambios¶
Nuevo módulo de descenso de gradiente estocástico <http://scikit-learn.org/stable/modules/sgd.html>`_ por Peter Prettenhofer. El módulo viene con documentación completa y ejemplos.
Módulo svm mejorado: se ha reducido el consumo de memoria en un 50%, heurística para establecer automáticamente los pesos de las clases, posibilidad de asignar pesos a las muestras (ver SVM: Muestras ponderadas para un ejemplo).
Nuevo módulo Procesos Gaussianos de Vincent Dubourg. Este módulo también cuenta con una gran documentación y algunos ejemplos muy cuidados. Ver example_gaussian_process_plot_gp_regression.py o example_gaussian_process_plot_gp_probabilistic_classification_after_regression.py para ver lo que se puede hacer.
Ahora es posible utilizar el SVC multiclase de liblinear (opción multi_class en
LinearSVC
)Nuevas funcionalidades y mejoras en el rendimiento de la extracción de características de texto.
Se ha mejorado el soporte de matrices dispersas, tanto en las clases principales (
GridSearchCV
) como en los módulos sklearn.svm.sparse y sklearn.linear_model.sparse.Se han creado muchos ejemplos nuevos y una nueva sección que utiliza conjuntos de datos del mundo real. Estos incluyen: Ejemplo de reconocimiento de rostros mediante eigenfaces y SVM, Modelización de la distribución de las especies, Libsvm GUI, Autovector principal de Wikipedia y otros.
Algoritmo más rápido de Regresión de ángulo mínimo. Ahora es 2 veces más rápido que la versión de R en el peor caso y hasta 10 veces más rápido en algunos casos.
Algoritmo de descenso de coordenadas más rápido. En particular, la versión de ruta completa de lasso (
linear_model.lasso_path
) es más de 200 veces más rápida que antes.Ahora es posible obtener estimaciones de probabilidad de un modelo
LogisticRegression
.cambio de nombre de los módulos: el módulo glm ha pasado a llamarse linear_model, el módulo gmm se ha incluido en el modelo de mezcla más general y el módulo sgd se ha incluido en linear_model.
Muchas correcciones de errores y mejoras en la documentación.
Personas¶
Personas que hicieron posible esta publicación precedida por el número de confirmaciones:
207 Olivier Grisel
167 Fabian Pedregosa
33 Vincent Dubourg
21 Ron Weiss
9 Bertrand Thirion
3 Anne-Laure Fouque
2 Ronan Amicel
Versión 0.5¶
11 de octubre de 2010
Registro de cambios¶
Nuevas clases¶
Soporte para matrices dispersas en algunos clasificadores de los módulos
svm
ylinear_model
(verSVC
,SVR
,LinearSVC
,Lasso
,ElasticNet
)Nuevo objeto
Pipeline
para componer diferentes estimadores.Rutinas de eliminación recursiva de características en el módulo Selección de características.
Adición de varias clases capaces de realizar validación cruzada en el módulo linear_model (
LassoCV
,ElasticNetCV
, etc.).Nueva implementación del algoritmo LARS, más eficiente. También se implementa la variante Lasso del algoritmo. Ver
lars_path
,Lars
yLassoLars
.Nuevo módulo de Modelos de Markov Ocultos (ver clases
GaussianHMM
,MultinomialHMM
,GMMHMM
)Nuevo módulo feature_extraction (ver class reference)
Nuevo algoritmo FastICA en el módulo sklearn.fastica
Documentación¶
Se ha mejorado la documentación de muchos módulos, separando ahora la documentación narrativa de la referencia de la clase. Como ejemplo, ver documentation for the SVM module y la referencia completa de class reference.
Correcciones¶
Cambios en la API: adherir los nombres de las variables a PEP-8, dar nombres más significativos.
Correcciones para que el módulo svm se ejecute en un contexto de memoria compartida (multiprocesamiento).
También es posible generar archivos de formato látex (y, por tanto, PDF) a partir de los documentos de Sphinx.
Ejemplos¶
nuevos ejemplos que utilizan algunos de los conjuntos de datos de mlcomp:
sphx_glr_auto_examples_mlcomp_sparse_document_classification.py
(ya eliminado) y Clasificación de documentos de texto utilizando características dispersasMuchos más ejemplos. Ver aquí la lista completa de ejemplos.
Dependencias externas¶
Joblib es ahora una dependencia de este paquete, aunque se entrega con (sklearn.externals.joblib).
Módulos eliminados¶
El módulo ann (Redes Neuronales Artificiales) ha sido eliminado de la distribución. Los usuarios que deseen este tipo de algoritmos deberían echar un vistazo a pybrain.
Miscelánea¶
Nuevo tema de esfinge para la página web.
Versión 0.4¶
26 de agosto de 2010
Registro de cambios¶
Los cambios principales en esta versión incluyen:
Refactorización del algoritmo de descenso de coordenadas (Lasso, ElasticNet) y mejora de la velocidad (aproximadamente 100 veces más rápido).
Coordinar la refactorización de Descent (y la corrección de errores) para que sea coherente con el paquete GLMNET de R.
Nuevo módulo de métricas.
Nuevo módulo GMM aportado por Ron Weiss.
Implementación del algoritmo LARS (sin la variante Lasso por ahora).
rediseño del módulo feature_selection.
Migración a GIT como sistema de control de versiones.
Eliminación del módulo obsoleto attrselect.
Cambio de nombre de las extensiones privadas compiladas (se ha añadido un guión bajo).
Eliminación del código legado no mantenido.
Mejoras en la documentación (tanto en docstring como en rst).
Mejora del sistema de construcción para enlazar (opcionalmente) con MKL. Además, proporcionar una implementación de BLAS lite en caso de que no se encuentre un BLAS para todo el sistema.
Muchos ejemplos nuevos.
Muchas, muchas correcciones de errores …
Autores¶
La lista de committers de esta versión es la siguiente (precedida por el número de commits):
143 Fabian Pedregosa
35 Alexandre Gramfort
34 Olivier Grisel
11 Gael Varoquaux
5 Yaroslav Halchenko
2 Vincent Michel
1 Chris Filo Gorgolewski
Versiones anteriores¶
Las versiones anteriores incluían contribuciones de Fred Mailhot, David Cooke, David Huard, Dave Morrill, Ed Schofield, Travis Oliphant y Pearu Peterson.