Última actualización el 17 de agosto de 2020
La reducción de dimensionalidad es una técnica de aprendizaje no supervisada.
Sin embargo, se puede utilizar como paso previo de procesamiento de transformación de datos para algoritmos de aprendizaje automático en conjuntos de datos de modelos predictivos de clasificación y regresión con algoritmos de aprendizaje supervisado.
Hay muchos algoritmos de reducción de dimensionalidad para elegir y ningún algoritmo mejor para todos los casos. En su lugar, es una buena idea explorar una gama de algoritmos de reducción de dimensionalidad y diferentes configuraciones para cada algoritmo.
En este tutorial, descubrirá cómo ajustar y evaluar los mejores algoritmos de reducción de dimensionalidad en Python.
Después de completar este tutorial, sabrá:
- La reducción de dimensionalidad busca una representación de menor dimensión de los datos de entrada numéricos que preserva las relaciones salientes en los datos.
- Hay muchos algoritmos de reducción de dimensionalidad diferentes y no hay un único método mejor para todos los conjuntos de datos.
- Cómo implementar, ajustar y evaluar la reducción de dimensionalidad superior en Python con la biblioteca de aprendizaje automático scikit-learn.
Inicie su proyecto con la preparación de datos de mi nuevo libro para el aprendizaje automático, incluidos tutoriales paso a paso y los archivos de código fuente de Python para todos los ejemplos.
Comencemos.
Algoritmos de Reducción de Dimensionalidad con Python
Foto de Bernard Spragg. Nueva Zelanda, algunos derechos reservados.
- Descripción general del tutorial
- Reducción de la dimensionalidad
- ¿Desea Comenzar Con la Preparación de Datos?
- Algoritmos de Reducción de dimensionalidad
- Métodos de álgebra lineal
- Métodos de aprendizaje múltiple
- Ejemplos de reducción de dimensionalidad
- Instalación de la biblioteca Scikit-Learn
- Conjunto de datos de clasificación
- Análisis de componentes principales
- Singular Value Decomposition
- Linear Discriminant Analysis
- Isomap Embedding
- Locally Linear Embedding
- Modified Locally Linear Embedding
- Further Reading
- Tutoriales
- API
- Resumen
- Conseguir una Manija en Modernas de Preparación de Datos!
- Prepare Sus Datos de Aprendizaje automático en minutos
- Lleve Técnicas Modernas de Preparación de Datos a Sus Proyectos de Aprendizaje Automático
Descripción general del tutorial
Este tutorial se divide en tres partes::
- Reducción de Dimensionalidad
- Algoritmos de Reducción de Dimensionalidad
- Ejemplos de Reducción de Dimensionalidad
- Instalación de la Biblioteca Scikit-Learn
- Conjunto de datos de clasificación
- Análisis de Componentes Principales
- Descomposición de valores Singulares
- Análisis Discriminante Lineal
- Incrustación Isomap
- Incrustación Localmente Lineal
- La Incrustación Lineal Local modificada
Reducción de la dimensionalidad
La reducción de la dimensionalidad se refiere a técnicas para reducir el número de variables de entrada en los datos de entrenamiento.
Cuando se trata de datos de alta dimensión, a menudo es útil reducir la dimensionalidad proyectando los datos a un subespacio de menor dimensión que capture la «esencia» de los datos. Esto se denomina reducción de la dimensionalidad.
– Página 11, Aprendizaje automático: Una perspectiva probabilística, 2012.
La alta dimensionalidad puede significar cientos, miles o incluso millones de variables de entrada.
Menos dimensiones de entrada a menudo significa correspondientemente menos parámetros o una estructura más simple en el modelo de aprendizaje automático, lo que se conoce como grados de libertad. Es probable que un modelo con demasiados grados de libertad se ajuste en exceso al conjunto de datos de entrenamiento y no funcione bien con datos nuevos.
Es deseable tener modelos simples que generalicen bien, y a su vez, datos de entrada con pocas variables de entrada. Esto es particularmente cierto para los modelos lineales, donde el número de entradas y los grados de libertad del modelo a menudo están estrechamente relacionados.
La reducción de dimensionalidad es una técnica de preparación de datos realizada en datos antes del modelado. Puede realizarse después de limpiar y escalar datos y antes de entrenar un modelo predictivo.
reduction la reducción de la dimensionalidad produce una representación más compacta y fácilmente interpretable del concepto objetivo, centrando la atención del usuario en las variables más relevantes.
– Página 289, Minería de datos: Herramientas y Técnicas Prácticas de Aprendizaje Automático, 4a edición, 2016.
Como tal, cualquier reducción de dimensionalidad realizada en datos de entrenamiento también debe realizarse en datos nuevos, como un conjunto de datos de prueba, un conjunto de datos de validación y datos al hacer una predicción con el modelo final.
¿Desea Comenzar Con la Preparación de Datos?
Tome mi curso intensivo de correo electrónico gratuito de 7 días ahora (con código de muestra).
Haga clic para inscribirse y también obtenga una versión gratuita en PDF del curso.
Descargue su Mini Curso GRATUITO
Algoritmos de Reducción de dimensionalidad
Hay muchos algoritmos que se pueden usar para la reducción de dimensionalidad.
Dos clases principales de métodos son los extraídos del álgebra lineal y los extraídos del aprendizaje múltiple.
Métodos de álgebra lineal
Los métodos de factorización matricial extraídos del campo del álgebra lineal se pueden utilizar para la dimensionalidad.
Para obtener más información sobre la factorización de matrices, consulte el tutorial:
- Una introducción suave a la Factorización Matricial para el Aprendizaje Automático
Algunos de los métodos más populares incluyen:
- Análisis de Componentes principales
- Descomposición de valor singular
- Factorización Matricial no negativa
Métodos de aprendizaje múltiple
Los métodos de aprendizaje múltiple buscan una proyección de dimensiones inferiores de entrada de alta dimensión que capture las propiedades salientes de los datos de entrada.
Algunos de los métodos más populares incluyen:
- Incrustación Isomap
- Incrustación localmente lineal
- Escala multidimensional
- Incrustación Espectral
- Incrustación de vecinos Estocásticos distribuidos en t
Cada algoritmo ofrece un enfoque diferente al desafío de descubrir relaciones naturales en datos de dimensiones inferiores.
No hay un mejor algoritmo de reducción de dimensionalidad, y no hay una manera fácil de encontrar el mejor algoritmo para sus datos sin usar experimentos controlados.
En este tutorial, revisaremos cómo usar cada subconjunto de estos populares algoritmos de reducción de dimensionalidad de la biblioteca scikit-learn.
Los ejemplos le proporcionarán la base para copiar y pegar los ejemplos y probar los métodos con sus propios datos.
No profundizaremos en la teoría detrás de cómo funcionan los algoritmos ni los compararemos directamente. Para un buen punto de partida sobre este tema, consulte:
- Descomponer señales en componentes, API scikit-learn.
- Aprendizaje múltiple, API scikit-learn.
Vamos a bucear.
Ejemplos de reducción de dimensionalidad
En esta sección, revisaremos cómo usar algoritmos populares de reducción de dimensionalidad en scikit-learn.
Esto incluye un ejemplo de uso de la técnica de reducción de dimensionalidad como transformación de datos en una canalización de modelado y evaluación de un ajuste del modelo en los datos.
Los ejemplos están diseñados para que copie y pegue en su propio proyecto y aplique los métodos a sus propios datos. Hay algunos algoritmos disponibles en la biblioteca scikit-learn que no están demostrados porque no se pueden usar como una transformación de datos directamente dada la naturaleza del algoritmo.
Como tal, usaremos un conjunto de datos de clasificación sintético en cada ejemplo.
Instalación de la biblioteca Scikit-Learn
Primero, instalemos la biblioteca.
No omita este paso, ya que deberá asegurarse de tener instalada la última versión.
Puede instalar la biblioteca scikit-learn usando el instalador de pip Python, de la siguiente manera:
1
|
sudo pip install scikit-learn
|
For additional installation instructions specific to your platform, see:
- Installing scikit-learn
Next, let’s confirm that the library is installed and you are using a modern version.
Run the following script to print the library version number.
1
2
3
|
# check scikit-learn version
import sklearn
print(sklearn.__version__)
|
Running the example, you should see the following version number or higher.
1
|
0.23.0
|
Conjunto de datos de clasificación
Usaremos la función make_classification() para crear un conjunto de datos de clasificación binaria de prueba.
El conjunto de datos tendrá 1000 ejemplos con 20 características de entrada, 10 de las cuales son informativas y 10 redundantes. Esto proporciona una oportunidad para que cada técnica identifique y elimine las características de entrada redundantes.
La semilla aleatoria fija para el generador de números pseudoaleatorios garantiza que generemos el mismo conjunto de datos sintéticos cada vez que se ejecuta el código.
An example of creating and summarizing the synthetic classification dataset is listed below.
1
2
3
4
5
6
|
# synthetic classification dataset
from sklearn.importar conjuntos de datos make_classification
# definir conjunto de datos
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# resumir el conjunto de datos
print(X. shape, y.shape)
|
Al ejecutar el ejemplo, se crea el conjunto de datos y se informa del número de filas y columnas que coinciden con nuestras expectativas.
1
|
(1000, 20) (1000,)
|
It is a binary classification task and we will evaluate a LogisticRegression model after each dimensionality reduction transform.
El modelo se evaluará utilizando el patrón oro de validación cruzada estratificada repetida de 10 veces. Se informará de la exactitud de clasificación de la media y la desviación estándar en todos los pliegues y repeticiones.
El siguiente ejemplo evalúa el modelo en el conjunto de datos sin procesar como punto de comparación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# evaluar el modelo de regresión logística en los datos raw
from numpy import media
from numpy importar std
desde sklearn.los conjuntos de datos importan make_classification
desde sklearn.model_selection importar puntuación cruzada
desde sklearn.model_selection importación de pliegos repetidos destratifiedkfold
desde sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the model
model = LogisticRegression()
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f)’ % (mean(n_scores), std(n_scores)))
|
Al ejecutar el ejemplo, se evalúa la regresión logística en el conjunto de datos sin procesar con las 20 columnas, logrando una precisión de clasificación de aproximadamente el 82,4%.
Una transformación de reducción de dimensionalidad exitosa en estos datos debe dar lugar a un modelo que tenga mejor precisión que esta línea de base, aunque esto puede no ser posible con todas las técnicas.
Nota: no estamos tratando de «resolver» este conjunto de datos, solo proporcionamos ejemplos de trabajo que puede usar como punto de partida.
1
|
Accuracy: 0.824 (0.034)
|
Next, we can start looking at examples of dimensionality reduction algorithms applied to this dataset.
I have made some minimal attempts to tune each method to the dataset. Cada método de reducción de dimensionalidad se configurará para reducir las 20 columnas de entrada a 10 cuando sea posible.
Usaremos una canalización para combinar la transformación de datos y el modelo en una unidad atómica que se puede evaluar mediante el procedimiento de validación cruzada; por ejemplo:
1
2
3
4
|
…
# define the pipeline
steps =
model = Pipeline(steps=steps)
|
Let’s get started.
Can you get a better result for one of the algorithms?Házmelo saber en los comentarios a continuación.
Análisis de componentes principales
El análisis de componentes principales, o PCA, podría ser la técnica más popular para la reducción de dimensionalidad con datos densos (pocos valores cero).
Para obtener más información sobre cómo funciona el PCA, consulte el tutorial:
- Cómo calcular el Análisis de Componentes Principales (PCA) desde cero en Python
La biblioteca scikit-learn proporciona la implementación de la clase PCA del Análisis de Componentes Principales que se puede usar como una transformación de datos de reducción de dimensionalidad. El argumento» n_components » se puede configurar para configurar el número de dimensiones deseadas en la salida de la transformación.
El ejemplo completo de evaluación de un modelo con reducción de dimensionalidad de PCA se muestra a continuación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# evaluar pca con el algoritmo de regresión logística para clasificación
from numpy import media
from numpy import sexual
de sklearn.los conjuntos de datos importan make_classification
desde sklearn.model_selection importar puntuación cruzada
desde sklearn.model_selection importación de pliegos repetidos destratifiedkfold
desde sklearn.pipeline importar Pipeline
desde sklearn.importación de descomposición PCA
desde sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f)’ % (mean(n_scores), std(n_scores)))
|
Al ejecutar el ejemplo, se evalúa la canalización de modelado con reducción de dimensionalidad y un modelo predictivo de regresión logística.
Nota: Los resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo varias veces y compare el resultado promedio.
En este caso, no vemos ningún aumento en el rendimiento del modelo al usar la transformación PCA.
1
|
Accuracy: 0.824 (0.034)
|
Singular Value Decomposition
Singular Value Decomposition, or SVD, is one of the most popular techniques for dimensionality reduction for sparse data (data with many zero values).
Para obtener más información sobre cómo funciona SVD, consulte el tutorial:
- Cómo Calcular el SVD desde Cero con Python
La biblioteca scikit-learn proporciona la implementación de la clase TruncatedSVD de Descomposición de Valor Singular que se puede usar como una transformación de datos de reducción de dimensionalidad. El argumento» n_components » se puede configurar para configurar el número de dimensiones deseadas en la salida de la transformación.
El ejemplo completo de evaluación de un modelo con reducción de dimensionalidad SVD se muestra a continuación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# evaluar svd con el algoritmo de regresión logística para clasificación
from numpy import media
from numpy import sexual
de sklearn.los conjuntos de datos importan make_classification
desde sklearn.model_selection importar puntuación cruzada
desde sklearn.model_selection importación de pliegos repetidos destratifiedkfold
desde sklearn.pipeline importar Pipeline
desde sklearn.importación de descomposición TruncatedSVD
desde sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f)’ % (mean(n_scores), std(n_scores)))
|
Al ejecutar el ejemplo, se evalúa la canalización de modelado con reducción de dimensionalidad y un modelo predictivo de regresión logística.
Nota: Los resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo varias veces y compare el resultado promedio.
En este caso, no vemos ningún aumento en el rendimiento del modelo al usar la transformación SVD.
1
|
Accuracy: 0.824 (0.034)
|
Linear Discriminant Analysis
Linear Discriminant Analysis, or LDA, is a multi-class classification algorithm that can be used for dimensionality reduction.
El número de dimensiones para la proyección está limitado a 1 y C-1, donde C es el número de clases. En este caso, nuestro conjunto de datos es un problema de clasificación binaria (dos clases), que limita el número de dimensiones a 1.
Para obtener más información sobre LDA para la reducción de dimensionalidad, consulte el tutorial:
- Análisis Discriminante Lineal para la Reducción de Dimensionalidad en Python
La biblioteca scikit-learn proporciona la implementación de la clase de Análisis Discriminante Lineal del Análisis Discriminante Lineal que se puede usar como una transformación de datos de reducción de dimensionalidad. El argumento» n_components » se puede configurar para configurar el número de dimensiones deseadas en la salida de la transformación.
El ejemplo completo de evaluación de un modelo con reducción de dimensionalidad LDA se muestra a continuación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# evaluar lda con el algoritmo de regresión logística para clasificación
from numpy import media
from numpy import sexual
de sklearn.los conjuntos de datos importan make_classification
desde sklearn.model_selection importar puntuación cruzada
desde sklearn.model_selection importación de pliegos repetidos destratifiedkfold
desde sklearn.pipeline importar Pipeline
desde sklearn.análisis discriminante importar análisis discriminante lineal
de sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f)’ % (mean(n_scores), std(n_scores)))
|
Al ejecutar el ejemplo, se evalúa la canalización de modelado con reducción de dimensionalidad y un modelo predictivo de regresión logística.
Nota: Los resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo varias veces y compare el resultado promedio.
En este caso, podemos ver un ligero aumento en el rendimiento en comparación con el ajuste de línea de base en los datos sin procesar.
1
|
Accuracy: 0.825 (0.034)
|
Isomap Embedding
Isomap Embedding, or Isomap, creates an embedding of the dataset and attempts to preserve the relationships in the dataset.
La biblioteca scikit-learn proporciona la implementación de clase Isomap de Incrustación Isomap que se puede usar como una transformación de datos de reducción de dimensionalidad. El argumento» n_components » se puede configurar para configurar el número de dimensiones deseadas en la salida de la transformación.
El ejemplo completo de evaluación de un modelo con reducción de dimensionalidad SVD se muestra a continuación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# evaluar isomap con el algoritmo de regresión logística para clasificación
from numpy import media
from numpy import sexual
de sklearn.los conjuntos de datos importan make_classification
desde sklearn.model_selection importar puntuación cruzada
desde sklearn.model_selection importación de pliegos repetidos destratifiedkfold
desde sklearn.pipeline importar Pipeline
desde sklearn.importación de múltiples Isomap
desde sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f)’ % (mean(n_scores), std(n_scores)))
|
Al ejecutar el ejemplo, se evalúa la canalización de modelado con reducción de dimensionalidad y un modelo predictivo de regresión logística.
Nota: Los resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo varias veces y compare el resultado promedio.
En este caso, podemos ver un aumento en el rendimiento con la transformación de datos Isomap en comparación con el ajuste de línea de base en los datos sin procesar.
1
|
Accuracy: 0.888 (0.029)
|
Locally Linear Embedding
Locally Linear Embedding, or LLE, creates an embedding of the dataset and attempts to preserve the relationships between neighborhoods in the dataset.
La biblioteca scikit-learn proporciona la implementación de la clase LocallyLinearEmbedding de Incrustación Lineal Local que se puede usar como una transformación de datos de reducción de dimensionalidad. El argumento» n_components » se puede configurar para configurar el número de dimensiones deseadas en la salida de la transformación
El ejemplo completo de evaluación de un modelo con reducción de dimensionalidad LLE se muestra a continuación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# evaluar lle y regresiones logísticas para la taxonomía
from numpy import media
from numpy import sexual
de sklearn.los conjuntos de datos importan make_classification
desde sklearn.model_selection importar puntuación cruzada
desde sklearn.model_selection importación de pliegos repetidos destratifiedkfold
desde sklearn.pipeline importar Pipeline
desde sklearn.importación de manifold de línea local de boda
desde sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f)’ % (mean(n_scores), std(n_scores)))
|
Al ejecutar el ejemplo, se evalúa la canalización de modelado con reducción de dimensionalidad y un modelo predictivo de regresión logística.
Nota: Los resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo varias veces y compare el resultado promedio.
En este caso, podemos ver un aumento en el rendimiento con la transformación de datos LLE en comparación con el ajuste de línea de base en los datos sin procesar.
1
|
Accuracy: 0.886 (0.028)
|
Modified Locally Linear Embedding
Modified Locally Linear Embedding, or Modified LLE, is an extension of Locally Linear Embedding that creates multiple weighting vectors for each neighborhood.
La biblioteca scikit-learn proporciona la implementación de la clase LocallyLinearEmbedding de Incrustación Lineal Local Modificada que se puede usar como una transformación de datos de reducción de dimensionalidad. El argumento» method «se debe establecer en» modified «y el argumento» n_components «se puede establecer para configurar el número de dimensiones deseadas en la salida de la transformación que debe ser menor que el argumento «n_neighbors».
El ejemplo completo de evaluación de un modelo con reducción de dimensionalidad LLE modificada se muestra a continuación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# evaluar modificado lle y regresiones logísticas para clasificación
from numpy import media
from numpy import sexual
de sklearn.los conjuntos de datos importan make_classification
desde sklearn.model_selection importar puntuación cruzada
desde sklearn.model_selection importación de pliegos repetidos destratifiedkfold
desde sklearn.pipeline importar Pipeline
desde sklearn.importación de manifold de línea local de boda
desde sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f)’ % (mean(n_scores), std(n_scores)))
|
Al ejecutar el ejemplo, se evalúa la canalización de modelado con reducción de dimensionalidad y un modelo predictivo de regresión logística.
Nota: Los resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo varias veces y compare el resultado promedio.
En este caso, podemos ver un aumento en el rendimiento con la transformación de datos LLE modificada en comparación con el ajuste de línea de base en los datos sin procesar.
1
|
Accuracy: 0.846 (0.036)
|
Further Reading
This section provides more resources on the topic if you are looking to go deeper.
Tutoriales
- Introducción a la Reducción de Dimensionalidad para Aprendizaje Automático
- Análisis de Componentes Principales para la Reducción de Dimensionalidad en Python
- Descomposición de valor Singular para la Reducción de Dimensionalidad en Python
- Análisis Discriminante Lineal para la Reducción de Dimensionalidad en Python
API
- Descomponer señales en componentes, API scikit-learn.
- Aprendizaje múltiple, API scikit-learn.
Resumen
En este tutorial, descubriste cómo ajustar y evaluar los mejores algoritmos de reducción de dimensionalidad en Python.
Específicamente, aprendiste:
- La reducción de dimensionalidad busca una representación de menor dimensión de los datos de entrada numéricos que preserva las relaciones salientes en los datos.
- Hay muchos algoritmos de reducción de dimensionalidad diferentes y no hay un único método mejor para todos los conjuntos de datos.
- Cómo implementar, ajustar y evaluar la reducción de dimensionalidad superior en Python con la biblioteca de aprendizaje automático scikit-learn.
¿Tiene alguna pregunta?Haga sus preguntas en los comentarios a continuación y haré todo lo posible para responder.
Conseguir una Manija en Modernas de Preparación de Datos!
Prepare Sus Datos de Aprendizaje automático en minutos
…con solo unas pocas líneas de código python
Descubre cómo en mi nuevo libro electrónico:
Preparación de datos para Aprendizaje automático
Proporciona tutoriales de autoaprendizaje con código de trabajo completo sobre:
Selección de funciones, RFE, Limpieza de Datos, Transformaciones de datos, Escalado, Reducción de Dimensionalidad y mucho más…
Lleve Técnicas Modernas de Preparación de Datos a
Sus Proyectos de Aprendizaje Automático
Vea Lo que Hay Dentro