지도학습은 과거의 데이터가 있어야 하고, 분석하려는 각 열이 원인과 결과관계인 인과관계여야 가능하다.
지도학습은 회귀, 분류로 나뉜다.
회귀는 종속변수가 양적 데이터(숫자)일 때 가능하다.
분류는 종속변수가 범주형 데이터(이름)일 때 가능하다.
하지만 이 떄, 예측하고자 하는 데이터가 이름형인데 그 경우가 범위 내에 있지 않고 무한히 많다면 이는 분류로 해결할 수 없다.
마찬가지로, 숫자혀이 아니기 떄문에 회귀로도 해결할 수 없다. 이 경우에는 지도학습으로 불가능하다.
+ 두 개 이상의 독립변수가 하나의 종속변수에 대응될 수도 있다. ( 두 개 이상의 열이 하나의 열의 결과에 각각 영향을 미칠 수 있으므로 )
모델 채택
지도학습에서 모델을 만들 때, 데이터/학습 방법에 따라 모델을 만드는 방식이 다양하게 존재할 것이다.
(데이터에 따라서, 좋은 모델을 만드는 학습 방법은 달라진다)
우리의 선택은 세 가지가 있다.
1. 한 방식만 선택해서 그냥 사용
2. 존재하는 방식들을 테스트하고 측정해서 가장 좋은 방식 사용
3. 데이터와 학습방법을 깊게 공부해서 최상의 방법을 찾아낸다.
느낌표가 뜨는 모델은 사용 불가능(현재 회귀데이터이므로 회귀에서 사용 불가능한 것들)한 모델이다.
결과값을 보면 어떤 모델이 내 데이터에 가장 성능이 좋은지 알 수 있다.
▶︎ RMSE / MSE / MAE 값이 낮을수록 성능이 좋고, R2 값이 높을수록 성능이 좋다.
MSE
각 예측값과 원본값의 차잇값의 제곱합의 평균
(예측값과 원본값의 차이가 - 0 + 범위 이므로 제곱을 시킨 뒤 모두 더해 평균을 구하는 것)
RMSE ★★★★★(주로 사용)
MSE에 루트를 씌운 값
위 실습은 train 데이터와 test데이터가 일치한다.(train 데이터로 학습시킨 뒤 train 데이터로 예측시킨것)
이런 경우는 주어진 문제를 통해 값을 도출시키고, 다시 똑같은 문제를 주어지게 했으니 효율적인 예측이 아니다.
데이터 하나로도 그 데이터 안을 train/test 데이터로 각각 나눠서 학습시키고 예측시킬수도 있다. 그 방법에 쓰이는 것이 바로
Test and Score 이다.
이 부분이 확실히 이해는 되지 않지만, 이해해보려고 한다.
일단 데이터에 Linear Regression이라는 모델을 연결지으면, Linear Regression 이라는 학습방법에 따라 모델을 생성해준다.
이런 방식으로 여러 모델들을 생성해줬다. 그리고 그 모델들을 Test and Score에 연결짓고, 데이터도 Test and Score에 연결지어준다.
그럼 Test and Score에서 Train Data / Test Data 를 설정할 수 있게 된다고 한다.
이해가 안되는 부분 :
근데 이미 전체 데이터를 기반으로 생성되었을 모델을 Test and Score로 연결지어준다고 해서 Train Data / Test Data 를 구분지어 결과를 낼 수 있다는게 조금 의아하긴 하다. 데이터와 알고리즘 모델을 연결시킬 때 모델이 생성되는게 진정 맞다면, Test and Score는 생성된 모델 이후에 위치할 것이 아니라 애초부터 데이터와 모델 사이에 위치했다면 이해가 되었을 것 같다. Test and Score 때문에 헷갈려져서, 모델이 진정 생성되는 위치가 모델 위젯 부분이 아니라 Evalute 위젯 부분이 아닌가 싶기도 했으나 그건 아닐 것 같고.. 아마 Test and Score에서 기존 생성되어 있는 모델과는 별도로, 학습을 다시시킨 모델데이터를 얻어내는 것 같다...? Test and Score 와 생성된 모델간의 상호작용이 궁금하다.
이렇게 Tranning set size를 퍼센트로 설정해주면 나머지 퍼센트는 test data로 쓰이게 된다.
2021.01.04 추가> Test and Score 동작은, 내부적으로 모델의 재생성이다. ( opentutorials.org/course/4569/29263 )
정리
train_datad와 모델(알고리즘) 연결 -> 해당 알고리즘을 사용해 연산하여 모델을 만듦.
predict에 모델과 cause_data를 연결 -> 해당 모델을 사용하여 cause_data 입력을 받아 예측값을 표시함.
Test and Score에 모델과 train_data를 연결 -> 데이터의 일부만을 학습용도로 사용하여 재학습시킨 모델에 나머지를 예측용도의 데이터를 삽입하여 예측값을 평가함.
'[인공지능]' 카테고리의 다른 글
[오렌지] 모델/알고리즘의 특징 비교 (0) | 2020.12.13 |
---|---|
[오렌지] 지도학습 / 분류 (0) | 2020.12.13 |
[오렌지] 오렌지로 머신러닝 회귀 구현 (0) | 2020.12.11 |
[오렌지] 통계의 시각화 (0) | 2020.12.11 |
[인공지능] 오렌지 (0) | 2020.12.10 |