2. 데이터 시각화 & 전처리 하기

김선민
Neuralworks
Published in
11 min readDec 6, 2021

이전 “ 1. 데이터 준비 & 업로드 하기 ” 글에서는 Kaggle에서 다운로드 한 “통신사 고객 데이터”를 뉴럴웍스에 업로드하고, 데이터에 대한 기본적인 이해를 진행해 보았습니다.

이번 글에서는 데이터 분석에서 가장 중요한 데이터를 직접 시각화 해보는 작업과, 학습하기 전 다양한 전처리를 적용 하는 작업을 진행 해보도록 하겠습니다.

이번 글의 진행 순서는 아래와 같습니다.

2.1. 시각화 /전처리 페이지 들어가기

2.2. 시각화 /전처리 페이지 확인하기

2.3. 데이터 시각화하기

2.4. 데이터 요약 탭 확인하기

2.5. 데이터 전처리 하기

2.6. 학습 데이터로 내보내기

2.7. 내보낸 학습 데이터 확인 하기

2.8. 마무리 하기

2. 1 시각화/전처리 페이지 들어가기

원천 데이터 상세 페이지에서 상단에 있는 [시각화/전처리하기 버튼]을 통해 해당 페이지로 들어갑니다.

2. 2 시각화/전처리 페이지

시각화 / 전처리 페이지에 존재하는 4개의 탭과 각 탭의 기능은 아래와 같습니다.

  • 데이터 탭 : 데이터 확인하기
  • 시각화 탭 : 그래프 그리기
  • 전처리 탭 : 데이터 클렌징, 변환, 필터링 등의 작업하기
  • 요약 탭 : 데이터의 기본 통계치와 상관관계 확인하기

[ 이미지 추후 추가, 데이터 탭 화면, 시각화 탭 화면, 전처리 탭 화면, 요약 탭 화면]

2. 3 데이터 시각화

데이터 ‘시각화 탭’ 에서 그래프를 그리는 방법은 아래와 같습니다.

a. 변수 목록에서 그래프의 x축으로 놓을 변수 선택

b. 그리고 싶은 유형 그래프를 선택

c. 그래프에 추가하려는 변수 선택

d. 그래프 아래에 선택한 변수들의 기본 통계치 확인

2. 3. 1 빈도 그래프

변수 목록에서 ‘gender(성별) 변수’ 를 선택하고 그래프는 빈도 그래프를 선택 해보겠습니다.

[이미지 추후 추가, gender 변수 — 빈도그래프]

그래프 결과를 보니, 고객 중 절반은 남성, 절반은 여성으로 비율이 비슷함을 확인 할 수 있습니다.

2. 3. 2 분포 그래프

변수 목록에서 ‘MonthlyCharges(월 청구 금액) 변수를 선택’ 하고 그래프는 분포 그래프를 선택 해보겠습니다.

[이미지 추후 추가, Monthlyharges변수 — 분포 그래프]

그래프 결과를 보니 데이터 분포가 어느 정도 균등해 보여서, Log 변환 등의 치우침을 해결해 주는 스케일링은 필요 없을 것 같습니다. (관련 판단은 ‘요약탭’ 의 왜도 지수 ≥ 1.5 여부 로도 참고 가능합니다. )

2. 3. 3 파이(원) 그래프

변수 목록에서 ‘contract(계약 기간/형태) 변수’ 를 선택하고 그래프는 파이그래프를 선택 해보겠습니다.

[이미지 추후 추가, contract 변수 — 빈도그래프]

‘contract 변수’ 의 값으로는 Month-to-month, One Year, Two Year등이 있고, 고객의 절반은 월간 계약(Month-to-month) 형태로 계약을 했음을 확인 할 수 있습니다.

2. 3. 4 막대 그래프

변수 목록에서 ‘churn(이탈 여부) 변수’ 를 선택하고 그래프는 막대 그래프를 선택해 볼게요. 추가로 y축 변수로는 ‘tenure(고객의 통신사 이용 월 수) 변수’를 선택하고, 값 옵션으로는 평균을 선택 해보겠습니다.

[이미지 추후 추가, churn, tenure 변수 — 2차원 막대그래프]

이탈한 고객은 평균 18개월 정도, 이탈하지 않은 고객은 평균 37개월 정도 이 통신사를 이용했음을 확인 할 수 있습니다.

2. 3. 5 박스 플롯

변수 목록에서 ‘tenure(고객의 통신사 이용 월 수) 변수’ 를 선택하고 그래프는 ‘boxplot을 선택’ 해보겠습니다.

[이미지 추후 추가, tenure 변수 — boxplot]

해당 변수에는 이상치로 판단되는 값이 존재하지 않습니다. (이상치가 있는 경우엔 boxplot 그래프 상단에 · · 의 형태로 확인 할 수 있습니다.)

시각화 탭 외에도 요약 탭에서도 데이터의 정보를 확인 할 수 있습니다. 이번엔 ‘요약탭’을 확인해 보도록 하겠습니다.

