Regression learner를 쓰는 이유
앞서 적은 곡선 피팅기는 변수가 한 개이거나 두 개인 곡선만 피팅할 수 있었습니다. 그러나 수학적으로 모델링이 어렵거나, 그것보다 더 복잡한 모델을 만들어야 하는 경우가 있습니다. 그런 경우 사용할 수 있는 Matlab App은 Regression learner 입니다. Regression learner는 수치적인 값을 예측하는 회귀 모델을 만들어줍니다. 기본적인 기능들이 앱 안에 다 내장되어있기 때문에 코딩 지식이나 복잡한 머신러닝에 대한 이해 없이도 회귀 모델을 쉽게 만들어볼 수 있습니다. 무슨 모델을 써야할 지 잘 모르겠어서 이것 저것 시도해보고 싶을 때 Regression learner는 매우 좋은 방법입니다.
Regression learner (회귀 학습기) 사용하기
앱을 다운받고 실행하는 방법은 아래의 링크를 참고하시면 됩니다.
2024.11.05 - [공학자를 위한 머신러닝/Matlab을 사용한 머신러닝] - Matlab Curve fitting (곡선피팅기)
Matlab Curve fitting (곡선피팅기)
머신러닝은 아니지만.. 기계공학을 하다보면 일반적인 역학 기반의 모델링이 잘 되지 않을 때가 간혹 있습니다. 시스템 자체의 비선형성이 너무 크거나 마찰/저항/점성 등이 무시하기 어려울
me-ai-bigdata.tistory.com
예시 데이터를 다운받아 진행해보겠습니다. 예시 데이터는 Mathworks사에서 제공하는 carsmall 데이터셋입니다.
% 데이터 로드
load carsmall
% 수치형 변수들을 테이블로 결합
numData = table(MPG, Cylinders, Displacement, Horsepower, Weight);
자동차 데이터셋은 다양한 변수로 이뤄진 100개의 데이터로 구성됩니다. 그 중 수치형 변수로 표시된 MPG, Cylinders, Displacement, Horsepower, Weight 열을 하나의 테이블(numData)로 합쳐줍니다.
데이터 불러오기 & 검증 방법 설정하기
회귀 학습기를 실행하고 왼쪽 위의 + 모양 버튼을 눌러 데이터를 불러옵니다.
응답변수는 맞추고 싶은 값이고, 예측변수는 예측을 위해 필요한 변수들입니다. 지금 같은 경우 MPG(연비, mile per gallon)를 예측하고 싶은 것이기 때문에 '데이터 세트 변수에서' 옵션으로 가져옵니다. 응답변수를 설정하고 나면 예측변수를 설정합니다. 체크박스를 클릭하면 제외하고 싶은 변수를 제외할 수 있습니다.
검증 방법은 세 가지가 있습니다. 핵심만 요약하자면, 대부분의 경우 5겹 교차검증을 하고 데이터가 아주 많은(수 만개 이상) 경우 홀드아웃 검증을 합니다. '검증 안함'이라는 옵션은 대부분의 경우 과적합으로 인해 쓸모없는 예측모델이 만들어집니다. 자세한 내용은 파란색 글씨를 읽어보면 확인할 수 있습니다.
교차검증 : k 개의 데이터셋으로 나누어서 k-1개의 데이터셋을 이용해 학습하고 1개의 데이터셋을 예측해서 정확도를 보는 형태로 검증합니다.
홀드아웃검증 : 학습용과 검증용(validation) 데이터로 나누어서 검증합니다. 학습용 데이터로는 학습만 하고 검증용 데이터를 예측해서 정확도를 보는 방법입니다.
특징 & 모델 선택하기
데이터와 검증방법을 선택하고 나면 이런 창이 뜹니다. '특징 선택'을 통해서 회귀에 사용할 변수를 선택할 수 있고, 'PCA'를 사용하면 변수가 너무 많을 때 차원 축소를 시도할 수 있습니다. '모든 유형'이라고 되어있는 칸을 누르면 다양한 회귀 모델을 학습시킬 수 있습니다. '고급'옵션을 누르면 모델의 하이퍼파라미터를 튜닝할 수 있습니다. 어떤 모델을 써야할 지 잘 감이 오지 않거나, 여기서 사용된 어휘가 익숙하지 않으신 분들은 다음의 순서를 기억하시면 됩니다.
- '모든 유형' 란에서 아래쪽 화살표를 눌러서 '최적화가능 앙상블'을 선택합니다
- '훈련'을 눌러 학습시킵니다.
- 왼쪽의 모델 옆에 나오는 'RMSE'를 확인해서 수용할만할 정도인지 판단합니다.
- 결과가 안좋으면 '특징선택'에서 'RMSE'가 작아지도록 특징(변수)을 포함하거나 제거하기를 반복합니다.
- 그래도 안좋으면 최후의 방법으로 'PCA'옵션을 사용해서 설명분산이 0.7~0.99 가 되도록 변수의 수를 조정해서 학습시킵니다.
굉장히 무지성처럼 보이지만, 앙상블 분류기가 일반적으로 성능이 제일 좋고 Matlab에서 최적화를 잘 설계했기 때문에 대충 설정해도 좋은 결과를 뽑아줍니다. 데이터의 분포와 모델에 대한 철학이 있다면 다른 모델을 활용해보셔도 좋습니다.
앙상블 모델의 장점
- (예측만이 목적일 경우) 별도의 스케일링이 필요하지 않다.
- 일반적으로 정확도가 높다.
- 비선형적인 경우에도 성능이 좋다.
- 명목형 변수, 수치형 변수, 서열형 변수가 모두 섞여있어도 사용이 가능하다.
특히 4번이 매우 큰 장점입니다. 다른 회귀 모델들도 좋은 성능을 내지만 명목형, 순서형 변수가 여럿 섞이게 되면 적용하기 어렵기 때문에 초보자가 다루기에 앙상블 모델이 가장 범용성이 높습니다. (변수의 종류에 대해서 잘 모르실 경우 아래의 글을 참고하시면 됩니다.)
2024.06.26 - [의공학자를 위한 데이터분석/신뢰도 분석] - REL-01 신뢰도 분석 Introduction
REL-01 신뢰도 분석 Introduction
신뢰도의 개념 의료분야에서 환자의 상태를 진단하는 것을 검사라고 합니다. 일반적으로 검사는 두 가지 척도를 일정 수준 이상 만족해야합니다. 타당도(validity)와 신뢰도(reliability)입니다. 타
me-ai-bigdata.tistory.com
옵션들에 대한 간략한 설명은 다음과 같습니다.
- '고급' → '고급' (hyperparameter)
- 모델을 '튜닝'하는 데에 필요한 변수들입니다. 프로그램이 알아서 튜닝하길 바라는 변수에 체크를 하면 됩니다. 기본적으로 모든 변수에 체크가 되어있습니다. 어떤 제약조건을 만족시켜야 하는 경우 그 제약조건을 직접 설정하고 체크박스를 해제하면 됩니다.
- '고급' → '최적화 함수 옵션'
- 모델의 최적화와 관련된 옵션입니다. 대부분의 최적화 옵션은 크게 만지지 않아도 됩니다. 반복횟수는 몇 번 학습을 하며 최적화할지를 나타내는데, 시간이 아주 넉넉한 경우 반복 횟수를 높이면 시간이 오래 걸리지만 좀더 좋은 모델을 만들 확률이 높아집니다.
훈련(학습)시키기
모델을 만들었다면 '훈련'이라는 버튼을 눌러 학습시킵니다. 모델의 종류에 따라 걸리는 시간은 큰 폭으로 달라질 수 있습니다. 일반적으로 의사결정나무와 선형회귀 모델을 빠르고, SVM과 앙상블 모델은 중간, 가우스 과정 회귀 모델은 매우 느립니다.
MSE(mean squared error)가 줄어드는 경향을 확인할 수 있습니다. 진한 파란색이 모델의 MSE인데, 9번째 반복 이후로는 유의미한 변화가 없는 것을 관찰할 수 있습니다.
맺음말
여기까지 기초적인 사용 방법에 대해서 적어봤습니다. 글이 너무 길어지는 것 같아서, 변수 예측 결과를 확인하고 모델을 내보내는 방법은 다음 글에서 다루겠습니다.
'공학자를 위한 머신러닝 > Matlab을 사용한 머신러닝' 카테고리의 다른 글
MML-06 Classification Learner (분류 학습기) - 2 (0) | 2024.11.12 |
---|---|
MML-05 Classification Learner (분류학습기) (4) | 2024.11.11 |
MML-04 Regression Learner (회귀학습기) -2 (0) | 2024.11.10 |
MML-02 Matlab Curve fitting (곡선피팅기) (1) | 2024.11.05 |
MML-01 왜 Matlab으로 머신러닝을..? (1) | 2024.08.28 |