Lux + Pandas: 게으른 분석가를 위한 자동 시각화


편집자 이미지
# 소개
오늘날 모든 사람은 엄청난 양의 데이터를 가지고 작업합니다. 우리 모두 사랑해요 팬더 데이터 랭글링을 위해. 하지만 솔직하게 말하면 DataFrames를 스크롤하고 수동으로 차트를 그리는 것은 지루합니다. 루틴은 거의 변경되지 않습니다. DataFrame을 로드하고, 몇 개의 열을 검사하고, 실행합니다. describe()동일한 차트 세트를 작성하여 패턴을 찾습니다. 작동하지만 반복적이고 시간이 많이 걸립니다. 저는 최근 프로젝트에서 분포와 관계에 대한 간단한 질문에 답하기 위해 처음 몇 시간 동안 기본 히스토그램, 산점도 및 상관 관계 시각적 자료를 만드는 동안 이 사실을 발견했습니다.
럭스 Pandas와 직접 통합되는 Python 라이브러리이며 DataFrame을 표시하자마자 통찰력 있는 시각화를 자동으로 생성합니다.. 이는 분석적 추론을 대체하지 않습니다. 오히려 이를 지연시키는 수동 작업을 제거합니다. 이는 분석가, 학생 및 데이터 과학자가 모델링을 시작하기 전에도 데이터를 더 빠르게 탐색하고, 추세를 발견하고, 패턴을 이해하는 데 도움이 됩니다. 이 글에서는 Lux의 작동 방식, 설정 방법, Lux가 왜 중요한지 살펴보겠습니다. “게으른” 분석가를 위한 완벽한 동반자 여전히 현명한 결과를 원하는 사람.
# 설치
Lux의 작동 방식을 이해하기 전에 Lux를 설치하고 노트북 환경(Jupyter/Google Colab)에서 활성화해 보겠습니다. 다음과 같이 pip를 사용하여 설치할 수 있습니다.
!pip install lux-api
!pip install lux-widget
그런 다음 평소 Pandas에서 하듯이 가져옵니다.
import pandas as pd
import lux
Google Colab을 사용하는 경우 위젯 관리자도 활성화해야 합니다.
from google.colab import output
output.enable_custom_widget_manager()
가져오면 Lux는 자동으로 Pandas 환경에 연결됩니다.
# 왜 럭스인가?
전통적인 탐색적 데이터 분석(EDA) 워크플로우는 다음과 같습니다.
df.head()
df.describe()
sns.pairplot(df)
df[col].hist()
plt.scatter(df[x], df[y])
이것은 반복적이고 느립니다. Lux는 다음과 같이 변경합니다.
Lux는 데이터를 검사하고 분포, 상관 관계, 추세, 패턴은 물론 데이터 유형에 따른 권장 차트를 생성합니다. 기본적으로 Lux는 다음에 무엇을 볼지 제안하는 지능형 비서 역할을 합니다.
# 럭스의 작동 방식
이제 간단한 예제를 살펴보겠습니다. 코로나 데이터세트:
url = "
df = pd.read_csv(url)
df
DataFrame이 표시되면 Lux는 자동으로 해당 구조를 검사하고 그 아래에 의미 있는 시각화를 생성합니다.
산출:

Toggle Pandas/Lux를 클릭하면 다음과 같은 내용이 표시됩니다.

탭 간에 전환하여 상관 관계, 분포, 시간 및 지리 차트를 볼 수 있습니다. 각 탭의 의미를 살펴보겠습니다.
- 상관관계: 확진자, 회복자, 사망자 수가 서로 어떻게 연관되어 있는지 보여줍니다.
- 배포판: 사례 번호가 특정 패턴이나 비정상적인 값으로 분산되는 방식을 강조합니다.
- 일시적인: 시간 경과에 따른 사례의 변화를 추적하여 증가와 급증을 쉽게 확인할 수 있습니다.
- 지리적: 국가 및 지역별로 사례가 가장 흔한 위치를 보여줍니다.
이는 플로팅 코드를 작성하지 않고도 발생합니다. Lux는 주요 패턴을 더 빠르게 탐색할 수 있도록 기본 DataFrame 디스플레이를 향상합니다.
# 모든 Lux 시각화를 HTML로 저장
Lux를 사용하면 전체 시각화 패널을 공유 가능한 대화형 HTML 파일로 내보낼 수 있습니다.
df.save_as_html("lux_report.html")
산출:
Saved HTML to lux_report.html
이제 모든 브라우저에서 이 파일을 다운로드하고 볼 수 있습니다.


또한 의도를 설정하여 Lux가 데이터 세트 내의 특정 관계에 집중하도록 안내할 수도 있습니다.
# 의도를 가지고 데이터 탐색
이를 이해하기 위해 동일한 데이터세트를 사용해 보겠습니다. Lux가 확인된 사례를 강조하도록 하려고 한다고 가정해 보겠습니다. 다음과 같이 이 작업을 수행할 수 있습니다.
df.intent = ["Confirmed"]
df
산출:

