Correlation does not imply causation
상관은 인과를 함축하지 않는다
상관계수
- 한 변수가 커짐에 따라 다른 변수가 작아지는 관계인 경우, 두 변수는 '상관 관계가 있다'고 하고, 그 관계된 정도는 '피어슨(Pearson) 상관 계수'라고 함.
model.fit
모델을 학습시킨다
= 모델의 정확도를 가장 높일 수 있는 최적의 "매개변수(가중치,Weight)" , 혹은 "파라미터(편향,Bias)" 를 찾는다
model.compile
손실함수(loss function) or 비용함수(cost function)
- predicted y 와 real y 값 간의 차이를 나타내는 함수.
- 값이 크면 그만큼 둘의 거리가 멀다는 뜻으로, 정확하지 않다는 뜻.
- 손실값은 작을수록 좋은것!
- 1) 모델이 출력하는 값과 실제 정답 간의 차이를 계산하고,
- 2) 그 차이를 단계적으로 줄여나가는 순서로 모델을 학습시킬 것
정확도를 측정하는 4가지 방법
= 모델의 오차를 측정
The MSE, MAE, RMSE, and R-Squared metrics are mainly used to evaluate the prediction error rates and model performance in regression analysis.
- MAE (Mean absolute error) represents the difference between the original and predicted values extracted by averaged the absolute difference over the data set. : 편차의 절댓값의 평균
- MSE (Mean Squared Error) represents the difference between the original and predicted values extracted by squared the average difference over the data set. : 편차의 제곱의 평균
- RMSE (Root Mean Squared Error) is the error rate by the square root of MSE. : 편차의 제곱의 평균의 루트
- R-squared (Coefficient of determination) represents the coefficient of how well the values fit compared to the original values. The value from 0 to 1 interpreted as percentages. The higher the value is, the better the model is.: 결정계수 1일수록 좋음
The above metrics can be expressed,
하이퍼 파라미터
- 학습률과 같이 모델이 스스로 학습해나가는 파라미터 가 아니라, 사람이 직접 사전에 정하고 시작해야 하는 파라미터
- 최적의 하이퍼 파라미터는 사람이 직접 찾아야 하기 때문에 많은 실험을 통해 찾을 수밖에 없음
- 보통 learning rate는 0.0001 ~ 0.01 정도의 작은 값으로 사용함.
- 그래야 최적값을 지나치지 않고 경사를 하강할 수 갈 수 있음.
경사하강법 (Gradient Descent Method)
- 왼쪽 점 : 오른쪽으로 갈수록 손실함수값이 점점 작아짐. 접선은 오른쪽 아래로 향하는 방향, 기울기는 음수
- 오른쪽 점 : 왼쪽으로 가면 손실함수값이 점점 작아짐. 접선은 왼쪽 아래로 향하는 방향, 기울기는 양수
기울기는 그 자체로 자기 자신보다 함수값이 작아지는 방향을 알려주므로, 최적의 w의 위치를 알지 못해도 현재 위치의 기울기만 알 수 있으면 어느방향으로 옮겨가야 최적값을 찾을 수 있을지의 방향이 나오게 됨.
이 step을 정리해보면,
- 현재 w에서의 기울기를 구한다.
- 기울기가 음수라면, 현재 w를 키운다.
- 기울기가 양수라면, 현재 w를 줄인다.
이를 수식으로 나타내면,
- w' : 새로운 w
- w : 현재 w
- \eta : 얼마나 업데이트를 할 지를 결정하는 상수 (학습률)
- g : 기울기, 또는 그래디언트
선형 회귀
y=wx+b
회귀(Regression) 반대의 개념은 분류 (Classification)
회귀는 연속된 실수값을, 분류는 카테고리를 예측함.
- Classification is the task of predicting a discrete class label.
- Regression is the task of predicting a continuous quantity.
- Classification predictions can be evaluated using accuracy, whereas regression predictions cannot.
- Regression predictions can be evaluated using RMSE root mean squared error, whereas classification predictions cannot.
(참고) Categorical Regression
이건 회귀인가 분류인가.
내가 이해하기로는 "회귀인척 하는 분류" 인 듯 하다.
예를들어, 가위바위보 그림을 보고 어떤 건지 판별하게 할 때,
우리는 label을 one-hot encoding 하여 각각 0, 1, 2 로 numeric하게 바꾼다.
그럼 Regression으로 결과값 예측이 가능하기 때문이다.
실제로 CNN 문제에서 이렇게 답안을 작성했었다.
optimizer는 RMSprop으로
loss fuction은 categorical... 로
metrics는 accuracy로..
회귀는 이것만, 분류는 저것만 이런식으로 이분법화 하면 많이 헷갈릴듯하니,, 경계를 살짝 모호히하고 넘어가야겠다.
model.compile(
optimizer=RMSprop(learning_rate=0.001),
loss='categorical_crossentropy', metrics=['accuracy']
시각화
x가 3개 이상이 되면, 우리가 현생에서 표현할 수 없는 dimension이 되어 시각화가 어렵긴 하지만,
the one feature of X 로 2차원으로는 그릴 수 있다.
시각화해서 pred_y와 y가 잘 맞아지는지 확인하기.
표기법
한 가지, 아주 중요한 부분은 아니지만 보편적인 표기법을 한 가지 더 소개하겠습니다.
일반적으로 x와 곱해지는 매개변수는 w로, 그리고 상수는 b로 표기합니다. 이 때 지금과 같이 x의 개수가 여러 개라면 w는 w_n과 같이 아래첨자로 숫자를 표기하죠.
이것과 통일하기 위해 상수 b는 b 대신 w_0으로 표기하기도 합니다. 이렇게요!
https://www.datatechnotes.com/2019/02/regression-model-accuracy-mae-mse-rmse.html
https://ko.wikipedia.org/wiki/%EB%AF%B8%EB%B6%84
https://faculty.nps.edu/rbassett/_book/regression-with-categorical-variables.html
'Study (Data Science) > ML' 카테고리의 다른 글
EDA 노트 (0) | 2022.12.14 |
---|---|
이미지처리 Basic (0) | 2022.12.12 |
CSV, XML, JSON (0) | 2022.12.08 |
문자열다루기, 정규표현식 (0) | 2022.12.08 |
Matplotlib, Seaborn (0) | 2022.12.07 |
댓글