Compartir vía


Detección, exploración y validación de dependencias funcionales en los datos mediante el vínculo semántico

Las dependencias funcionales son relaciones entre columnas de una tabla, donde los valores de una columna determinan los valores de otra columna. Comprender estas dependencias puede ayudarle a descubrir patrones y relaciones en los datos. Esta comprensión puede ayudar con las tareas de ingeniería de características, limpieza de datos y creación de modelos. Las dependencias funcionales actúan como una invariable eficaz que le ayuda a encontrar y corregir problemas de calidad de datos que podrían ser difíciles de detectar de otro modo.

En este artículo, usarás el vínculo semántico para:

  • Buscar dependencias entre columnas de fabricDataFrame
  • Visualización de dependencias
  • Identificación de problemas de calidad de datos
  • Visualización de problemas de calidad de datos
  • Aplicar restricciones funcionales entre columnas de un conjunto de datos

Requisitos previos

  • Obtenga una suscripción Microsoft Fabric. O bien, regístrese para obtener una prueba gratuita Microsoft Fabric.

  • Inicie sesión en Microsoft Fabric.

  • Cambie a Fabric mediante el conmutador de experiencia en el lado inferior izquierdo de la página principal.

    Captura de pantalla que muestra la selección de Fabric en el menú del conmutador de experiencia.

  • Vaya a la experiencia de ciencia de datos que se encuentra en Microsoft Fabric.
  • Cree un cuaderno para copiar y pegar código en celdas.
  • Para Spark 3.4 y versiones posteriores, el vínculo semántico está disponible en el entorno de ejecución predeterminado al usar Fabric y no es necesario instalarlo. Si usa Spark 3.3 o inferior, o si desea actualizar a la versión más reciente del vínculo semántico, puede ejecutar el comando: python %pip install -U semantic-link
  • Añadir un Lakehouse a tu cuaderno.

El vínculo semántico está disponible en el entorno de ejecución de Fabric predeterminado. Para actualizar a la versión más reciente del vínculo semántico, ejecute este comando:

%pip install -U semantic-link

Búsqueda de dependencias funcionales en datos

La función SemPy find_dependencies detecta dependencias funcionales entre las columnas de fabricDataFrame. La función usa un umbral en la entropía condicional para detectar dependencias funcionales aproximadas, donde la entropía condicional baja indica una fuerte dependencia entre columnas. Para que la find_dependencies función sea más selectiva, establezca un umbral inferior en la entropía condicional. El umbral inferior significa que solo se detectan dependencias más fuertes.

Este fragmento de código Python muestra cómo usar find_dependencies:

from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
import pandas as pd


df = FabricDataFrame(pd.read_csv("your_data.csv"))

deps = df.find_dependencies()

La función find_dependencies devuelve un FabricDataFrame con dependencias detectadas entre columnas. Una lista representa las columnas que tienen una correspondencia 1:1. La función también quita bordes transitivos para intentar eliminar las posibles dependencias.

Cuando se especifica la dropna=True opción , la función elimina las filas que tienen un valor NaN en cualquiera de las columnas de evaluación. Esta eliminación puede dar lugar a dependencias no transitivas, como se muestra en el ejemplo siguiente:

A B C
1 1 1
1 1 1
1 NaN 9
2 NaN 2
2 2 2

En algunos casos, la cadena de dependencias puede formar ciclos al especificar la dropna=True opción, como se muestra en el ejemplo siguiente:

A B C
1 1 NaN
2 1 NaN
NaN 1 1
NaN 2 1
1 NaN 1
1 NaN 2

Visualizar dependencias en datos

Después de encontrar dependencias funcionales en un conjunto de datos mediante find_dependencies, puede visualizar las dependencias mediante la plot_dependency_metadata función . Esta función toma el fabricDataFrame resultante de find_dependencies y crea una representación visual de las dependencias entre columnas y grupos de columnas.

Este fragmento de código de Python muestra cómo usar plot_dependencies:

from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

deps = df.find_dependencies()
plot_dependency_metadata(deps)

La función plot_dependency_metadata genera una visualización que muestra las agrupaciones 1:1 de columnas. Las columnas que pertenecen a un único grupo se colocan en una sola celda. Si la función no encuentra candidatos adecuados, devuelve un FabricDataFrame vacío. Captura de pantalla que muestra la salida de la función plot_dependencies.

Captura de pantalla que muestra la salida de la función plot_dependencies.

Identificación de problemas de calidad de datos

Los problemas de calidad de los datos pueden adoptar muchas formas, por ejemplo, valores que faltan, incoherencias o imprecisiones. Para garantizar la confiabilidad y validez de cualquier análisis o modelo basado en los datos, es importante identificar y solucionar estos problemas. Una manera de detectar problemas de calidad de datos es examinar las infracciones de las dependencias funcionales entre las columnas de un conjunto de datos.

La list_dependency_violations función puede ayudarle a encontrar infracciones de las dependencias funcionales entre las columnas del conjunto de datos. Cuando se proporciona una columna determinante y una columna dependiente, la función muestra valores que infringen la dependencia funcional, junto con el recuento de sus repeticiones respectivas. Esta información puede ayudarle a inspeccionar las dependencias aproximadas e identificar problemas de calidad de los datos.

