

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 데이터 인사이트를 얻기 위해 Amazon SageMaker Studio Classic 노트북의 대화형 데이터 준비 위젯 사용
<a name="data-wrangler-interactively-prepare-data-notebook"></a>

Data Wrangler 데이터 준비 위젯을 사용하여 데이터와 상호 작용하고, 시각화하고, 실행 가능한 인사이트를 탐색하고, 데이터 품질 문제를 해결할 수 있습니다.

Amazon SageMaker Studio Classic 노트북에서 데이터 준비 위젯에 액세스할 수 있습니다. 각 열에 대해 위젯은 분산을 더 잘 이해하는 데 도움이 되는 시각화를 생성합니다. 열에 데이터 품질 문제가 있는 경우 헤더에 경고가 표시됩니다.

데이터 품질 문제를 보려면 경고가 표시된 열 헤더를 선택합니다. 인사이트와 시각화에서 얻은 정보를 사용하여 위젯에 내장된 변환을 적용하여 문제를 해결하는 데 도움이 될 수 있습니다.

예를 들어 위젯은 고유한 값이 하나뿐인 열이 있음을 감지하여 경고를 표시할 수 있습니다. 경고에는 데이터세트에서 열을 삭제할 수 있는 옵션이 제공됩니다.

## 위젯 실행 시작하기
<a name="data-wrangler-interactively-prepare-data-notebook-getting-started"></a>

다음 정보를 이용하여 노트북 실행을 시작하는 데 도움이 될 수 있습니다.

Amazon SageMaker Studio Classic에서 노트북을 엽니다. 노트북을 여는 방법에 대한 자세한 내용은 [Amazon SageMaker Studio Classic 노트북 만들기 또는 열기](notebooks-create-open.md) 섹션을 참조하세요.

**중요**  
위젯을 실행하기 위해 노트북은 다음 이미지 중 하나를 사용해야 합니다.  
Python 3(데이터 과학)와 Python 3.7
Python 3(데이터 과학 2.0)와 Python 3.8
Python 3(데이터 과학 3.0)와 Python 3.10
SparkAnalytics 1.0
SparkAnalytics 2.0
기본 이미지에 대한 자세한 내용은 [Studio Classic 노트북에 사용할 수 있는 Amazon SageMaker 이미지](notebooks-available-images.md) 섹션을 참조하세요.

다음 코드를 사용하여 데이터 준비 위젯과 panda를 가져옵니다. 위젯은 pandas 데이터프레임을 사용하여 데이터를 분석합니다.

```
import pandas as pd
import sagemaker_datawrangler
```

다음 예제 코드는 `df`라는 데이터프레임에 파일을 로드합니다.

```
df = pd.read_csv("example-dataset.csv")
```

pandas 데이터프레임 객체로 로드할 수 있는 모든 형식의 데이터세트를 사용할 수 있습니다. pandas 형식에 대한 자세한 내용은 [IO 도구(텍스트, CSV, HDF5 등)](https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html)를 참조하세요.

다음 셀은 `df` 변수를 실행하여 위젯을 시작합니다.

```
df
```

데이터프레임 상단에는 다음과 같은 옵션이 있습니다.
+ **Pandas 테이블 보기** - 대화형 시각화와 pandas 테이블 사이를 전환합니다.
+ **데이터세트의 모든 행을 사용하여 인사이트를 계산하세요. 전체 데이터세트를 사용하면 인사이트를 생성하는 데 걸리는 시간이 늘어날 수 있습니다.** - 옵션을 선택하지 않으면 Data Wrangler는 데이터세트의 처음 10,000개 행에 대한 인사이트를 계산합니다.

데이터프레임에는 데이터세트의 처음 1000개 행이 표시됩니다. 각 열 헤더에는 열의 특성을 보여주는 누적 막대 차트가 있습니다. 유효한 값, 잘못된 값, 누락된 값의 비율을 보여줍니다. 누적 막대 차트의 여러 부분을 마우스로 가리키면 계산된 백분율을 확인할 수 있습니다.

각 열의 헤더에는 시각화가 있습니다. 다음은 열에 포함할 수 있는 시각화 유형을 보여줍니다.
+ 카테고리 - 막대 차트
+ 숫자 - 히스토그램
+ 날짜시간 - 막대 차트
+ 텍스트 - 막대 차트

데이터 준비 위젯은 각 시각화에 대해 이상치를 주황색으로 강조 표시합니다.

열을 선택하면 측면 패널이 열립니다. 측면 패널에는 **인사이트** 탭이 표시됩니다. 이 패널에는 다음 유형의 값에 대한 개수가 표시됩니다.
+ 잘못된 값 - 유형이 열 유형과 일치하지 않는 값.
+ 누락된 값 - 누락된 값(예: `NaN` 또는 `None`).
+ 유효한 값 - 누락되거나 무효하지 않은 값.

