Today I Learned/머신러닝

Orange3로 코딩없이 머신러닝 지도학습 실습해보기

하나719 2020. 9. 8. 17:17
반응형

이고잉님의 머신러닝 야학을 듣고 이해한 내용을 바탕으로 작성했습니다.

잘못된 부분은 댓글로 알려주세요.

머신러닝 야학 들으러가기 👉🏻

 

Orange3는 데이터분석을 쉽게 해볼 수 있도록 도와주는 GUI 툴 입니다.

처음 머신러닝을 학습할 때, 코드부터 짜지 않아도 된다는 점에서 개념을 잡는데 도움이 되었습니다.

선형 회귀 분석

X(Feature, 원인, 독립변수) 에 따라서 달라지는 y (Target , 결과, 종속변수) 를 알아내고

그 관계에 수식을 찾아내어 원인에 따른 결과를 예측하는 것 입니다.

예를들어  온도의 2배 만큼 레몬에이드가 팔리는걸 발견했다고 하면 이렇게 수식으로 표현할 수 있습니다.

 

온도와 레몬에이드 판매량 관계 : y (레몬에이드 판매량) = 2 * X (온도)

 

이런 수식을 발견하면 우리는 내일 온도만 알면 내일 판매할 레몬에이드 수량을 알 수 있게 되고,

그러면 적정량만 준비해서 재료비를 최적화 할 수 있습니다.

 

현실에서는 사람이 하나하나 계산할 수 없는 복잡한 문제들이 있는데, 여기서 머신러닝의 도움을 받을 수 있습니다.

머신러닝이 주어진 데이터(X , y)를 학습하여 원인과 결과 사이에 수식을 만들어줍니다! 

이 수식을 모델 이라고 합니다. 

머신러닝 과정

1) data를 Train data & Test Data 로 분리한다.

2) Train Data 로 여러 알고리즘을 사용하여 학습시켜 모델을 만든다.

3) Test Data를 각각의 모델에 돌려서 성능을 확인한다.

4) 성능이 좋은 모델을 선택하여 실제 데이터에 활용한다.

출처: 이고잉님 머신러닝 야학 강의 

 

성능 측정 지표

어떤 알고리즘이 더 좋은지 어떻게 성능을 비교할 수 있을까?

실제 값과 회귀 분석을 통해 예측한 값 사이의 차이가 작을 수록 좋은 모델입니다.

이 차이를 나타내는 다양한 지표가 있는데, 여기서는 MSE 와 RMSE로 설명합니다.

 

*MSE (Mean Squared Error): 예측값과 실제값 차이 제곱의 평균

*RMSE(Root Mean Squared Error): MSE에 Root 씌워준 값

(MSE는 차이 제곱의 평균인데, 차이를 제곱하면 값이 커지기때문에 root를 씌워줍니다.)

 

따라서 MSE, RMSE가 작을수록 성능이 좋다고 할 수 있습니다.

출처: 이고잉님 머신러닝 야학 강의

선형회귀 분석 실습 해보기

실습 data url by egoring

1열부터 13열은 Feature(X) 값이며, 14열이 Target(y) 입니다.

범죄율, 방의 갯수 등의 특징에 따른 집값을 예측하는 문제입니다.

 

1) URL 로 구글시트를 연결하여 데이터를 불러옵니다.
MEDV Role을 Target 으로 설정해줍니다.

2) 데이터를 Test와 Train 으로 분류해주고, 원하는 알고리즘을 연결해줍니다.

3) 모델의 성능을 비교해봅니다.

RMSE가 작은 순으로 정렬하면 Random Forest - AdaBoost 순으로 성능이 좋게 나왔습니다. 

* 참고: 왼쪽에서 Random sampling 기능으로 train: test = 7 : 3 으로 분류했습니다.

중요한 건 각 모델의 파라미터를 어떻게 조정하느냐에 따라서 성능이 튜닝될 수 있기 때문에 

항상 저렇다고 생각하면 안됩니다.

전체적인 흐름을 이해하는데에만 참고!!

 

앞으로 각각의 알고리즘을 더 깊게 공부해보고 싶다는 마음과,

성능을 더 좋게 자유자재로 다뤄보고 싶다는 마음 가짐을 얻은 것으로 충분합니다.

반응형