SSONG Cloud
머신러닝기반 빅데이터 응용 전문가과정 - 12 본문
(2020.07.16)
먼저 오전에는 XOR 연산을 KNN 알고리즘을 통해 학습 시켜보았다.
XOR 연산에 대해 먼저 간단하게 말하자면 서로 값이 같으면 0, 다르면 1을 결과값으로 주는 연산이다.
예를 들면 다음과 같다.
(0,0) → 0
(0,1) → 1
(1,0) → 1
(1,1) → 0
이러한 규칙에 따라 연산이 진행되고 이를 학습시켜보았다.
confusion matrix에 대해 배웠다. 이 행렬은 분류(classification) 문제의 경우 값의 크기를 이해하기 위해
혼돈 행렬의 형태로 성능을 나타내게 된다.
이 행렬은 예측과 실제의 값에 따라 class를 나눌 수 있다.
- TP(True Positive): 예측과 실제가 모두 1인 경우
- FN(Flase Negative): 예측은 0으로 했지만 실제가 1인 경우
- FP(False Positive): 예측은 1이지만 실제는 0인 경우
- TN(True Negative): 예측과 실제가 모두 0인 경우
이를 암 진단으로 예를 들어보면 각각의 경우를 다음과 같이 설명할 수 있다.
- TP(True Positive): 암이라고 예측했고, 실제로 암인 경우
- FN(Flase Negative): 암이 아니라 예측했지만, 실제로 암인 경우
- FP(False Positive): 암이라고 예측했지만, 실제로는 암이 아닌 경우
- TN(True Negative): 암이 아니라고 예측했고, 실제로도 암이 아닌 경우
이렇게 나열해 볼 수 있다.
이 경우에는 FN은 극단적으로 환자가 사망할 수 도 있는 큰 문제를
야기할 수 있다. 하지만 FT는 심해봐야 의료소송 정도로 끝날 수 있다.
따라서 예측 모델을 만든다면 FN의 오차를 줄여가는 방향으로 모델의 성능을 향상 시켜야 한다.
그 후 정확도와 정밀도, 재현율을 배웠다. 이 지표들은 위의 4가지 경우를 가지고 산출하는 지표이다.
- 정확도(accuracy): 단순히 전체에서 정확히 예측한 비율
- 정밀도(precision): 양성으로 예측한 경우(TP + FP)중에 실제 양성(TP)인 비율
정밀도가 낮을 경우 암이 아닌 사람에게 암이라고 하여 불필요한 치료가 발생할 수 있음
- 재현율(recall): 실제 양성(TP+FN) 중에 양성을 양성이라고 맞춘(TP)인 비율
재현율이 낮은 경우 암인 사람에게 암이 아닌라고 하여 심각한 결과 초래 가능
오후에는 knn 알고리즘을 이용하여 500명의 키와 몸무게, 비만도 라벨을 이용해 비만을 판단하는 모델을 만들어보았다.
특히 과대/과소 적합에 집중하여 수행해 보았다.
훈련용 데이터 셋과 훈련용 정답셋을 n_neighbors의 값을 바꿔가며 정밀도를 계산하고
테스트용 데이터 셋과 테스트용 정답셋 또한 n_neighbors 값을 바꿔가며 정밀도를 계산하였다.
그 후 두가지 정밀도를 차트로 나타내었을 때를 분석해 보았다.
이 차트는 크게 세가지 유형으로 해석해 볼 수 있다.(과대/과소 적합만 고려하였을 때)
ⅰ) 과대 적합인 경우
물론 위와 같은 형태이더라도 과대 적합이 아닌 다른 이유일 수 있다.
하지만 이번에는 과대적합의 측면에서 해석하고자 한다.
데이터를 확인해보면 Train_acc가 Test_acc 보다 훨씬 위에 있는 구간을 관찰할 수 있다.
이 구간이 바로 과대적합이라고 해석할 수 있다.
그 이유는 학습된 알고리즘이 훈련용 데이터셋에 너무 특화되어 실제 검증을 위한 테스트 셋에서는
제대로 작동하지 못하기 때문이다.
따라서 이 경우 과대적합을 완화시키기 위해 데이터에서 특성을 추가하는 등의 방법을 취할 수 있다.
ⅱ) 과소 적합인 경우
물론 이 경우도 과대 적합인 구간이 존재한다. 하지만 Test_acc가 Train_acc보다 높은 구간에 집중하여
과소 적합을 설명하고자 한다.
먼저 데이터에 대해 설명하면 이는 위에서 Height와 Weight만 고려하여 학습을 시켰던 것과 달리
여기에 데이터에 존재하였던 Gender라는 특성을 추가하여 새롭게 학습을 시킨 결과이다.
이 경우 Train_acc는 큰 변화가 없었지만, Test_acc의 경우 위의 자료보다 훨씬 완만해진 즉, 데이터가 튀는
구간이 많이 적어졌음을 알 수 있다.
하지만 여전히 과대 적합인 구간과 과소 적합인 구간이 존재한다.
과소 적합에 더 자세히 말해보면 과소 적합은 학습을 너무 general하게 시켜서 데이터에 내재된
구조를 제대로 파악하지 못해서 발생한다.
따라서 검증 데이터에 대한 점수가 훈련용 데이터의 점수보다 높아지게 되는 경우가 발생한다.
ⅲ) 분석이 잘 된 경우
물론 이 경우도 분석이 아주 잘 된 것이라 단정지을 수는 없다.
왜냐하면 분석이 잘 이루어진 경우에는 훈련용 데이터에 대한 점수는 조금씩 하강하는 모습을
그리고 테스트용 데이터에 대한 점수는 조금씩 상승하는 모습을 띄어
결국에 거의 같은 지점으로 수렴하는 모습을 보여야 한다.
하지만 이 경우에도 그에 대한 점수가 너무 높으면 문제가 될 수 있다.
(많은 경우를 고려하여야 한다.)
아무튼 위의 2가지의 경우보다는 많이 완화된 모습을 볼 수 있다.
이는 Weight와 Height를 곱한 값까지 함께 고려하였기 때문이다.
즉, 이 두가지 기존 특성을 가지고 새로운 특성을 만들어 넣어주었다.
여기서 이 두가지 값을 곱하여 새로운 특성으로 넣어준 이유는 곱하는 과정을 통해
기존의 값이 결과에 미치는 영향을 더욱 크게 작용할 수 있게 하기 때문이다.
더 쉽게 말하면 그 값을 키울 수 있기 때문이다.
예를 들어 설명하면 Weight가 80이고 Height가 170인 사람이 있다고 가정하면
원래 각각이 미치는 영향은 80과 170이었다.
하지만 이 두가지를 곱하여 80x170 = 13600이라는 영향을 미칠 수 있게 된다.
즉 13600은 80이나 170보다 훨씬 큰 값이기 때문에 결과 값에 더 큰 영향을 줄 수 있는 것이다.
또한 새로운 속성을 추가하여(ⅱ도 포함) 데이터의 이웃을 정할 때 축을 하나 더 추가할 수 있기 때문에
2차원에서 서로 가까워보였던 객체들도 서로 높이를 가져 거리를 더 정확하게 측정할 수 있게된다.
그리고 n_neighbors를 너무 큰 값을 주게 되면 그 특성을 허물어버릴 수 있게 된다.
이는 잘 생각해보면 당연한 것이다. 너무 많은 이웃을 고려하게 되면 그 객체가 가지는
특성의 값과 다른 값을 갖는 객체까지 이웃에 포함되고 그렇게 되면 객체간을 분류할 수 없게
된다.
'Machine Learning > 머신러닝기반 빅데이터 응용 전문가과정' 카테고리의 다른 글
머신러닝기반 빅데이터 응용 전문가과정 - 14 (0) | 2021.04.12 |
---|---|
머신러닝기반 빅데이터 응용 전문가과정 - 13 (0) | 2021.04.12 |
머신러닝기반 빅데이터 응용 전문가과정 - 11 (0) | 2021.04.12 |
머신러닝기반 빅데이터 응용 전문가과정 - 10 (0) | 2021.04.12 |
머신러닝기반 빅데이터 응용 전문가과정 - 9 (0) | 2021.04.12 |