숫자 열의 경우 **인사이트** 탭에는 다음과 같은 요약 통계가 표시됩니다.
+ 최소값 - 가장 작은 값입니다.
+ 최대값 - 가장 큰 값입니다.
+ 평균 - 값의 평균입니다.
+ 모드 - 가장 자주 나타나는 값입니다.
+ 표준 편차 - 값의 표준 편차입니다.

카테고리 열의 경우 **인사이트** 탭에는 다음과 같은 요약 통계가 표시됩니다.
+ 고유한 값 - 열에서 고유한 값의 수입니다.
+ 최고 - 가장 자주 나타나는 값입니다.

헤더에 경고 아이콘이 있는 열에는 데이터 품질 문제가 있습니다. 열을 선택하면 **데이터 품질** 탭이 열리고 이 탭을 사용하여 문제를 해결하는 데 도움이 되는 변환을 찾을 수 있습니다. 경고는 다음 심각도 수준 중 하나를 가집니다.
+ 낮음 - 분석에 영향을 미치지 않을 수도 있지만 해결하는 데 유용할 수 있는 문제입니다.
+ 보통 - 분석에 영향을 미칠 수 있지만 해결해야 할 중요성은 없는 문제입니다.
+ 높음 - 수정이 강력히 권장되는 심각한 문제입니다.

**참고**  
위젯은 열을 정렬하여 데이터프레임 상단에 데이터 품질 문제가 있는 값을 표시합니다. 또한 문제를 일으키는 값을 강조 표시합니다. 강조 표시의 색상은 심각도 수준에 해당합니다.

**제안된 변환**에서 데이터 품질 문제를 해결할 변환을 선택할 수 있습니다. 위젯은 문제를 해결할 수 있는 여러 변환을 제공할 수 있습니다. 문제에 가장 적합한 변환에 대한 권장 사항을 제공할 수 있습니다. 커서를 변환 위로 가져가면 해당 변환에 대한 자세한 정보를 얻을 수 있습니다.

데이터세트에 변환을 적용하려면 **적용 및 코드 내보내기를** 선택합니다. 변환은 데이터세트를 수정하고 수정된 값으로 시각화를 업데이트합니다. 변환 코드는 노트북의 다음 셀에 표시됩니다. 데이터세트에 추가 변환을 적용하는 경우 위젯은 변환을 셀에 추가합니다. 위젯이 생성하는 코드를 사용하여 다음을 수행할 수 있습니다.
+ 요구 사항에 더 잘 맞도록 사용자 지정하세요.
+ 자체 워크플로에서 사용하세요.

노트북의 모든 셀을 다시 실행하여 수행한 모든 변형을 재현할 수 있습니다.

위젯은 대상 열에 대한 인사이트와 경고를 제공할 수 있습니다. 대상 열은 예측하려는 열입니다. 다음 절차에 따라 대상 열 인사이트를 얻을 수 있습니다.

대상 열 인사이트를 얻으려면 다음을 수행하세요.

1. 대상 열로 사용할 열을 선택합니다.

1. **대상 열로 선택**을 선택합니다.

1. 문제 유형을 선택합니다. 위젯의 인사이트와 경고는 문제 유형에 맞게 조정됩니다. 문제 유형은 다음과 같습니다.
   + **분류** - 대상 열에 카테고리 데이터가 있습니다.
   + **회귀** - 대상 열에 숫자 데이터가 있습니다.

1. **실행**을 선택합니다.

1. (선택 사항) **대상 열 인사이트**에서 제안된 변환 중 하나를 선택합니다.

## 위젯의 인사이트 및 변환에 대한 참조
<a name="data-wrangler-notebook-dataprep-assistant-reference"></a>

기능 열(대상 열이 아닌 열)의 경우 다음과 같은 인사이트를 얻어 데이터세트 관련 문제를 경고할 수 있습니다.
+ **누락된 값** - 열에 `None`, `NaN`(숫자가 아님) 또는 `NaT`(타임스탬프가 아님)와 같은 누락된 값이 있습니다. 많은 기계 학습 알고리즘은 입력 데이터에 누락된 값을 지원하지 않습니다. 따라서 누락된 데이터를 채우거나 행을 삭제하는 것은 중요한 데이터 준비 단계입니다. 누락된 값 경고가 표시되는 경우 다음 변환 중 하나를 사용하여 문제를 해결할 수 있습니다.
  + **누락 삭제** - 누락된 값이 있는 행을 삭제합니다. 누락된 데이터가 있는 행의 비율이 적고 누락된 값을 산입하는 것이 적절하지 않은 경우에는 행을 삭제하는 것이 좋습니다.
  + **새 값으로 바꾸기** - 텍스트로 된 누락된 값을 `Other`로 바꿉니다. 출력 코드에서 `Other`를 다른 값으로 변경할 수 있습니다. 숫자로 된 누락된 값을 0으로 바꿉니다.
  + **평균으로 바꾸기** - 누락된 값을 열의 평균으로 바꿉니다.
  + **중앙값으로 바꾸기** - 누락된 값을 열의 중앙값으로 바꿉니다.
  + **열 삭제** - 데이터세트에서 누락된 값이 있는 열을 삭제합니다. 누락된 데이터가 있는 행의 비율이 높으면 열 전체를 삭제하는 것이 좋습니다.
