몽-구
몽구의 우당탕탕 개발 공부
몽-구
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • PS (38)
      • 백준 (24)
      • 프로그래머스 (14)
    • Dev (58)
      • Kotlin (0)
      • Java (4)
      • Spring, SpringBoot (1)
      • C (8)
      • Python (10)
      • Dart (1)
      • 알고리즘 (7)
      • 자료구조 (3)
      • Git (1)
      • Linux (2)
      • VS Code (1)
      • 환경 설정 (8)
      • Conference (1)
      • 42Seoul (3)
      • Node.js (1)
      • ShellScript (1)
      • IntelliJ (0)
      • MacOS (2)
      • 기타 (3)
    • CS (1)
      • 데이터베이스 (1)
    • DS (4)
      • Coursera (4)
    • 리뷰 (1)
      • 제품 리뷰 (1)
    • 일상 (3)
      • 자동화 (1)
      • 목표 및 계획 (2)
      • 회고 (0)
    • 삶에 대한 태도 (1)
      • 유튜브를 보며 (1)

블로그 메뉴

  • GitHub

인기 글

반응형

태그

  • 파이썬
  • Algorithm
  • 코딩테스트
  • 정렬
  • c언어
  • Python
  • 알고리즘
  • 백준알고리즘
  • 프로그래머스
  • 리눅스
  • sort
  • 백준
  • Linux
  • BOJ
  • 백준온라인저지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
몽-구

몽구의 우당탕탕 개발 공부

지도학습(Supervised Learning)에 대한 이해
DS/Coursera

지도학습(Supervised Learning)에 대한 이해

2020. 2. 11. 10:44
반응형

지도학습(Supervised Learning)이란 머신러닝 기법을 적용할 때 이용되는 학습 방법 중 하나이다. 지도학습을 활용하는 알고리즘은 '정답'이 포함된 데이터 셋을 이용하여 학습하며 학습한 데이터 셋을 기반으로 추가로 발생하는 관측치(혹은 데이터 셋)의 정답을 유추해내게 된다. 당연한 말이겠지만 보다 많은 데이터 셋이 있을 경우, 즉 표본이 많아지게 될 경우 알고리즘이 정확히 정답을 유추해낼 확률이 높아지는 게 일반적이다.

 

작년 하반기 <마케팅애널리틱스> 강의를 수강할 때 Boston house prices data set과 Iris flower data set으로 지도학습을 처음 접했다. 이미 Python이나 R 라이브러리가 다수 존재하고 조금만 구글링해봐도 다양한 글들이 쏟아져 나올 정도로 아주 대표적인 예시들이다. 본 글의 목적에 맞게 지도학습과 비지도학습의 차이를 서술할 때 필요한 배경지식 정도만 언급해보고, 각 데이터 셋에는 어떠한 feature들이 어떠한 data type으로 존재하고, 어떠한 방식으로 지도학습을 활용하는지 등은 서술하지 않겠다.

 

지도학습을 적용하는 경우는 크게 예측(Prediction)을 해야 할 때와 분류(Classification)를 해야 할 때로 구분되며, 특히 예측 문제는 회귀(Regression) 문제라고도 불린다. 위 문단에서 언급한 보스턴 집값 데이터는 예측 문제로 접근하는 것이 일반적이고,  붓꽃(iris flower) 데이터는 분류 문제로 접근하는 것이 일반적이다.

 

 

 

예측 문제(혹은 회귀 문제)는 무엇일까?

본격적인 설명에 앞서 Regression의 의미에 대해 간략히 설명할 필요가 있다. 한국어로 해석하자면 '회귀', 즉 '돌아간다'라는 의미를 가진 단어이다. 어디로 돌아가는 것일까? 결론부터 말하면 '전체 평균'으로 되돌아간다는 의미로 해석할 수 있다.

 

