코딩일기

[DataScience]선형회귀(Linear regression)로 분류를 하지 않는 이유 본문

Code/머신러닝(ML)

[DataScience]선형회귀(Linear regression)로 분류를 하지 않는 이유

daje 2021. 1. 30. 16:20
728x90
반응형

안녕하십니까 다제 입니다. 

 

저희는 머신러닝에 대해서 배우고 있습니다. 

지금까지는 회귀에서 대해서 배웠습니다. 

 

복습을 한번 해볼까요?

 

 

머신러닝은 지도학습과

비지도학습으로 나뉩니다. 

 

지도학습은 

회귀(연속적인 값 예측)와

분류(정해진 몇개의 값 중 예측)로 나눌 수 있습니다. 

 

 

 


 

 

이제 분류에 대해서 배울 차례인데요

한가지 궁금증이 생깁니다. 

 

선형회귀로는 분류를 하지 못하는 것인가?

정답~~~~? No! 할 수 있습니다. 

 

그런데 권장하지 않습니다!

왜 그런지 한번 알아보도록 하겠습니다~

 


 

예를 들어서 학생들의 학습한 시간을 기준으로

컴퓨터 시험 합격을 예측하는 모델을 만들고

이를 가지고 분류 작업을 해보겠습니다. 

(단, 성적은 학습 시간에 비례하며 만점은 50점이라고 가정합니다. )

 

합격 커트라인 : 30점 

 

지금 같은 경우에는 100시간이 딱 30점이 되는 지점이니까,

100시간 넘게 공부한 사람은 통과로 "분류"하고,

100시간 밑으로 공부한 사람은 통과 못한 걸로 분류하면 되겠죠?

즉, 100시간 이상 공부한 학생은 합격이 된다는 의미 입니다. 

자, 그런데 이렇게 간단하게 되는데도

우리는 분류 문제를 풀 때 선형 회귀를 잘 사용하지 않는 이유는 

딱! 1개의 작은 데이터만 추가되었는데도 너무 큰 변화가 발생됩니다.

 

400시간을 공부한 학생의 데이터를 추가해보겠습니다!

 

 

 

400시간을 공부한 친구는 혼자 저 멀리 떨어져 있는데요.

이 데이터 하나로 인해서 최적선이 이렇게 좀 눕혀지게 됩니다.

 

이러면 우리의 합격커트라인 점수인 30점을 채우기 위해서는

갑자기 200시간 넘게 공부한 학생들만 통과로 "분류"가 되버립니다. 

 

즉, 위에서 100시간 이상 공부한 학생을 합격으로 분류를 하였는데

400시간 공부한 학생이 추가됨에 따라 합격 -> 불합격으로 분류가 변경됩니다. 

 

이처럼 선형 회귀는 이런 예외적인 데이터에 너무 민감하게 반응하고

시간과 성적은 비례한다는 가정이 없다면 사용하기 매우 어렵습니다. 

(실제로 2시간만 공부하고도 시험을 잘 보는 사람들이 있으니까요)

 

이런 민감성이 없는 분류라면 선형회귀를 써도 무방하다는 말이겠지요?(있을가.. 싶지만요..)

저희는 적절한 데이터 활용이 중요하다라는 걸 이 간단한 예를 통해서도 알 수있습니다. 

 

오늘도 큰 흐름을 잡고 공부하는데 

도움이 되셨으면 좋겠습니다. 

 

본 글을 검토하여 주신 님께  EXUPERY감사드립니다.

 

글을 읽어주셔서 감사합니다!

공감은 사랑입니다~ㅎ

728x90
반응형
Comments