의도를 설정하면 Lux는 관심 있는 열에 집중합니다. 그런 다음 다양한 그룹을 명확하게 비교하는 차트를 표시합니다. 이렇게 하면 패턴을 더 쉽게 알아볼 수 있습니다. 아이디어를 더 빠르게 테스트하고 데이터를 더 명확하게 이해할 수 있습니다.
Lux는 권장 시각화를 내보낼 수 있는 옵션도 제공합니다.
# 시각화 내보내기
Lux를 사용하면 위젯에서 직접 흥미로운 시각화를 추출할 수 있습니다. 원하는 차트를 클릭한 다음 내보내기 버튼을 선택하기만 하면 됩니다.


내보낸 시각화는 다음 위치에 저장됩니다. df.exported. 저장된 영상의 전체 목록을 표시하려면 다음을 사용하십시오.
산출:


내보낸 특정 차트를 보려면 다음과 같이 색인으로 액세스하면 됩니다.
# Get the first exported visualization
vis = df.exported[0]
vis
산출:


Lux는 시각화를 Matplotlib, Altair 또는 Vega-Lite 코드로 자동 변환합니다. 긴 플로팅 스크립트를 수동으로 작성하지 않고도 어디서나 재사용하고 사용자 정의할 수 있습니다.
# Get the equivalent plotting code
print(vis.to_matplotlib())
print(vis.to_altair())
print(vis.to_vegalite())
예를 들어, print(vis.to_matplotlib()) 될 것입니다 :
import matplotlib.pyplot as plt
plt.rcParams.update(
{
"axes.titlesize": 20,
"axes.titleweight": "bold",
"axes.labelweight": "bold",
"axes.labelsize": 16,
"legend.fontsize": 14,
"legend.title_fontsize": 15,
"xtick.labelsize": 13,
"ytick.labelsize": 13,
}
)
import numpy as np
from math import nan
df = pd.DataFrame({'Confirmed': {0: 0.0, 1: 8062512.0, 2: 16125024.0, 3: 24187536.0, 4: 32250048.0, 5: 40312560.0, 6: 48375072.0, 7: 56437584.0, 8: 64500096.0, 9: 72562608.0}, 'Number of Records': {0: 119202.0, 1: 917.0, 2: 399.0, 3: 220.0, 4: 212.0, 5: 122.0, 6: 25.0, 7: 7.0, 8: 7.0, 9: 65.0}})
fig, ax = plt.subplots()
bars = df['Confirmed']
measurements = df['Number of Records']
ax.bar(bars, measurements, width=6718760.0)
ax.set_xlabel('Confirmed (binned)')
ax.set_ylabel('Number of Records')
fig
# Lux가 유용한 경우와 그렇지 않은 경우
Lux는 탐색적 데이터 분석의 초기 단계, 즉 데이터세트를 이해하고 초기 패턴을 찾아내려고 할 때 유용합니다. 데이터 이해도를 높이고 가설 구축 속도를 높이며 교육 및 빠른 연구 작업에 적합합니다. 시각적 발견의 첫 번째 레이어를 자동화함으로써 Lux는 기본 플롯을 작성하는 데 소요되는 시간을 줄이고 플롯 코드를 다루는 것보다 통찰력을 해석하는 데 더 집중할 수 있게 해줍니다. 전문가가 너무 많기 때문에 Lux에는 다음과 같은 몇 가지 제한 사항이 있습니다.
- Jupyter Notebook, Google Colab 또는 JupyterLab에서 가장 잘 작동합니다.
- 매우 큰 데이터 세트에는 적합하지 않습니다.
- 게시 가능한 시각적 개체에는 여전히 Matplotlib, Seaborn 또는 Altair와 같은 도구가 필요합니다.
# 결론
데이터 분석을 배우고 있다면 Lux는 직관력을 더 빠르게 구축할 수 있는 훌륭한 방법입니다. 좋은 도구는 기술을 대체하지 않습니다. 그들은 당신이 그것을 성장하는 데 도움이됩니다. 기본 차트에 시간을 소비하는 대신 데이터 세트를 바로 이해할 수 있습니다. 탐색하는 동안 어려움에 직면하면 댓글 섹션에 문의하세요. 확인할 수 있는 몇 가지 유용한 리소스는 다음과 같습니다.
칸왈 메린 데이터 과학과 AI와 의학의 교차점에 대한 깊은 열정을 가진 기계 학습 엔지니어이자 기술 작가입니다. 그녀는 “ChatGPT를 통한 생산성 극대화”라는 전자책을 공동 집필했습니다. 2022년 APAC Google Generation Scholar로서 그녀는 다양성과 학문적 우수성을 옹호하고 있습니다. 그녀는 또한 Tech Scholar, Mitacs Globalink Research Scholar 및 Harvard WeCode Scholar에서 Teradata Diversity로 인정받았습니다. Kanwal은 STEM 분야에서 여성의 역량을 강화하기 위해 FEMCodes를 설립한 변화에 대한 열렬한 옹호자입니다.



Post Comment