4학년/데이터 과학 ( Data Science )

[ 데이터 과학 ] 10. Memorization

쫑알bot 2025. 4. 3. 15:45
728x90

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 바꾸기

 

 

 


(출처)

한동대학교 김현정교수님 -  데이터과학

댓글수0