의미 체계 링크를 통해 데이터의 함수 종속성 감지, 탐색 및 유효성 검사
함수 종속성은 테이블의 열 간의 관계로, 한 열의 값이 다른 열의 값을 결정하는 데 사용됩니다. 이러한 종속성을 이해하면 데이터의 패턴 및 관계를 파악하는 데 도움이 될 수 있으며, 이는 기능 엔지니어링, 데이터 정리 및 모델 빌드 작업에 도움이 될 수 있습니다. 함수 종속성은 효과적인 불변 요소로 작용하여 다른 방법으로는 감지하기 어려울 수 있는 데이터 품질 문제를 찾고 해결할 수 있습니다.
이 문서에서는 의미 체계 링크를 사용하여 다음을 수행합니다.
- FabricDataFrame 열 간의 종속성 찾기
- 종속성 시각화
- 데이터 품질 문제 식별
- 데이터 품질 문제 시각화
- 데이터 세트의 열 간에 기능 제약 조건 적용
필수 조건
Microsoft Fabric 구독을 구매합니다. 또는 무료 Microsoft Fabric 평가판에 등록합니다.
Microsoft Fabric에 로그인합니다.
홈페이지 왼쪽 아래에 있는 환경 전환기를 사용하여 패브릭으로 전환합니다.
- Microsoft Fabric에 있는 데이터 과학 환경으로 이동합니다.
- 코드를 셀에 복사하여 붙여넣을 새 Notebook을 만듭니다.
- Spark 3.4 이상 버전의 경우 Fabric을 사용할 때 기본 런타임에서 의미 체계 링크를 사용할 수 있으므로 설치할 필요가 없습니다. Spark 3.3 이하 버전을 사용 중이거나 최신 버전의 의미 체계 링크로 업데이트하려는 경우
python %pip install -U semantic-link
- Notebook에 레이크하우스를 추가합니다.
Spark 3.4 이상 버전의 경우 Fabric을 사용할 때 기본 런타임에서 의미 체계 링크를 사용할 수 있으므로 설치할 필요가 없습니다. Spark 3.3 이하를 사용하거나 최신 버전의 의미 체계 링크로 업데이트하려면 다음 명령을 실행합니다.
%pip install -U semantic-link
```
## Find functional dependencies in data
The SemPy `find_dependencies` function detects functional dependencies between the columns of a FabricDataFrame. The function uses a threshold on conditional entropy to discover approximate functional dependencies, where low conditional entropy indicates strong dependence between columns. To make the `find_dependencies` function more selective, you can set a lower threshold on conditional entropy. The lower threshold means that only stronger dependencies will be detected.
This Python code snippet demonstrates how to use `find_dependencies`:
```python
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()
find_dependencies
함수는 열 간의 종속성이 검색된 FabricDataFrame을 반환합니다.
목록은 1:1 매핑이 있는 열을 나타냅니다. 또한 이 함수는 잠재적인 종속성을 정리하기 위해 전이적 가장자리를 제거합니다.
dropna=True
옵션을 지정하면 두 열에 NaN 값이 있는 행이 평가에서 제거됩니다. 이 예제와 같이 비선도적 종속성이 발생할 수 있습니다.
A | B | C |
---|---|---|
1 | 1 | 1 |
1 | 1 | 1 |
1 | NaN | 9 |
2 | NaN | 2 |
2 | 2 | 2 |
경우에 따라 이 예제와 같이 옵션을 지정할 dropna=True
때 종속성 체인이 주기를 형성할 수 있습니다.
A | B | C |
---|---|---|
1 | 1 | NaN |
2 | 1 | NaN |
NaN | 1 | 1 |
NaN | 2 | 1 |
1 | NaN | 1 |
1 | NaN | 2 |
데이터의 종속성 시각화
데이터 세트(사용)에서 함수 종속성을 찾은 후 함수를 사용하여 find_dependencies
종속성을 plot_dependency_metadata
시각화할 수 있습니다. 이 함수는 find_dependencies
에서 결과 FabricDataFrame을 가져와 열과 열 그룹 간의 종속성을 시각적으로 표현합니다.
이 Python 코드 조각은 다음을 사용하는 plot_dependencies
방법을 보여줍니다.
from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
from sempy.samples import download_synthea
download_synthea(which='small')
df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))
deps = df.find_dependencies()
plot_dependency_metadata(deps)
plot_dependency_metadata
함수는 열의 1:1 그룹화를 보여 주는 시각화를 생성합니다.
단일 그룹에 속하는 열은 단일 셀에 배치됩니다. 적합한 후보가 없으면 빈 FabricDataFrame이 반환됩니다.
데이터 품질 문제 식별
데이터 품질 문제에는 누락된 값, 불일치 또는 부정확성 등 다양한 형식이 있을 수 있습니다. 이러한 문제를 식별하고 해결하는 것은 데이터를 기반으로 하는 분석 또는 모델의 안정성과 유효성을 보장하는 데 중요합니다. 데이터 품질 문제를 검색하는 한 가지 방법은 데이터 세트의 열 간 기능 종속성 위반을 검사하는 것입니다.
이 함수는 list_dependency_violations
데이터 세트 열 간의 기능 종속성 위반을 식별하는 데 도움이 될 수 있습니다. 결정자 열과 종속 열이 주어진 경우 이 함수는 함수 종속성을 위반하는 값과 각 발생 횟수를 표시합니다. 이를 통해 대략적인 종속성을 검사하고 데이터 품질 문제를 식별할 수 있습니다.
이 코드 조각은 함수를 사용하는 방법을 보여줍니다.list_dependency_violations
from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
download_synthea(which='small')
df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))
violations = df.list_dependency_violations(determinant_col="ZIP", dependent_col="CITY")
이 예제에서 함수는 ZIP(결정)과 CITY(종속) 열 간의 기능 종속성을 가정합니다. 데이터 세트에 데이터 품질 문제가 있는 경우(예: 여러 도시에 할당된 동일한 우편 번호) 함수는 다음과 같은 문제가 있는 데이터를 출력합니다.
ZIP | CITY | count |
---|---|---|
12345 | Boston | 2 |
12345 | Seattle | 1 |
이 출력은 서로 다른 두 도시(보스턴 및 시애틀)의 우편 번호 값(12345)이 동일하다는 것을 나타냅니다. 이는 데이터 세트 내의 데이터 품질 문제를 시사합니다.
이 함수는 list_dependency_violations
누락된 값을 처리하고, 위반 값에 매핑된 값을 표시하고, 반환된 위반 횟수를 제한하고, 개수 또는 결정 열별로 결과를 정렬할 수 있는 더 많은 옵션을 제공합니다.
출력은 list_dependency_violations
데이터 세트 데이터 품질 문제를 식별하는 데 도움이 될 수 있습니다. 그러나 결과를 신중하게 검토하고 데이터의 컨텍스트를 고려하여 식별된 문제를 해결하기 위한 가장 적절한 작업 과정을 결정해야 합니다. 이 방법에는 분석 또는 모델의 안정성과 유효성을 보장하기 위해 더 많은 데이터 정리, 유효성 검사 또는 탐색이 포함될 수 있습니다.
데이터 품질 문제 시각화
데이터 품질 문제는 해당 데이터를 기반으로 하는 분석 또는 모델의 안정성과 유효성을 손상시킬 수 있습니다. 이러한 문제를 식별하고 해결하는 것은 결과의 정확성을 보장하는 데 중요합니다. 데이터 품질 문제를 검색하려면 데이터 세트의 열 간 기능 종속성 위반을 검사할 수 있습니다. 이러한 위반을 시각화하면 문제를 보다 명확하게 표시하고 문제를 보다 효과적으로 해결하는 데 도움이 될 수 있습니다.
plot_dependency_violations
함수는 데이터 세트의 열 간의 함수 종속성 위반을 시각화하는 데 도움이 될 수 있습니다. 결정 열과 종속 열이 지정된 경우 이 함수는 위반 값을 그래픽 형식으로 표시하여 데이터 품질 문제의 특성과 범위를 더 쉽게 이해할 수 있도록 합니다.
이 코드 조각은 함수를 사용하는 방법을 보여줍니다.plot_dependency_violations
from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_violations
from sempy.samples import download_synthea
download_synthea(which='small')
df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))
df.plot_dependency_violations(determinant_col="ZIP", dependent_col="CITY")
이 예제에서 함수는 ZIP(결정)과 CITY(종속) 열 간의 기존 기능 종속성을 가정합니다. 데이터 세트에 여러 도시에 할당된 동일한 우편 번호와 같은 데이터 품질 문제가 있는 경우 함수는 위반 값의 그래프를 생성합니다.
이 함수는 plot_dependency_violations
누락된 값을 처리하고, 위반 값에 매핑된 값을 표시하고, 반환된 위반 횟수를 제한하고, 개수 또는 결정 열별로 결과를 정렬할 수 있는 더 많은 옵션을 제공합니다.
이 함수는 plot_dependency_violations
데이터 세트 데이터 품질 문제를 식별하는 데 도움이 되는 시각화를 생성합니다. 그러나 결과를 신중하게 검토하고 데이터의 컨텍스트를 고려하여 식별된 문제를 해결하기 위한 가장 적절한 작업 과정을 결정해야 합니다. 이 방법에는 분석 또는 모델의 안정성과 유효성을 보장하기 위해 더 많은 데이터 정리, 유효성 검사 또는 탐색이 포함될 수 있습니다.
함수 제약 조건 적용
데이터 품질은 데이터 세트를 기반으로 하는 모든 분석 또는 모델의 안정성과 유효성을 보장하는 데 매우 중요합니다. 데이터 세트의 열 간에 기능 제약 조건을 적용하면 데이터 품질을 개선하는 데 도움이 될 수 있습니다. 기능 제약 조건은 열 간의 관계에 정확도와 일관성이 있는지 확인하는 데 도움이 되며, 이로 인해 보다 정확한 분석 또는 모델 결과가 발생할 수 있습니다.
이 함수는 drop_dependency_violations
데이터 세트의 열 간에 함수 제약 조건을 적용하는 데 도움이 될 수 있습니다. 지정된 제약 조건을 위반하는 행을 삭제합니다. 결정 열과 종속 열이 있는 경우 이 함수는 두 열 간의 기능 제약 조건을 준수하지 않는 값이 있는 행을 제거합니다.
이 코드 조각은 함수를 사용하는 방법을 보여줍니다.drop_dependency_violations
from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
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")
여기서 함수는 ZIP(결정)과 CITY(종속) 열 간에 함수 제약 조건을 적용합니다. 결정자의 각 값에 대해 종속 항목의 가장 일반적인 값이 선택되고 다른 값이 있는 모든 행을 삭제됩니다. 예를 들어 이 데이터 세트를 사용하면 CITY=Seattle이 있는 행이 삭제되고 기능 종속성 ZIP -> CITY가 출력에 포함됩니다.
ZIP | CITY |
---|---|
12345 | Seattle |
12345 | Boston |
12345 | Boston |
98765 | Baltimore |
00000 | San Francisco |
이 함수는 drop_dependency_violations
출력 세부 정보를 제어하는 옵션을 제공합니다 verbose
. 설정 verbose=1
하면 삭제된 행 수를 볼 수 있습니다. 값은 verbose=2
삭제된 행의 전체 행 내용을 보여 줍니다.
이 함수는 drop_dependency_violations
데이터 세트의 열 간에 기능 제약 조건을 적용하여 데이터 품질을 개선하고 분석 또는 모델에서 보다 정확한 결과를 생성할 수 있습니다. 그러나 데이터 세트에서 중요한 정보를 실수로 제거하지 않도록 데이터 컨텍스트 및 적용하기로 선택한 기능 제약 조건을 신중하게 고려해야 합니다.