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

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

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

※ 이전글

[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


Data Pre-processing

출처 : https://searchsqlserver.techtarget.com/definition/data-preprocessing

 

데이터전처리는 머신러닝에서 아주 중요한 부분으로, 저는 개인적으로 인공지능의 80%는 데이터 전처리라고 생각하고 있습니다.

 

학습 모델을 짜는것은 어떻게든 github나 googling을 통해 구현을 할 수 있는데, 내가 진짜 학습시키고자 하는 Domain의 데이터들을 학습하기 유용한 형태로 정리하는것은 엄청난 노가다와...노력(피땀눈물...)이 필요한 일이거든요..

 

따라서 저는 개인적으로, "데이터만 주면 내가 알아서 학습해주겠다." 이런말을 하는 대부분의 데이터싸이언티스트?라고 불리는 사람들을 싫어합니다.

본인만의 뚜렷한 도메인이없으니.. 어떤 데이터를 받아도 이게 뭔지 잘모르니 어떻게든 상관성있는 데이터들만 가져오면 내가 관계성을 찾아주겠다...라는 말인데 실상은 "난 아무것도 하지않겠다"라는 뜻이죠..

데이터싸이언스를 하려면 반드시 자신만의 Domain을 적어도 한개는 가지고 있어야합니다.

 

 

각설하고, 지난번글에 이어 데이터간의 상관관계를 그래프로 확인하는법을 알아보겠습니다.

 

Price의 분포를 알아보기쉽게 Histogram으로 표현해놓은 것으로, 그래프를 보시면 각 Price별로 데이터갯수(Frequency)를 직관적으로 확인할 수 있습니다.

 

그럼 이번에는 Price와 직접적인 관련이 있을것으로 예상되는 Engine size와의 관계성을 알아보겠습니다.

 

살짝 예상해보기로는, Engine size(cc)가 클수록 Price도 높겠죠??

 

Compare to [   ] 부분에서 본인이 비교를 원하는 데이터를 선택해주면, 그 데이터를 y축, column선택한 데이터를 x축으로 새로 그래프를 그려줍니다!

 

Correlation이라는 수학적 정의가 있지만, 그냥 그래프를 직관적으로 보기에도

 

"가격이 높을수록 엔진사이즈가 크구나.. 증가하는구나.." 라는것을 판단할 수 있겠죠

 

이런 경우 price를 예측하기에 engine size가 영향을 주는구나! 로 판단하고, 가격예측 머신러닝을 위한 유효데이터로 engine size를 넣으면 되겠구나라고 생각하시면 됩니다.

 

이번에는 엔진 Stroke과 한번 비교해보겠습니다.

※Stroke: 내연기관 4행정 중, 피스톤이 움직인 길이

 

 

 

보시다시피, Stroke와 가격은 별로 관계가 없어보이네요!

 

보통, 관계성이 보인다 라고하면 y=x방향이든 y=-x방향이든 어떤 "경향성"을 띄기 마련인데요

 

이건 마치 random하게 그려놓은듯한 크게 상관이 없어보이는 데이터인것을 확인할 수 있습니다.

 

이런데이터는 가격예측을 할때는 빼고 진행해주는게 좋습니다 :)

 


이번글에서는 어떤데이터를 학습할때 사용해야하는가?에 대해 알아보았고,

 

다음글은 중간중간에 빠져있는 데이터를 채워넣는법 혹은 삭제하는법 및

 

어떤데이터를 사용하기로 결정했다면 이 데이터만 남기고 나머지는 지우기와 같은 데이터전처리법에 대해 정리해보겠습니다.

 

댓글