의미 체계 링크를 사용하여 데이터에서 기능 종속성 검색, 탐색 및 유효성 검사
기능 종속성은 한 열의 값이 다른 열의 값을 결정하는 데 사용되는 테이블의 열 간의 관계입니다. 이러한 종속성을 이해하면 데이터에서 패턴 및 관계를 파악하는 데 도움이 될 수 있으며, 이는 기능 엔지니어링, 데이터 정리 및 모델 빌드에 유용할 수 있습니다. 기능 종속성은 다른 방법으로는 검색하기 어려울 수 있는 데이터 품질 문제를 찾아서 해결할 수 있는 효과적인 고정으로 작동합니다.
이 문서에서는 의미 체계 링크를 사용하여 다음을 수행합니다.
- FabricDataFrame 열 간의 종속성 찾기
- 종속성 시각화
- 데이터 품질 문제 식별
- 데이터 품질 문제 시각화
- 데이터 세트의 열 간에 기능 제약 조건 적용
필수 조건
Microsoft Fabric 구독을 구매합니다. 또는 무료 Microsoft Fabric 평가판에 등록합니다.
Microsoft Fabric에 로그인합니다.
홈페이지 왼쪽의 환경 전환기를 사용하여 Synapse 데이터 과학 환경으로 전환합니다.
- Microsoft Fabric의 데이터 과학 환경으로 이동합니다.
- 새 Notebook을 만들어 코드를 복사/셀에 붙여넣습니다.
- Spark 3.4 이상의 경우 패브릭을 사용할 때 기본 런타임에서 의미 체계 링크를 사용할 수 있으며 설치할 필요가 없습니다. Spark 3.3 이하를 사용하거나 최신 버전의 의미 체계 링크로 업데이트하려는 경우 다음 명령을
python %pip install -U semantic-link
실행할 수 있습니다. - Notebook에 Lakehouse를 추가합니다. Spark 3.4 이상의 경우 패브릭을 사용할 때 기본 런타임에서 의미 체계 링크를 사용할 수 있으며 설치할 필요가 없습니다. Spark 3.3 이하를 사용하거나 최신 버전의 의미 체계 링크로 업데이트하려는 경우 다음 명령을 실행할 수 있습니다.
python %pip install -U semantic-link
데이터에서 기능 종속성 찾기
SemPy의 함수는 find_dependencies
FabricDataFrame 열 간의 기능 종속성을 검색합니다.
이 함수는 조건부 엔트로피의 임계값을 사용하여 대략적인 기능 종속성을 검색합니다. 여기서 낮은 조건부 엔트로피는 열 간의 강력한 종속성을 나타냅니다.
함수를 find_dependencies
보다 선택적으로 만들기 위해 조건부 엔트로피에 대해 더 낮은 임계값을 설정할 수 있습니다. 임계값이 낮을수록 더 강력한 종속성만 검색됩니다.
다음 Python 코드 조각은 사용하는 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()
이 함수는 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
종속성을 시각화할 수 있습니다.
이 함수는 결과 FabricDataFrame을 가져와 find_dependencies
열과 열 그룹 간의 종속성에 대한 시각적 표현을 만듭니다.
다음 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 | 보스턴 | 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(종속) 열 간에 함수 제약 조건을 적용합니다. 결정자의 각 값에 대해 종속 항목의 가장 일반적인 값이 선택되고 다른 값이 있는 모든 행이 삭제됩니다. 예를 들어 다음 데이터 세트가 제공됩니다.
ZIP | CITY |
---|---|
12345 | Seattle |
12345 | 보스턴 |
12345 | 보스턴 |
98765 | Baltimore |
00000 | 샌프란시스코 |
CITY=Seattle이 있는 행이 삭제되고 기능 종속성 ZIP -> CITY가 출력에 포함됩니다.
이 함수는 drop_dependency_violations
출력의 verbose
세부 정보를 제어하는 옵션을 제공합니다. 설정 verbose=1
하면 삭제된 행 수를 볼 수 있으며 verbose=2
삭제된 행의 전체 행 콘텐츠를 볼 수 있습니다.
이 함수를 drop_dependency_violations
사용하면 데이터 세트의 열 간에 기능 제약 조건을 적용하여 데이터 품질을 개선하고 분석 또는 모델에서 보다 정확한 결과를 생성할 수 있습니다.
그러나 데이터 세트에서 중요한 정보를 실수로 제거하지 않도록 적용하도록 선택한 기능 제약 조건과 데이터의 컨텍스트를 신중하게 고려해야 합니다.