기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SageMaker Data Wrangler에는 몇 번의 클릭으로 시각화 및 데이터 분석을 생성하는 데 도움이 되는 기본 제공 분석이 포함되어 있습니다. 자체 코드를 사용하여 사용자 지정 분석을 만들 수도 있습니다.
데이터 흐름에서 단계를 선택한 다음 분석 추가를 선택하여 데이터프레임에 분석을 추가할 수 있습니다. 생성한 분석에 액세스하려면 분석이 포함된 단계를 선택하고 분석을 선택합니다.
모든 분석은 데이터세트의 100,000개 행을 사용하여 생성됩니다.
데이터 프레임에 다음 분석을 추가할 수 있습니다.
-
히스토그램 및 산점도를 포함한 데이터 시각화.
-
항목 수, 최소값 및 최대값 (숫자 데이터용), 빈도가 가장 높은 범주와 가장 빈도가 낮은 범주(범주형 데이터용)를 포함하는 데이터세트의 간략한 요약.
-
각 특징에 대한 중요도 점수를 생성하는 데 사용할 수 있는 데이터세트의 빠른 모델.
-
대상 누출 보고서. 이는 하나 이상의 특징이 대상 특징과 강한 상관관계가 있는지 확인하는 데 사용할 수 있습니다.
-
자체 코드를 사용한 사용자 지정 시각화.
다음 섹션을 통해 이런 옵션에 대해 자세히 알아보세요.
히스토그램(Histogram)
히스토그램을 사용하면 각 특징의 특징 값 수를 확인할 수 있습니다. 사용자는 색상 기준 옵션을 사용하여 기능 간의 관계를 검사할 수 있습니다. 예를 들어, 다음 히스토그램은 2009년부터 2019년까지 Amazon에서 가장 많이 팔린 도서의 사용자 평점 분포를 장르별로 채색하여 차트로 보여줍니다.
사용자는 패싯 기능을 사용하여 다른 열의 각 값에 대해 한 열의 히스토그램을 생성할 수 있습니다. 예를 들어, 다음 다이어그램은 Amazon에서 가장 많이 팔린 도서에 대한 사용자 리뷰 히스토그램을 연도별로 나누어 보여줍니다.
산점도
산점도 기능을 사용하여 특징 간의 관계를 검사할 수 있습니다. 산점도를 만들려면 X축과 Y축에 플롯할 기능을 선택합니다. 이 두 열 모두 숫자 형식의 열이어야 합니다.
추가 열을 기준으로 산점도에 색을 지정할 수 있습니다. 예를 들어, 다음 예제는 2009년과 2019년 사이에 Amazon에서 가장 많이 팔린 도서의 리뷰 수와 사용자 평점을 비교한 산점도를 보여줍니다. 산점도는 책 장르별로 색이 지정되어 있습니다.
또한 특징별로 산점도를 패싯할 수 있습니다. 예를 들어, 다음 이미지는 동일한 리뷰와 사용자 평점을 비교한 산점도를 연도별로 나누어 보여주는 예입니다.
표 요약
표 요약 분석을 사용하면 데이터를 빠르게 요약할 수 있습니다.
로그 및 부동 데이터를 비롯한 수치 데이터가 있는 열의 경우 표 요약에 각 열의 항목 수(개수), 최소값(최소), 최대값(최대), 평균, 표준편차(stddev)가 표시됩니다.
문자열, 부울 또는 날짜/시간 데이터가 있는 열을 포함하는 숫자가 아닌 데이터가 있는 열의 경우 표 요약에는 항목 수(개수), 가장 빈도가 낮은 값(최소), 가장 빈도가 높은 값(최대)이 보고됩니다.
빠른 모델
빠른 모델 시각화를 사용하여 데이터를 빠르게 평가하고 각 특징에 대한 중요도 점수를 산출할 수 있습니다. 기능 중요도 점수
빠른 모형 차트를 만들 때는 평가할 데이터세트와 기능 중요도를 비교할 대상 레이블을 선택합니다. Data Wrangler는 다음을 수행합니다.
-
선택한 데이터세트의 대상 레이블 및 각 특징에 대한 데이터 형식을 유추합니다.
-
문제 유형을 결정합니다. Data Wrangler는 레이블 열에 있는 고유 값의 수를 기반으로 이것이 회귀 문제 유형인지 분류 문제인지 판단합니다. Data Wrangler는 범주형 임곗값을 100으로 설정합니다. 레이블 열에 100개가 넘는 고유 값이 있는 경우 Data Wrangler는 이를 회귀 문제로 분류하고 그렇지 않으면 분류 문제로 분류합니다.
-
훈련을 위해 특징 및 레이블 데이터를 사전 처리합니다. 알고리즘을 사용하려면 특징을 vector 유형으로 인코딩하고 레이블을 double 유형으로 인코딩해야 합니다.
-
데이터의 70%를 사용하여 랜덤 포레스트(random forest) 알고리즘을 훈련시킵니다. SparkRandomForestRegressor
는 회귀 문제에 대해 모델을 훈련하는 데 사용됩니다. RandomForestClassifier 는 분류 문제에 대한 모델을 훈련하는 데 사용됩니다. -
나머지 30% 의 데이터로 랜덤 포레스트 모델을 평가합니다. Data Wrangler는 F1 점수를 사용하여 분류 모델을 평가하고 MSE 점수를 사용하여 회귀 모델을 평가합니다.
-
Gini(지니) 중요도 방법을 사용하여 각 기능의 기능 중요도를 계산합니다.
다음 이미지는 빠른 모델 기능의 사용자 인터페이스를 보여줍니다.
대상 누출
대상 누출은 기계 학습 훈련 데이터세트에 대상 레이블과 강한 상관 관계가 있지만 실제 데이터에서는 사용할 수 없는 데이터가 있을 때 발생합니다. 예를 들어 모델을 사용하여 예측하려는 열의 프록시 역할을 하는 열이 데이터세트에 있을 수 있습니다.
대상 누출 분석을 사용할 때는 다음을 지정합니다.
-
대상: ML 모델이 예측을 하려는 특징입니다.
-
문제 유형: 작업 중인 ML 문제 유형입니다. 문제 유형은 분류 또는 회귀일 수 있습니다.
-
(선택 사항) 최대 기능: 시각화에 표시할 수 있는 최대 특징 수로, 특징을 대상 누출 위험을 기준으로 순위를 매겨 보여줍니다.
분류를 위해 대상 누출 분석은 수신기 작동 특성 아래 영역 또는 각 열에 대한 AUC - ROC 곡선을 최대 특성까지 사용합니다. 회귀 분석의 경우, 이는 결정 계수 또는 R2 지표를 사용합니다.
AUC - ROC 곡선은 최대 약 1000개의 행 샘플에 대해 교차 검증을 사용하여 각 열에 대해 개별적으로 계산된 예측 지표를 제공합니다. 1점은 완벽한 예측 능력을 나타내며, 이는 종종 대상 누출을 나타냅니다. 점수가 0.5점 이하이면 열의 정보 자체로는 대상 예측에 유용한 정보를 제공하지 못함을 나타냅니다. 열 자체로는 정보를 제공하지 않지만 다른 기능과 함께 사용할 경우 대상을 예측하는 데 유용할 수 있지만 점수가 낮으면 기능이 중복되었음을 의미할 수 있습니다.
예를 들어, 다음 이미지는 당뇨병 분류 문제, 즉 사람이 당뇨병을 가지고 있는지의 여부 예측에 대한 대상 누출 보고서를 보여줍니다. - ROC 곡선은 AUC 5가지 기능의 예측 능력을 계산하는 데 사용되며, 모두 대상 누출로부터 안전한 것으로 결정됩니다.
다중 공선성
다중 공선성(Multicollinearity)은 두 개 이상의 예측 변수가 서로 관련되어 있는 상황입니다. 예측 변수는 대상 변수를 예측하는 데 사용하는 데이터세트의 특징입니다. 다중 공선성이 있는 경우 예측 변수는 대상 변수를 예측할 뿐만 아니라 서로를 예측할 수도 있습니다.
분산 팽창 인수(VIF), 보안 주체 구성 요소 분석(PCA) 또는 Lasso 기능 선택을 데이터의 다중 선형성에 대한 측정값으로 사용할 수 있습니다. 추가 정보는 다음을 참조하세요.
Variance Inflation Factor(VIF)는 변수 페어 간의 공동 선형성 측정치입니다. Data Wrangler는 변수가 서로 얼마나 밀접한 관련이 있는지에 대한 척도로 VIF 점수를 반환합니다. VIF 점수는 1보다 크거나 같은 양수입니다.
점수가 1이면 변수가 다른 변수와 상관관계가 없음을 의미합니다. 점수가 1보다 크면 상관관계가 높음을 나타냅니다.
이론적으로 무한성 값을 가진 VIF 점수를 가질 수 있습니다. Data Wrangler는 50점을 최고 점수로 사용합니다. VIF 점수가 50보다 큰 경우 Data Wrangler는 점수를 50으로 설정합니다.
다음 지침을 사용하여 VIF 점수를 해석할 수 있습니다.
-
5 이하의 VIF 점수는 변수가 다른 변수와 중간 정도로 상관관계가 있음을 나타냅니다.
-
5 이상의 VIF 점수는 변수가 다른 변수와 높은 상관관계를 가지고 있음을 나타냅니다.
시계열 데이터에서 이상 항목 탐지
이상 탐지 시각화를 사용하여 시계열 데이터의 이상치를 확인할 수 있습니다. 이상을 결정하는 요인을 이해하려면 시계열을 예측 항과 오차 항으로 분해한다는 점을 이해해야 합니다. 시계열의 계절성과 추세를 예측 항으로 취급합니다. 잔차(residual)를 오차항으로 취급합니다.
오차 항의 경우 임곗값을 표준 편차의 배수로 지정하면, 잔차가 평균에서 멀어질 때 이상으로 간주될 수 있습니다. 예를 들어, 임곗값을 표준편차의 3배로 지정할 수 있습니다. 평균에서 표준 편차의 3배보다 더 큰 잔차는 이상입니다.
다음 절차를 사용하여 이상 탐지 분석을 수행할 수 있습니다.
-
Data Wrangler 데이터 흐름을 엽니다.
-
데이터 흐름의 데이터 형식에서 +를 선택하고 분석 추가를 선택합니다.
-
분석 유형에서 시계열을 선택합니다.
-
시각화에서는 이상 탐지를 선택합니다.
-
이상 임곗값에서 예외로 간주하는 임곗값을 선택합니다.
-
미리 보기를 선택하여 분석 미리 보기를 생성합니다.
-
추가를 선택하여 Data Wrangler 데이터 흐름에 변환을 추가합니다.
시계열 데이터의 계절적 추세 분해
Seasonal Trend Decomposition(계절적 추세 분해) 시각화를 사용하여 시계열 데이터에 계절성이 있는지 여부를 확인할 수 있습니다. STL (를 사용한 계절별 추세 분해LOESS) 메서드를 사용하여 분해를 수행합니다. 시계열은 계절 요소, 추세 요소, 잔차 요소로 분해됩니다. 추세 요소는 시리즈의 장기적 진행 상황을 반영합니다. 계절 요소는 일정 기간 동안 반복되는 신호입니다. 시계열에서 추세와 계절 요소를 제거하면 잔차가 남습니다.
다음 절차를 사용하여 계절-추세 분해 분석을 수행할 수 있습니다.
-
Data Wrangler 데이터 흐름을 엽니다.
-
데이터 흐름의 데이터 형식에서 +를 선택하고 분석 추가를 선택합니다.
-
분석 유형에서 시계열을 선택합니다.
-
시각화에서는 계절-추세 분해를 선택합니다.
-
이상 임곗값에서 예외로 간주하는 임곗값을 선택합니다.
-
미리 보기를 선택하여 분석 미리 보기를 생성합니다.
-
추가를 선택하여 Data Wrangler 데이터 흐름에 변환을 추가합니다.
바이어스 리포트
Data Wrangler의 바이어스 보고서를 사용하여 데이터의 잠재적 편향을 찾아낼 수 있습니다. 바이어스 보고서를 생성하려면 예측하려는 대상 열(레이블)과 패싯(편향 여부를 검사할 열)을 지정해야 합니다.
레이블: 모델이 예측하는 데 사용하려는 특징. 예를 들어 고객 전환율을 예측하는 경우 고객의 주문 여부에 대한 데이터가 포함된 열을 선택할 수 있습니다. 또한 이 특징이 레이블인지 임곗값인지도 지정해야 합니다. 레이블을 지정하는 경우 먼저 데이터에서 긍정적인 결과가 어떤 것인지 지정해야 합니다. 고객 전환 예제에서 긍정적인 결과는 주문 열에서 1이 될 수 있으며, 이는 지난 3개월 이내에 주문한 고객의 긍정적인 결과를 나타냅니다. 임곗값을 지정하는 경우 긍정적인 결과를 정의하는 하한을 지정해야 합니다. 예를 들어 고객 주문 열이 작년의 주문 수를 표시하는 경우 1을 지정하는 것이 좋습니다.
패싯: 편견이 있는지 검사하려는 열입니다. 예를 들어, 고객 전환율을 예측하려는 경우 고객 연령으로 패싯할 수 있습니다. 데이터가 특정 연령대에 편향되어 있다고 생각하기 때문에 이 패싯을 선택할 수 있습니다. 패싯을 값으로 측정할지 임곗값으로 측정할지를 식별해야 합니다. 예를 들어, 하나 이상의 특정 연령을 검사하려면 값을 선택하고 해당 연령을 지정합니다. 연령 그룹을 살펴보려면 임곗값을 선택하고 검사하려는 연령의 임곗값을 지정합니다.
특징과 레이블을 선택한 후 계산하려는 편향 지표의 유형을 선택합니다.
자세한 내용은 훈련 전 데이터의 편향에 대한 보고서 생성을 참조하세요.
사용자 지정 시각화 만들기
Data Wrangler 흐름에 분석을 추가하여 사용자 지정 시각화를 만들 수 있습니다. 적용한 모든 변환과 함께 데이터 세트를 Pandas DataFramedf
변수를 사용하여 데이터프레임을 저장합니다. 변수를 호출하여 데이터프레임에 액세스할 수 있습니다.
Altairchart
저장하려면 출력 변수 를 제공해야 합니다. 예를 들어, 다음 코드 블록을 사용하여 타이타닉 데이터세트에 대한 사용자 지정 히스토그램을 만들 수 있습니다.
import altair as alt
df = df.iloc[:30]
df = df.rename(columns={"Age": "value"})
df = df.assign(count=df.groupby('value').value.transform('count'))
df = df[["value", "count"]]
base = alt.Chart(df)
bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count'))
rule = base.mark_rule(color='red').encode(
x='mean(value):Q',
size=alt.value(5))
chart = bar + rule
사용자 지정 시각화를 만들려면:
-
시각화하려는 변환이 포함된 노드 옆의 +를 선택합니다.
-
분석 추가를 선택합니다.
-
분석 유형에서 사용자 지정 시각화를 선택합니다.
-
분석 이름에서 이름을 지정합니다.
-
코드 상자에 코드를 입력합니다.
-
미리보기를 선택하여 시각화를 미리 볼 수 있습니다.
-
저장을 선택하여 시각화를 추가합니다.
Python의 Altair 시각화 패키지 사용법을 모르는 경우, 사용자 지정 코드 조각을 사용하면 시작 시 도움이 됩니다.
Data Wrangler에는 검색 가능한 시각화 코드 조각 모음이 있습니다. 시각화 코드 조각을 사용하려면, 예제 조각 검색을 선택하고 검색 창에서 쿼리를 지정합니다.
다음 예제에서는 Binned 산점도 코드 조각을 사용합니다. 2차원에 대한 히스토그램을 플롯합니다.
코드 조각에는 코드를 변경할 때 필요한 사항을 파악하는 데 도움이 되는 주석이 있습니다. 일반적으로 코드에 데이터세트의 열 이름을 지정해야 합니다.
import altair as alt
# Specify the number of top rows for plotting
rows_number = 1000
df = df.head(rows_number)
# You can also choose bottom rows or randomly sampled rows
# df = df.tail(rows_number)
# df = df.sample(rows_number)
chart = (
alt.Chart(df)
.mark_circle()
.encode(
# Specify the column names for binning and number of bins for X and Y axis
x=alt.X("col1:Q", bin=alt.Bin(maxbins=20)),
y=alt.Y("col2:Q", bin=alt.Bin(maxbins=20)),
size="count()",
)
)
# :Q specifies that label column has quantitative type.
# For more details on Altair typing refer to
# https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types