[ 데이터 과학 ] 10. Memorization
1. Classfication
: 특정 사건에 대해서, 정해진 범주로 나누어 예측하는 작업
ex)

2. Regression
: 범위 안에서 무한한(연속적인) 값을 가질 수 있는 데이터들에 대한 예측
ex)

Memorization Method
데이터를 기억 / 특정 패턴을 학습하는 방법
> 해당 데이터나 특정 패턴을 학습하기 위해 관련있는 변수의 개수를 정해야한다.
- Single Variable : 하나의 독립 변수와 하나의 종속 변수 간의 관계 분석 ---> 해석이 쉬움, 간단함 / 정확성 떨어짐
- Multi Variable : 두 개 이상의 독립 변수를 사용하여 종속 변수 간의 관계 분석 --> 정확한 예측, 변수 간 상호효과 분석 가능 / ㅐ해석 어려움
ex) 연봉 - # 에서 관계가 있는 것은?
> 일하는 시간 / 나라 / 교육 수준 / 직업 / 인종 / 가족 관계

어른들의 소득 정보 관련해서 있음
train : 예측 모델을 위한 데이터
test : 예측 모델을 테스트하기 위한 데이터


income_mt_50k : 소득이 50k보다 많은가에 대한 T/F
False(그렇지 않은 사람) : 19740명
True (그런 사람 ) :6300명
prop.table은 그 비율을 알려준다.

우선 직업을 예측 요소로 봅아보자.
* prop.table 했을 때 Default가 margin=1이기 때문에 연산 방향은 Row이다.
하나의 Row에서 각 Column들을 합하면 1이 된다.

그렇게 직업 ↔ T/F 비율을 Sort한다.

직업별로 T/F비율을 est_prob로 할당해둔 뒤에
출력해본다.
뭔가 아래쪽을 보면 0.4넘으면 True인 것 같으니
한 번 기준점 Threshold를 0.4로 잡고 예측 모델을 돌려보자.

Prediction 에 threshold값을 설정해두고 est_prob와 비교하여 T/F 값을 넣는다.
Prediction과 income_mt_50k 가 같으면 정확도가 높다는 것이다.
10개 중에 3개 빼고 7개는 다 같다.
정확도는 0.7%라고 해보자.
더 늘려서 계산해보자. Confusion Matirx로 확인 가능함
Confusion Matrix

우리 예측과 결과에 대한 관계이다.
FP : 예측은 넘는다고 함 / 실제로는 안 넘는다.
FN : 예측은 안 넘는다 / 실제로는 넘음
TP : 넘는다고 예상 / 실제로도 넘음
TN: 안 넘는다고 예상 / 실제로도 안 넘음
TP랑 TN이 높은 것이 가장 정확도가 높은 것이기 때문에
우리의 목표는 이들을 최대한으로 하는 것이다.
Accuracy = ( TP + TN ) / 전체

Overfitting

[ Underfiiting ] : 너무 간단하게 변수와 결과를 매칭시킨 탓에, 정확도가 너무 낮음
[ Right fIr ] : 적당한 정확도와 , 적절한 변수 - 결과 관계이다.
[ OverFitting ] : 100%에 가까운 정확도, 너무 과하게 나누어 놓았기 때문에 일관적인 흐름을 잡을 수 없다. 따라서 예측을 할 수 없다.
> Train을 과하게 학습시키면 해당 데이터들에 대해서만 그렇게 Setting된다.
> 우리의 목표는 ' 일반화가 가능한 예측 모델 ' 를 만드는 것이다.
+ Train data - Test data 둘 다 이븐한 것을 원한다.

0.74 는 0.751 과 비슷하다. Overfit 문제도 없다.
그럼 0.751이 더 나을까?
[ 확인하는 방법 ]
1. Threshold를 바꿔보기
2. Predictor 바꾸기
(출처)
한동대학교 김현정교수님 - 데이터과학