2. 4 요약 탭

기본 통계에서 결측치 개수를 확인해보니, ‘TotalCharges 변수’에 결측치가 있음을 확인 할 수 있습니다. ‘요약 탭’에서는 그 밖에도 다양한 기본 통계 정보와 변수들 간의 상관관계 등도 확인 해 볼 수 있습니다.

[이미지 추후 추가, 요약 탭 — 기본통계]

지금까지 데이터를 ‘시각화 탭’과 ‘요약 탭’ 을 통해 데이터를 이해했습니다. 이제 전처리 작업을 통해 모델 학습에 변수로 사용하기 위해 데이터를 가공하는 작업을 진행 해보겠습니다.

2. 5 데이터 전처리

데이터를 전처리 하는 방법은 아래와 같습니다.

a. ‘전처리 탭’을 누르기

b. 좌측 전처리 내역에 있는 [+추가] 버튼 클릭

c. 전처리 항목 선택

d. 전처리 진행할 변수와 처리 방법 선택한 후 [완료] 클릭

e. b~d 내용을 반복하며 전처리 내역 추가하기

2. 5. 1 전처리 항목 활성화하기

좌측 전처리 내역에 있는 [+추가] 버튼을 클릭하면, 아래 두번째 그림과 같이 전처리 항목 들이 활성화 됩니다.

2. 5. 2 결측치 처리

먼저 요약 탭의 기본통계를 통해 확인했던 ‘TotalCharges 변수’의 결측치를 처리해보도록 하겠습니다.

  • 전처리 항목 중 ‘결측치 처리 탭’을 선택합니다.
  • 변수 목록에서 ‘TotalCharges 변수’ 를 선택합니다.
  • 처리 방법 선택에서 ‘결측치 제거(행 삭제)’를 선택합니다.
  • [미리보기] 버튼을 누릅니다.

미리보기 결과에서, 처리 전 행 갯수가 7043행에서 처리 후 7032행으로 줄어들어, 11개의 결측치 행이 제거 됨을 확인 할 수 있습니다. 이후 [완료] 버튼을 눌러 전처리를 완료합니다.

최종적으로 [완료] 버튼을 누르면, 전처리 내역에 방금 진행한 전처리가 추가 됩니다. 이후 추가적인 전처리를 진행하려면 [+추가] 버튼을 클릭 후, 위 과정을 반복하면 됩니다.

2. 5. 3 값 대체

데이터 중 일부 변수들은 ‘Yes’, ‘No’로만 구성된 변수임을 이전 글에서 확인했었습니다. 이들을 모델 학습에 활용하려면 수치형으로 변경해줘야 하기 때문에, 범주형(문자형) 변수들의 값을 (Yes → 1, No → 0) 바꾸는 ‘값 대체’ 전처리를 진행해보도록 하겠습니다.

  • 전처리 항목 탭 중 ‘값 대체 탭’을 선택합니다.
  • 변수 목록에서 ‘Partner’, ‘Dependents’, ‘PhoneService’, ‘PaperlessBilling’ 을 선택합니다.
  • 처리 방법 선택에서 ‘기본값-단일 값’을 선택 합니다.
  • ‘기본 값’ 에 ‘Yes’를 입력하고, ‘대체 값’에 ‘1’을 입력하고 [+추가] 버튼을 누르고, 같은 방법으로 기본값에 ‘No’ 대체값 ‘0’을 입력 후 [+추가] 버튼을 누릅니다. 하단에 사용자가 입력한 값 대체 쌍을 확인 할 수 있습니다.
  • [미리보기] 버튼을 누릅니다.

미리보기 결과에서 해당 변수들의 값을 보니 ‘Yes’, ‘No’의 값들이 1, 0으로 바뀐 것들 확인 할 수 있습니다. 최종적으로 [완료] 버튼을 누르고, 전처리 내역에 방금 진행한 전처리를 추가합니다.

2. 5. 3 범주형 변수 변환

데이터 중 일부 변수들은 다양한 문자열로 구성된 변수임을 이전 글에서 확인했었습니다. 이러한 변수들도 모델 학습에 활용하기 위해선 수치형으로 바꿔줘야 하기에, 이번에는 ‘범주형 변수 변환 탭’의 ‘One-Hot-Encoding’ 변환 작업을 해보도록 하겠습니다.

원-핫-인코딩(One-Hot-Encoding)은 범주형 데이터에 쓰이는 전처리로 특정 1개의 값은 1로 변경해주고 나머지 값은 0으로 바꿔 범주형 변수의 값들이 서로 독립적으로 모델에 영향을 줄 수 있도록 진행하는 전처리 방법입니다.

  • 전처리 항목 중 ‘범주형 변수 변환 탭’을 선택합니다.
  • 변수는 ‘gender’, ‘MultipleLines’, ‘InternetService’, ’OnlineSecurity’, ‘OnlineBackup’, ‘DeviceProtection’, ‘TechSupport’, ‘StreamingTV’, ‘StreamingMovies’, ‘Contract’, ‘PaymentMethod’를 선택 합니다.
  • 처리 방법 선택에서 ‘One Hot Encoding’ 을 선택합니다.
  • [미리보기] 버튼을 누릅니다.

