이고잉님의 머신러닝 야학을 듣고 이해한 내용을 바탕으로 작성했습니다.
잘못된 부분은 댓글로 알려주세요.
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가 작을수록 성능이 좋다고 할 수 있습니다.
선형회귀 분석 실습 해보기
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 으로 분류했습니다.
중요한 건 각 모델의 파라미터를 어떻게 조정하느냐에 따라서 성능이 튜닝될 수 있기 때문에
항상 저렇다고 생각하면 안됩니다.
전체적인 흐름을 이해하는데에만 참고!!
앞으로 각각의 알고리즘을 더 깊게 공부해보고 싶다는 마음과,
성능을 더 좋게 자유자재로 다뤄보고 싶다는 마음 가짐을 얻은 것으로 충분합니다.
'Today I Learned > 머신러닝' 카테고리의 다른 글
영화 리뷰 평점 예측해보기 (0) | 2020.09.30 |
---|---|
모델 평가 지표 - RMSE (0) | 2020.09.29 |
내가 쓰는 앱에서 추천시스템 찾아보기 (2) | 2020.09.27 |
Tensorflow 딥러닝으로 집 값 예측하기 (0) | 2020.09.13 |
머신러닝 야학 입문 - 머신러닝 분류하기 (0) | 2020.08.31 |