본문 바로가기
DeepLearning Framework & Coding/Microsoft AzureML

[Microsoft AzureML - 4] 데이터 전처리(Data pre-processing) - II

by 노마드공학자 2021. 6. 20.

※ 이전글

[Microsoft AzureML - 0] Intro https://limitsinx.tistory.com/113

[Microsoft AzureML - 1] 개발 환경 세팅 https://limitsinx.tistory.com/114

[Microsoft AzureML - 2] 학습할 데이터 불러오기 https://limitsinx.tistory.com/115

[Microsoft AzureML - 3] 데이터 전처리(Data pre-processing) - I https://limitsinx.tistory.com/116

 


이전 데이터전처리-1 글에서 정리한바와 같은 방식으로 유효인자를 찾아, 

 

자동차의 가격예측을 위해 직접적인 영향을 주는 인자는 "horsepower,city-mpg,engine-size" 이렇게 세가지만 있다고 가정하고 설명을 진행해보겠습니다!

 

 

[Data Transformation] -> [Manipulation] -> [Select Columns in Dataset]을 Drag하여 Block code에 옮겨줍니다!

 

이름만봐도 알 수 있듯, Automobile price data에서 필요한 column만 선택해주는 블록입니다.

 

그러면 블록 오른쪽에 빨간색 느낌표가 뜨는데요! 이건 뭔가 인자들이 제대로 연결되지 않았음을 의미합니다.

 

위의 Automobile price data와 Select columns in Dataset 블록을 마우스로 줄을연결해주고,

 

오른쪽의 [Launch Column Selector]를 클릭해줍니다.

 

[Launch Column Selector]를 클릭해주면 상기와 같은 창이 나오게되는데요,

 

왼쪽의 Available columns는 현재 데이터에 포함된 모든 column들이 나오고 우측에는 본인이 선택한 column만 골라담는곳이 됩니다.

 

저희가 price에 영향을 주는 3요소로 선택한 engine size/ horse power/ city-mpg를 옮겨놓고 우측하단의 체크표시를 눌러주시면 적용이 완료됩니다 :)

 

이렇게 세부세팅을 완료하게되면, 빨간색 느낌표는 사라지게 되는데요!

 

AzureML은 각 블록을 생성할때마다 "저장한다"의 느낌으로 중앙하단부의 [RUN]을 클릭해주시면 됩니다.

 

정상적으로 저장완료되고, 머신러닝을 위한 block들에 이상이 없는경우 초록색체크표시가 생깁니다!

 

그리고 [Select Columns in Datset]의 [Visualize]를 해주면, 제가 선택한 Feature만 남고 모두 사라지게 됩니다 :)

 

그런데 데이터를 조금 밑으로 내리면서 보시면...이렇게 빈칸으로 된 데이터들이 있습니다.

 

데이터 손실이 발생했거나 문제가 있는값이라는거죠

 

이런 데이터들을 그대로 학습하게 되면, 이런 Outlier(통계용어로, 비정상치)의 영향을 받아 학습이 아주 안좋게 될 수도있습니다. 따라서, 이런것들은 빈칸을 채워주던지 아니면 빈칸이 있는 데이터는 없애주는게 좋습니다 :)

 

이렇게 문제가 있는값들을 처리하기 위해선 [Manipulation] -> [Clean Missing Data] 블록을 옮겨줍니다.

 

아주 직관적으로, Missing(오류가 있는) Data들을 청소해주겠다는거죠!

 

블록은 연결해주고, [Clean Missing Data]를 클릭해주면 오른쪽에 [Cleaning mode]가 있는데요

 

"어떻게 이상한 데이터를 청소해줄까?"를 묻는것입니다.

 

Custom Substitution value : 빈칸을 당신이 원하는값으로 채워주겠다

Replace with mean : 빈칸을 평균값으로 채우겠다

Replace with median : 빈칸을 중앙값으로 채우겠다.

Remove entire row : 빈칸이 있는 행을 지우겠다

Remove entire column : 빈칸이 있는 열을 지우겠다

 

라는의미입니다! 나머지 PCA와 MICE는 통계적인 방법으로 많이쓰지않기에 별도로 정리하진 않겠습니다 :)

 

저는 깔끔하게 빈칸이 있는 이상한 데이터들은 모두 지워버리고싶어서 "Remove entire row"를 선택해주었습니다

 

이렇게 해주고 [Visualize]를 해주면 기존에 205개 있던 데이터가 199개로 줄었네요!

 

즉, 6개의 Missing data를 모두 지워버린것을 의미합니다 :)

 

여기까지 정리가 되었다면, 머신러닝을 하기위해 필요한 데이터들은 준비되었다고 볼 수 있습니다.

 

다음글은 본격적으로 머신러닝 모델을 만드는법에 대해 알아보겠습니다.

 

댓글