통계학자이자 인류학자였던 프랜시스 골턴(sir francis galton)은 평균으로의 회귀(regression toward the mean)라는 통계적 원리를 역설한 바 있다. 여기서 'the mean'은 전체의 평균을 의미한다. 프랜시스 골턴이 했던 주장의 골자는 '극단적인 데이터들이 존재하더라도 모든 데이터를 두고 봤을 때는 전체의 평균으로 되돌아가려는 특징이 있다'는 것이다. 오늘날에는 그 주장에 기반하여 일반적으로 regression이라고 부른다.

 

다시 본론으로 돌아와보자. 우리는 정말 간단하게 'y = x + a'라는 1차 방정식을 통해 예측 문제가 어떤 문제인지 직관적으로 느낄 수 있다. (직관적일 뿐, 미세먼지 정도만큼만 이해하고 간다고 생각하자. 심지어 이해하는 것도 아니고 '느낀다'고 생각하자.) 해당 식에서 x가 1이고 상수값 a가 1일 경우, 찾고자 하는 y 값은 2다.  1차 방정식 'y = x + a' 자체가 지도학습 알고리즘이고 x와 a는 알고리즘에게 제공한 데이터 중 '정답'이 제외된 데이터, y는 알고리즘에게 제공한 데이터 중 '정답'이라고 할 수 있다.

 

조금 더 머신러닝에 적합한 용어로 바꾸자면, a와 x처럼 알고리즘에게 제공한 데이터 중 '정답'이 아닌 데이터는 feature(특징 데이터)라고 하며 이것을 input variable로 활용하게 된다. 또한 y와 같은 정답을 target(타겟 데이터)라고 하는데, 이것은 알고리즘의  output variable로 활용한다. 사실 y는 지도학습 알고리즘에게 먹이로 줄 데이터에만 기재되어 있지, 새로운 관측치에서는 알 수 없다. 지도학습 알고리즘의 목적 자체가 새로운 관측치의 y를 최대한 정답에 가깝게 유추해내야 하는 것이기 때문에, 우리는 그것을 target이라 부른다. 

 

Boston house prices 데이터 셋에는 보스턴 시의 주택 가격에 대한 데이터가 수백 개 존재한다. 데이터에는 주택과 관련된 여러 가지 환경이나 요건(자치시 별 1인당 범죄율, 주택 1가구 당 평균 방의 개수 등)이 기재되어 있으며, 지도학습 알고리즘에게 핵심이 될 정답, 주택 가격도 존재한다. 지도학습 알고리즘에게 보스턴 집값 데이터를 학습시킬 경우, 알고리즘은 이제 그를 기반으로 '특정 feature들이 이러이러한 값을 가지게 될 경우 집값은 이렇게 형성되는구나'라고 학습하게 된다. 추후 같은 조건의 feature를 가진 관측치가 발견될 경우 우리는 그 집의 집값을 예측해볼 수 있게 된다.

 

* 아래는 Python에서 대표적인(그러나 썩 좋지는 않은...) 머신러닝 라이브러리 scikit-learn과 대표적인 딥러닝 라이브러리 keras, 또한 R로 구현하며 공부하신 분들의 링크를 첨부하오니 보다 자세한 내용을 알고 싶은 분들은 참고 바랍니다.

1. scikit-learn : 데이터 사이언스 스쿨 블로그

2. keras : Wide and Deep Programming님의 블로그

3. R : KUKLIFE님의 블로그

 

 

 

그렇다면, 분류 문제는 무엇일까?

