Azure ML Studio을 활용하면 간편하게 여러 머신러닝 알고리즘을 더욱 빠르게 테스트를 해볼 수 있는 것 같아 자동차 가격 예측을 통해 사용법을 정리해보려고 합니다.
먼저 로그인을 하고 my experiments로 들어간 뒤
EXPERIMENTS에서 NEW를 눌러 새로운 Experiment를 생성해줍니다.
그럼 이러한 화면이 나오는데요, 기본적으로 이름이 Experiment created on 생성날짜 형식으로 지정되지만 눌러서 다시 수정할 수 있습니다. 왼쪽 Saved Datasets, Data Format Conversions~~~~쭉 써있는 부분에서 자신이 필요한 부분을 오른쪽 화면에 드래그앤드랍해주면 사용하실 수 있습니다.
이제 한번 간단한 자동차 가격 예측 모델을 만들어보겠습니다!
먼저 데이터셋이 필요하겠죠??
Saved Datasets>Samples>Automobile price dataset(Raw) 에서 찾을 수 있습니다.
아래와 같이 동그라미에서 마우스 오른쪽 버튼을 누르고 Visualize로 들어가면
아래와 같이 Dataset에 대한 정보를 볼 수 있습니다.
오른쪽은 현재 선택되어 있는 symboling에 대한 정보입니다.
그런데 normalized-losses 열의 데이터를 보시면 빈곳이 존재하는 것을 알 수 있습니다. 이렇게 빈 데이터가 많이 존재하면 평균값을 채워주거나 아예 열을 삭제하는 방법 등 여러가지 방법이 있습니다.
저는 이 normalized-losses 칼럼을 삭제해주었는데요 이 과정은 아래에서 살펴보겠습니다!
그리고 Visualizations부분에 compare to~~ 옆에 네모박스를 클릭해보시면 데이터 칼럼명들이 쭉 뜨는데, 여기서 make를 선택하게 되면 symboling과 make에 대한 데이터를 비교해주는 그래프를 출력해줍니다.
price와 horsepower을 비교해보았습니다. 두 관계가 거의 정비례하는 걸 볼 수 있습니다!!
이렇게 각 칼럼들 사이의 관계를 비교 분석해보는 과정을 거치면 첫번째 과정을 마쳤다고 할 수 있습니다.
이렇게 분석을 했으면 이제 예측에 사용할 칼럼을 선택하는 과정이 필요합니다.
Data Transformation>Manipulation>Select Columns in Dataset 을 드래그앤드랍 해주고, Automobile price data와 연결해줍니다.
예측에 사용할 칼럼을 선택해주지 않아서 아직은 에러가 뜹니다. 오른쪽 Launch column selector 버튼을 눌러 설정할 수 있습니다.
그리고 아까 빈 데이터가 많았던 normalized-losses를 제외한 나머지 값들을 selected columns로 넘겨 주고
체크 버튼을 눌러 적용시켜줍니다.
위와 같이 이름으로 선택하는 방법이 있고,
with rules에서 지정해주고 싶은 경우, include로 선택한 뒤 normalized-losses를 제외한 모든 칼럼을 선택하거나, exclude를 선택한 뒤 normalized-losses만 선택해주면 되겠죠?
여기까지 일단 실행시켜보겠습니다. 아래에 run 버튼을 누르고 실행이 완료되면 원하는 칼럼이 잘 선택되었는지 visualize를 눌러 확인해봅니다.
아직 missing data들이 남아있어서 missing data가 있는 행을 제거해주겠습니다.
Data Transformation>Manipulation>Clean Missing Data를 드래그앤드랍해서 연결한 뒤
오른쪽 cleaning mode를 remove entire row로 설정해주고 run을 실행해보겠습니다.
그리고 다시 visualize를 눌러서 확인해보면 아까는 행이 205개였는데 193개로 줄어든 것을 볼 수 있습니다.
이제 데이터 전처리 마지막 과정에 왔습니다!! 위에서 사용했던 Select columns in Dataset으로
모델에 넣을 데이터를 선택해주겠습니다. 똑같이 드래그앤드랍해주고 오른쪽 Launch column selector 버튼을 누르면 아래와 같이 뜨고, 사진에 나와있는 6개의 칼럼을 select해줍니다.
이렇게 가장 중요한 데이터 전처리 과정이 끝났습니다!
그러면 이제 데이터 훈련 시에 사용할 training set과 잘 훈련이 되었는지 검증할 때 사용할 test set을 나누어 줄건데요
Data Transformation>Sample and Split>Split Data 을 선택해줍니다. 아래 사진 오른쪽을 보시면 Training set에 대한 비율을 지정해줄 수 있고, random seed에 대해 지정해줄 수 있습니다.
저는 training set과 test set의 비율을 8:2로 설정해주었습니다.
random seed를 다르게 하면 어떠한 데이터가 training set, test set이 되는지 달라지기 때문에 실행할때마다 같은 결괏값을 보기 위해서는 random seed를 같게 설정해주는 것이 좋습니다!
데이터를 나누어주었으면 이제 학습을 시켜보겠습니다.
자동차 가격 예측의 경우에는 분류가 아닌 회귀문제에 더 적합하기 때문에 Regression 모델을 사용할 것이고, 가장 간단한 Linear Regression으로 예측모델을 사용해보겠습니다.
Machine Learning>Initialize Model>Regression>Linear Regression에 있고, 좌측 상단에 보면 검색창으로 Linear Regression이라고 검색해서 찾는 방법이 있습니다.
그리고 Train model을 아래 사진과 같이 연결시켜줍니다.
어떤 값을 예측할 것인지 설정을 해주지 않아 에러가 뜹니다. 저희는 지금 자동차 "가격"을 예측하는 것이기 때문에 Train Model을 누른 뒤 Launch column selector을 눌러주고 column names로 price를 선택하면 됩니다.
이제 train을 했으면 test 검증을 해주어야겠죠? Train Model을 사용한 뒤에는 검증을 하기 위해서 Score Model이 따라옵니다. Score Model의 대상이 되는 Train Model과 전에 80:20로 나눴던 데이터 중 20%는 검증에 써야하니 Split Data의 나머지 한쪽을 Score Model에 연결해줍니다.
이제 아래 Run 버튼을 눌러 실행시켜보겠습니다. 다 실행되면 결과를 한번 볼까요??
Score Model에 오른쪽 마우스를 눌러 Visualize를 보면 아래와 같은 결과를 확인할 수 있습니다.
가장 오른쪽 열에 Scored Labels가 추가된 것을 볼 수 있습니다. 이부분이 바로 저희가 자동차 가격을 예측한 값입니다! 바로 옆에 price 가격과 비교해보면 약간씩 차이가 나는 것을 볼 수 있죠??
아직 마지막 단계가 하나 남았습니다. 바로 모델을 평가하는 부분!
Machine Learning>Evaluate>Evaluate Model을 사용하여 평가해보겠습니다.
Evaluate Model 블록에 2개를 연결할 수 있는 단추가 있는데, 저희는 일단 1가지 모델을 만들었으니 1개의 모델만 평가하면 되지만, 다른 모델을 사용하여 하나 더 만들면 Evaluate Model에 둘 다 연결해서 2개의 예측값을 한번에 비교해볼 수 있습니다. 다시 run을 눌러 실행시켜주고, 실행이 완료되면 Evaluate Model의 아래 단추에서 오른쪽 마우스를 눌러 visualize를 확인해봅니다.
아래와 같이 평과 결과를 확인할 수 있습니다.
나름 정확도가 대부분 만족스럽게 나온 것을 볼 수 있습니다.
지금까지의 과정을 다 수행해보셨으면, 이제는 Select한 칼럼을 바꿔보던가, Split한 데이터의 비율을 바꾸어보던가, Linear Regression이 아닌 다른 Regression 모델을 적용해보는 등의 과정을 시도해보며 정확도를 높이는 과정을 수행해보면 더 많은 도움이 될 것 같습니다!
이번 글에서는 간단한 모델을 실습해보았습니다. Microsoft Azure ML Studio를 사용해보면서 프로그래밍을 하지 않아도 정말 쉽고 간편하게 머신러닝 알고리즘을 사용하여 예측하고 평가할 수 있다는 것에 놀랐고 잘 만들어진 플랫폼인 것 같았습니다!
'AI > 머신러닝' 카테고리의 다른 글
[Pytorch] 소프트맥스 회귀(Softmax Regression) 구현 & MNIST 분류 적용 (0) | 2023.05.14 |
---|---|
[ML] 다중 클래스 분류(Multi-Class Classification) 정리 (0) | 2023.05.12 |
[ML] 로지스틱 회귀(Logistic Regression) 쉽게 이해하기 & Pytorch 구현 (0) | 2023.04.09 |
[ML] 다중 선형회귀(Multivariable Linear Regression) 정리 & Pytorch 구현 (0) | 2023.04.09 |
[ML] 선형 회귀 (Linear Regression) 정리 & Pytorch 구현 (0) | 2023.04.09 |