미리보기 결과에서 해당 변수들의 값을 보니 ‘MultipleLines’ 단일 변수에서 ‘1’과 ‘0’으로 이루어진 ‘MultipleLines_No’, ‘MultipleLines_No Phone service’, ‘ MultiplelLines_Yes’의 3개의 컬럼이 생긴 것을 확인 할 수 있습니다. 최종적으로 [완료] 버튼을 누르고, 전처리 내역에 방금 진행한 전처리를 추가합니다.

2. 5. 4 데이터 스케일링

이번엔 수치형 변수들의 스케일을 맞추는 작업을 진행 하도록 하겠습니다. 데이터 스케일링을 하는 이유는 데이터의 값이 너무 크거나 혹은 작을 경우, 모델 학습 과정에서 0으로 수렴하거나 무한으로 발산해 버리는 경우를 방지하게 위해 많이 사용됩니다.

뉴럴웍스는 다양한 스케일링 알고리즘을 제공하며, 그 중 Standardization은 가장 일반적인 스케일러 중 하나로 데이터의 평균을 0, 분산을 1로 맞춰주어 모든 변수들이 같은 스케일을 같도록 해주는 전처리 입니다.

  • 전처리 항목 중 ‘스케일링 탭’을 선택합니다.
  • 변수는 ‘tenure’, ‘MonthlyCharges’, ‘TotalCharges’를 선택 합니다.
  • 처리 방법 선택에서 ‘Standardization’을 선택합니다.
  • [미리보기]버튼을 누릅니다.

미리보기 결과에서 해당 변수들의 값을 보니 3개의 변수값이 스케일링 된 것을 확인 할 수 있습니다. 최종적으로 [완료] 버튼을 누르고, 전처리 내역에 방금 진행 한 전처리를 추가합니다.

2. 5. 5 데이터 전처리 기타 기능

  • 기타 1. 전처리를 수정/삭제 하고 싶을 시, 해당 전처리 내역을 누르고 [수정], [삭제] 버튼을 눌러 수정하거나 삭제 할 수 있습니다. (단 수정/삭제 시 해당 전처리 이후에 한 내역이 전부 삭제 되니 주의가 필요합니다.)
  • 기타 2. 좌측에 있는 전처리 내역에서 파란색은 처리가 완료된 상태 임을 의미하고, 주황색 내역은 미완료 상태이거나 수정 중인 상태를 의미합니다.

2. 6 학습 데이터로 내보내기

전처리를 모두 끝낸 후 [학습 데이터로 내보내기] 버튼을 눌러 학습 데이터의 이름을 입력하고 [내보내기]를 누릅니다.

2. 7 최종 학습 데이터 확인

‘학습 데이터 탭’에서 데이터를 선택해 학습 데이터와 기본 통계 정보, 전처리 내역 등을 확인합니다.

전처리 ‘내역보기’를 누르면 아래 그림과 같은 전처리 내역이 나오며,전처리를 어떤 변수에 적용했는지 여부 등을 알 수 있습니다. 결측치 제거, 범주형 변수 변환, 값 대체, 스케일러 등의 전처리가 잘 적용 된 걸 확인 할 수 있습니다.

여기까지가 뉴럴웍스에서 시각화 및 전처리를 하는 방법입니다. 추가로 뉴럴웍스를 더 잘 이용 할 수 있는 몇 가지 Tip을 알려드리겠습니다.

  • Tip 1. 뉴럴웍스에서는 1개의 ‘원천 데이터’로 여러 개의 학습 데이터를 만들 어 관리 할 수 있습니다. 다양한 전처리를 적용한 변수로 이루어진 ‘학습데이터’를 만들어 모델 학습에 적용해 볼 수 있습니다.
  • Tip 2. 뉴럴웍스에서는 데이터 시각화에서 다양한 종류의 그래프와 다차원 변수에 대한 시각화를 제공합니다. 여러 변수를 다양하게 시각화를 시도해보면서 데이터의 숨겨진 의미를 찾아 낼 수 있습니다.
  • Tip 3. 전처리 내역을 선택하면 해당 전처리 까지 적용된 데이터의 모습을 데이터/시각화/요약 탭 등에서 확인 할 수 있습니다. 전처리 전·후 데이터를 비교하면서 진행하면 더 좋은 변수를 가진 데이터를 만들어 낼 수 있습니다.

2. 8 마무리

이번 글에서는 ‘시각화 탭’, ‘요약 탭’ 등을 통해 데이터를 분석하고, ‘전처리 탭’ 을 통해 변수를 가공하는 작업을 진행했습니다. 다음 글 “3. 머신러닝 모델 학습하기” 에서는 전처리 한 학습 데이터로 뉴럴웍스에서 모델 학습을 진행하는 방법에 대해 알아보도록 하겠습니다.

--

--