예측 문제와 마찬가지로 지도학습으로 해결하는 문제로, 알고리즘에게 정답이 포함된 데이터 셋을 주게 된다. 다만, 여기서 정답은 연속적인 값(continuous variable)이 아닌 특정 범주(category)를 나타낸다. 가령 어떠한 데이터 셋이 교통카드 소유 여부와 체크카드 혹은 신용카드에 후불로 결제되는 대중교통 비용을 feature로 구성되어, 그 사람이 자동차를 소유하고 있을지 여부를 예측한다고 해보자. 여기서 정답, 즉 타겟은 '자동차를 소유했다' 혹은 '소유하지 않았다'로 분류될 것이다. 이렇듯 특정 feature들을 이용하여 해당 데이터가 어느 범주에 속하게 될지 분류하는 문제가 분류 문제다. 여기서 target은 반드시 두 개일 필요가 없으며 다수인 경우도 비일비재하다.

 

 참고로 예측 혹은 회귀 문제를 해결하기 위한 알고리즘의 output은 연속형 변수(continuous variable)이며, 분류 문제를 해결하기 위한 알고리즘의 output은 이산형 변수(discrete variable)이며 이산 변수 대신 범주형 변수(categorical variable)라고도 부른다. 즉, 집값을 예측하는 예측 문제에서는 output이 되는 target이 연속적인 수 1298.2가 될 수도 있고, 2928.7이 될 수도 있고, 12590.4이 될 수도 있는 반면 (정말 혹시나 해서 하는 말이지만 윗 줄에 언급한 숫자들은 아무 숫자나 쓴 것이다!), 자동차 소유 여부를 예측하는 분류 문제에서는 output이 0(자동차를 소유하지 않았다), 1(자동차를 소유했다)와 같이 이산 변수로 표현된다.

 

또한 분류 문제에서는 target을 또 다른 방식으로 표현하곤 한다. class 혹은 label로 표기할 수도 있다는 것 알아두자! 흔히들 target보다는 label이라고 표기한다.

 

 Iris flower 데이터 셋은 붓꽃과 관련된 정보로 구성되어 있으며, 꽃받침의 길이/너비 정보, 꽃잎의 길이/너비 정보가 기입되어 있다. 이러한 feature들과 함께 해당 붓꽃의 종류가 함께 기재되어 있는데 'setosa', 'versicolor', 'virginica' 이렇게 총 3개의 범주가 존재한다. 우리는 지도학습 알고리즘에게 이것을 target이라고 인식시켜 학습시킬 것이며, 알고리즘은 '꽃받침과 꽃잎이 이 정도 사이즈면 이러한 종류의 붓꽃이구나'라고 학습하게 될 것이다.

 

* Iris flower과 관련하여 배경지식부터 분석 과정까지 깔끔하게 정리되어 있는 블로그가 있어 해당 데이터 셋은 레퍼런스로 하나의 블로그만 기입하겠습니다. GDG Campus Korea행사에 참여했을 때 박해선 개발자님의 강연을 듣고 느낀 바가 많아 행복했는데, 이렇게 또다시 뵙게 되었네요. 혼자 반갑습니다 :)

박해선님의 블로그

 

 

 

아주 간단명료해 보이지만, 세상이 그렇게 녹록지는 않다. 예측과 분류를 수행할 때, 시작부터 이상치와 결측치에 치이고 알고리즘의 파라미터를 튜닝하는 과정 중 오버피팅과 언더피팅 문제 등 다양한 문제와 직면하게 된다. 생각해보니 그 외에도 치명적인 문제들이 한 두 개가 아니다...... 앞으로 그런 문제들은 어떻게 해결해나가야 하는지 다시 한번 공부하고 정리하며 차근차근 포스팅하겠다 ㅎ_ㅎ

 

source :

1. Andrew Ng <Machine Learning> - Introduction - "Supervised Learning", Coursera

2. 한국외국어대학교 2019년도 2학기 경영학과 강의 中 정상욱 교수님의 <마케팅애널리틱스> 강의 교안

반응형

'DS > Coursera' 카테고리의 다른 글

비용함수(Cost Function) #1  (0) 2020.02.14
비지도학습(Unsupervised Learning)에 대한 이해  (2) 2020.02.13
머신러닝에 대한 정의 (Maching Learning Definition)  (0) 2020.02.10
    'DS/Coursera' 카테고리의 다른 글
    • 비용함수(Cost Function) #1
    • 비지도학습(Unsupervised Learning)에 대한 이해
    • 머신러닝에 대한 정의 (Maching Learning Definition)
    몽-구
    몽-구
    소망보단 목표를, 생각보단 실천을

    티스토리툴바