2개의 데이터 세트를 Pandas 프로파일링과 비교하는 방법
시각화는 EDA의 초석입니다. 새롭고 알려지지 않은 데이터 세트에 직면할 때 육안 검사를 통해 사용 가능한 정보를 파악하고 데이터와 관련된 몇 가지 패턴을 그리며 해결해야 할 여러 문제를 진단할 수 있습니다. 그런 점에서 Pandas Profiling 은 모든 데이터 과학자의 도구 벨트에서 없어서는 안 될 스위스 칼이었습니다. 이전 기사에서 시계열 EDA 를 수행하는 동안 pandas 프로파일링이 어떻게 도움이 될 수 있는지 언급 했지만 두 데이터 세트를 비교할 수 있다면 어떨까요?
얼마나 많은 사람들이 데이터 과학 프로젝트 개발을 시작했고 데이터 변환 및 엔지니어링에서 얼마나 많은 것을 얻고 있는지 이해하기 위해 고군분투하고 있습니까?
이것이 제가 오늘 블로그 게시물에서 다룰 내용입니다. 가장 유명한 한 줄의 코드 EDA를 활용하여 데이터 과학 개발 및 데이터 품질 개선 프로세스를 강화하는 방법입니다. Pandas-Profiling 비교 보고서 기능을 활용하여 EDA 프로세스를 향상하고 데이터에서 더 빠르고 스마트한 변환을 생성할 수 있는 잠재력을 설명하는 방법을 안내합니다.
이 기사에서 사용된 데이터 세트 는 Miriam Santos 의 HCC 데이터 세트 인 Kaggle에서 찾을 수 있습니다 (라이선스: CC0: Public Domain ). 이 특정 사용 사례에 대해 몇 가지 추가 데이터 품질 문제를 인위적으로 도입하여 시각화가 어떻게 이러한 문제를 감지하고 효율적인 완화로 안내하는 데 도움이 되는지 보여줍니다. 모든 코드와 예제는 GitHub에서 사용할 수 있으며 약간의 복습이 필요한 경우 이 블로그 를 확인 하여 pandas 프로파일링 기술에 대한 먼지를 털어내십시오. 이제 사용 사례를 살펴보겠습니다!
Pandas 프로파일링: 손끝에서 EDA
먼저 HCC 데이터 세트를 프로파일링하고 보고서에 제안된 데이터 품질 문제를 조사합니다.
pip install pandas-profiling==3.5.0
Alerts shown in Pandas Profiling Report (scheenshot by author)
- 중복 : 데이터에 4개의 중복 행;
- 상수 : 'O2'의 상수 값 "999";
- 높은 상관관계 : 높은 상관관계로 표시된 여러 기능.
- 누락 : 'Ferritin'에 누락된 값이 있습니다.
중복 행 제거 : 도메인의 특성에 따라 오류가 아닌 동일한 값을 가진 레코드가 있을 수 있습니다. 그러나 이 데이터 세트의 일부 기능이 매우 구체적이고 개인의 생물학적 측정(예: "헤모글로빈", "MCV", "알부민")을 참조한다는 점을 고려하면 여러 환자가 모든 기능에 대해 동일한 정확한 값을 보고할 가능성이 없습니다. . 데이터에서 이러한 중복 항목을 삭제하여 시작하겠습니다.
관련 없는 기능 제거 : O2의 상수 값도 데이터의 실제 불일치를 반영하며 모델 개발에 유용한 정보를 보유하지 않는 것 같습니다. 실제 사용 사례 시나리오에서는 도메인 또는 비즈니스 전문가와 반복하는 것이 좋은 표준이지만 이 사용 사례 예제의 목적을 위해 계속해서 분석에서 제외합니다.
누락된 데이터 대치 : HCC 데이터 세트도 누락된 데이터에 매우 취약한 것으로 보입니다. 이 문제를 해결하는 간단한 방법(불완전한 레코드 또는 전체 기능 제거 방지)은 데이터 대치에 의존하는 것입니다. 통계적 대체 기술 중 가장 일반적이고 단순하며 종종 기준선 방법으로 사용되므로 누락된 관측치를 채우기 위해 평균 대체를 사용합니다.
나란히 비교: 데이터에 대한 더 빠르고 스마트한 반복
이제 재미있는 부분입니다! 데이터 세트에 대한 첫 번째 변환 배치를 구현한 후 데이터의 전반적인 품질에 미치는 영향을 평가할 준비가 되었습니다. 여기서 pandas 프로파일링 비교 보고서 기능이 유용합니다. 아래 코드는 시작하는 방법을 보여줍니다.
비교에서 두 보고서가 어떻게 표시되는지는 다음과 같습니다.

데이터 세트 개요에서 바로 이해할 수 있는 것은 무엇입니까? 변환된 데이터 세트에는 하나의 덜 범주적인 특징("O2"가 제거됨), 165개의 관찰(중복을 포함하는 원래 171개와 비교) 및 누락된 값이 없습니다(원래 데이터 세트에서 79개의 누락된 관찰과 대조적으로).
그러나 이러한 변환이 데이터 품질에 어떤 영향을 미쳤습니까? 그리고 그 결정은 얼마나 좋았습니까?
그것에 대해 자세히 알아보겠습니다. 중복 레코드에 관한 사항에서는 삭제 후 변수 분포 및 데이터 세트 패턴에 관한 사항에 특별한 영향이 없었습니다. 수행된 누락된 값 전가는 다른 이야기입니다.
예상대로 데이터 전가가 수행된 후 누락된 관측값이 없습니다. nullity 개수와 매트릭스가 두 데이터 버전 간의 차이점을 어떻게 나타내는지 확인하십시오. 변환된 데이터에서 "Ferritin"은 이제 165개의 완전한 값을 가지며 nullity 매트릭스에서 공백을 찾을 수 없습니다.

그러나 비교 보고서에서 다른 것을 추론할 수 있습니다. "Ferritin" 히스토그램을 검사하면 값을 평균으로 대치하면 원래 데이터 분포가 왜곡되어 바람직하지 않은 방식을 볼 수 있습니다.
이것은 또한 "페리틴"과 나머지 기능 간의 관계에서 어리석은 상호 작용 패턴과 더 높은 상관 값이 나타나는 상호 작용 및 상관 관계의 시각화를 통해 관찰됩니다.
이는 비교 보고서가 데이터 변환 후 도입된 차이점을 강조하는 데 유용할 뿐만 아니라 이러한 변환에 대한 중요한 통찰력을 얻을 수 있는 몇 가지 시각적 단서를 제공한다는 것을 보여줍니다. 이 경우 보다 전문적인 데이터 대치 전략을 고려해야 합니다. .
마지막 생각들
이 작은 사용 사례 전체에서 동일한 프로파일링 보고서 내에서 두 데이터 세트를 비교하여 EDA 중에 수행된 데이터 변환을 강조 표시하고 데이터 품질에 미치는 영향을 평가하는 유용성을 다루었습니다.
그럼에도 불구하고 기능 평가 및 육안 검사를 (반복) 반복해야 할 필요성이 데이터 중심 솔루션에 필수적이기 때문에 이 기능의 적용은 끝이 없습니다. 훈련 , 검증 및 테스트 세트 분포 또는 데이터 품질 관리 비교 에서 합성 데이터 생성 프로세스와 같은 고급 사용 사례까지 .
Fabiana Clemente , YData 의 CDO
향상된 데이터로 AI 가속화.