El siguiente fragmento de código muestra cómo usar la list_dependency_violations función :

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

violations = df.list_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

En este ejemplo, la función supone una dependencia funcional entre las columnas ZIP (determinante) y CITY (dependiente). Si el conjunto de datos tiene problemas de calidad de datos (por ejemplo, el mismo código postal asignado a varias ciudades), la función genera los datos con los problemas:

archivo ZIP / código postal CIUDAD Recuento
12345 Boston 2
12345 Seattle 1

Esta salida indica que dos ciudades diferentes (Boston y Seattle) tienen el mismo valor de código postal (12345). Este resultado sugiere un problema de calidad de datos dentro del conjunto de datos.

La función list_dependency_violations ofrece más opciones que pueden controlar los valores que faltan, mostrar los valores asignados a los valores de infracción, limitar el número de infracciones devueltas y ordenar los resultados en función del número o columna determinante.

La list_dependency_violations salida puede ayudarle a identificar problemas de calidad del conjunto de datos. Sin embargo, debe examinar cuidadosamente los resultados y tener en cuenta el contexto de los datos para determinar el curso de acción más adecuado para solucionar los problemas identificados. Este enfoque puede implicar más limpieza, validación o exploración de datos para garantizar la confiabilidad y validez del análisis o modelo.

Visualización de problemas de calidad de datos

Los problemas de calidad de los datos pueden dañar la confiabilidad y validez de cualquier análisis o modelo basado en esos datos. Identificar y solucionar estos problemas es importante para garantizar la precisión de los resultados. Para detectar problemas de calidad de datos, examine las infracciones de las dependencias funcionales entre las columnas de un conjunto de datos. La visualización de estas infracciones puede mostrar los problemas con mayor claridad y ayudarte a abordarlos de forma más eficaz.

La función plot_dependency_violations puede ayudar a visualizar las infracciones de las dependencias funcionales entre las columnas de un conjunto de datos. Dada una columna determinante y una columna dependiente, esta función muestra los valores infractores en un formato gráfico para facilitar la comprensión de la naturaleza y la extensión de los problemas de calidad de los datos.

Este fragmento de código muestra cómo se usa la función plot_dependency_violations:

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

df.plot_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

En este ejemplo, la función supone una dependencia funcional existente entre las columnas ZIP (determinante) y CITY (dependiente). Si el conjunto de datos tiene problemas de calidad de datos (por ejemplo, el mismo código postal asignado a varias ciudades), la función genera un gráfico de los valores infractores.

La función plot_dependency_violations ofrece más opciones que pueden controlar los valores que faltan, mostrar los valores asignados a los valores de infracción, limitar el número de infracciones devueltas y ordenar los resultados en función del número o columna determinante.

La plot_dependency_violations función genera una visualización que puede ayudar a identificar problemas de calidad de los datos del conjunto de datos. Sin embargo, debe examinar cuidadosamente los resultados y tener en cuenta el contexto de los datos para determinar el curso de acción más adecuado para solucionar los problemas identificados. Este enfoque puede implicar más limpieza, validación o exploración de datos para garantizar la confiabilidad y validez del análisis o modelo.

Captura de pantalla que muestra la salida de la función plot_dependency_violations.

Aplicar restricciones funcionales

La calidad de los datos es fundamental para garantizar la confiabilidad y validez de cualquier análisis o modelo basado en un conjunto de datos. El cumplimiento de restricciones funcionales entre columnas de un conjunto de datos puede ayudar a mejorar la calidad de los datos. Las restricciones funcionales garantizan que las relaciones entre columnas tengan precisión y coherencia, lo que puede provocar un análisis o resultados de modelo más precisos.

La drop_dependency_violations función aplica restricciones funcionales entre columnas de un conjunto de datos. Quita las filas que infringen una restricción determinada. Dada una columna determinante y una columna dependiente, esta función quita las filas con valores que no se ajustan a la restricción funcional entre las dos columnas.

Este fragmento de código muestra cómo se usa la función drop_dependency_violations:

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

cleaned_df = df.drop_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

En este ejemplo, la función aplica una restricción funcional entre las columnas ZIP (determinante) y CITY (dependientes). Para cada valor del determinante, la función elige el valor más común de la columna dependiente y quita todas las filas con otros valores. Por ejemplo, dado este conjunto de datos, se quita la fila con CITY=Seattle y la dependencia funcional ZIP -> CITY se mantiene en la salida:

archivo ZIP / código postal CIUDAD
12345 Seattle
12345 Boston
12345 Boston
98765 Baltimore
00000 San Francisco

La función drop_dependency_violations proporciona la opción verbose para controlar el nivel de verbosidad de la salida. Al establecer verbose=1, puedes ver el número de filas descartadas. Un valor de verbose=2 muestra todo el contenido de las filas eliminadas.

La función drop_dependency_violations puede aplicar restricciones funcionales entre columnas del conjunto de datos, lo que puede ayudar a mejorar la calidad de los datos y dar lugar a resultados más precisos en el análisis o el modelo. Sin embargo, considere cuidadosamente el contexto de los datos y las restricciones funcionales que decida aplicar para asegurarse de que no quita accidentalmente información valiosa del conjunto de datos.