+ **위장된 누락된 값** - 열에 위장된 누락된 값이 있습니다. 위장된 누락된 값은 누락된 값으로 명시적으로 인코딩되지 않은 값입니다. 예를 들어 누락된 값을 나타내는 데 `NaN`을 사용하는 대신 값은 `Placeholder`가 될 수 있습니다. 다음 변환 중 하나를 사용하여 누락된 값을 처리할 수 있습니다.
  + **누락 삭제** - 누락된 값이 있는 행을 삭제합니다.
  + **새 값으로 바꾸기** - 텍스트로 된 누락된 값을 `Other`로 바꿉니다. 출력 코드에서 `Other`를 다른 값으로 변경할 수 있습니다. 숫자로 된 누락된 값을 0으로 바꿉니다.
+ **상수 열** - 열에는 값이 하나뿐입니다. 따라서 예측력이 없습니다. **열 삭제** 변환을 사용하여 데이터 세트에서 열을 삭제하는 것이 좋습니다.
+ **ID 열** - 열에 반복되는 값이 없습니다. 열의 모든 값은 고유합니다. ID 또는 데이터베이스 키일 수 있습니다. 추가 정보가 없으면 열에 예측력이 없습니다. **열 삭제** 변환을 사용하여 데이터세트에서 열을 삭제하는 것이 좋습니다.
+ **높은 카디널리티** - 열의 고유한 값 비율이 높습니다. 카디널리티가 높으면 카테고리 열의 예측력이 제한됩니다. 분석에서 열의 중요도를 살펴보고 **열 삭제** 변환을 사용하여 열을 삭제하는 방법을 고려해 보세요.

대상 열에 대해 다음과 같은 인사이트를 얻어 데이터세트 관련 문제를 경고할 수 있습니다. 경고와 함께 제공된 제안된 변환을 사용하여 문제를 해결할 수 있습니다.
+ **대상의 혼합 데이터 유형(회귀)** - 대상 열에 숫자가 아닌 값이 있습니다. 데이터 입력 오류가 있을 수 있습니다. 변환할 수 없는 값이 있는 행은 제거하는 것이 좋습니다.
+ **빈번한 레이블** - 대상 열의 특정 값이 회귀 상황에서 일반적인 값보다 더 자주 나타납니다. 데이터 수집 또는 처리에 오류가 있을 수 있습니다. 자주 나타나는 카테고리는 해당 값이 기본값으로 사용되거나 누락된 값을 나타내는 자리 표시자임을 의미할 수 있습니다. 누락된 값을 `Other`로 바꾸려면 **새 값으로 바꾸기** 변환을 사용하는 것이 좋습니다.
+ **클래스당 인스턴스가 너무 적음** - 대상 열에 드물게 나타나는 카테고리가 있습니다. 일부 카테고리에는 대상 열을 유용하게 사용할 수 있을 만큼 행이 충분하지 않습니다. 다음과 같은 변환 중 하나를 사용할 수 있습니다.
  + **희귀 대상 삭제** - 관찰이 10개 미만인 고유한 값을 삭제합니다. 예를 들어, 값이 열에 9번 나타나면 `cat` 값을 삭제합니다.
  + **희귀 대상 바꾸기** - 데이터세트에 거의 나타나지 않는 카테고리를 `Other` 값으로 바꿉니다.
+ **클래스가 너무 불균형함(다중 클래스 분류)** - 데이터세트에 다른 카테고리보다 훨씬 더 자주 나타나는 범주가 있습니다. 클래스 불균형은 예측 정확도에 영향을 미칠 수 있습니다. 가장 정확한 예측을 위해서는 현재 자주 나타나지 않는 카테고리가 있는 행으로 데이터세트를 업데이트하는 것이 좋습니다.
+ **많은 클래스/너무 많은 클래스** - 대상 열에 많은 클래스가 있습니다. 클래스가 많으면 훈련 시간이 길어지거나 예측 품질이 떨어질 수 있습니다. 다음 중 하나를 수행하는 것이 좋습니다.
  + 일부 카테고리를 자체 카테고리로 그룹화. 예를 들어 6개의 카테고리가 밀접하게 관련되어 있는 경우 단일 카테고리를 사용하는 것이 좋습니다.
  + 여러 카테고리에 적용할 수 있는 ML 알고리즘 사용.