Estimación de densidad utilizando densidad con núcleo

Machine LearningMachine LearningBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos la estimación de densidad, que es una técnica utilizada para estimar la función de densidad de probabilidad de una variable aleatoria. En particular, nos centraremos en la estimación de densidad con núcleo, que es un método no paramétrico para estimar la densidad.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos el problema para usted de inmediato.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/neighbors("Nearest Neighbors") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/neighbors -.-> lab-71121{{"Estimación de densidad utilizando densidad con núcleo"}} ml/sklearn -.-> lab-71121{{"Estimación de densidad utilizando densidad con núcleo"}} end

Importar las bibliotecas necesarias

Primero, necesitamos importar las bibliotecas que usaremos para la estimación de densidad. Usaremos el estimador KernelDensity del módulo sklearn.neighbors, y la biblioteca numpy para la manipulación de datos.

from sklearn.neighbors import KernelDensity
import numpy as np

Generar algunos datos de muestra

A continuación, generaremos algunos datos de muestra para realizar la estimación de densidad. Con el fin de este laboratorio, generemos un conjunto de datos unidimensional con 100 puntos. Usaremos una distribución normal para generar los datos.

np.random.seed(0)
X = np.random.normal(0, 1, 100).reshape(-1, 1)

Ajustar un estimador de densidad con núcleo

Ahora, crearemos una instancia del estimador KernelDensity y la ajustaremos a nuestros datos. Podemos elegir el tipo de núcleo y el ancho de banda para el estimador. Por ejemplo, podemos usar un núcleo gaussiano y establecer el ancho de banda en 0,2.

kde = KernelDensity(kernel='gaussian', bandwidth=0.2).fit(X)

Calificar las muestras

Después de ajustar el estimador, podemos usar el método score_samples para calcular la log-verosimilitud de las muestras bajo la función de densidad estimada. Esto nos dará una medida de qué tan probable es cada muestra de acuerdo con la estimación de densidad.

scores = kde.score_samples(X)

Visualizar la estimación de densidad

Finalmente, podemos visualizar la estimación de densidad usando un histograma y la función de densidad estimada. Podemos trazar el histograma de los datos originales así como la función de densidad estimada.

import matplotlib.pyplot as plt

bins = np.linspace(-5, 5, 50)
plt.hist(X, bins=bins, density=True, alpha=0.5, label='Histogram')
plt.plot(X, np.exp(scores), color='red', label='Kernel Density Estimate')
plt.legend()
plt.show()

Resumen

En este laboratorio, aprendimos cómo realizar la estimación de densidad con núcleo utilizando el estimador KernelDensity de scikit-learn. La estimación de densidad con núcleo es una técnica poderosa para estimar la función de densidad de probabilidad de una variable aleatoria. Al ajustar un estimador de densidad con núcleo a un conjunto de datos, podemos estimar la densidad subyacente y visualizarla utilizando un histograma y la función de densidad estimada. Esto nos permite obtener información sobre la distribución de los datos y hacer predicciones probabilísticas.