반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석, 머신러닝 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART) 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

 

 

<머신러닝 관련 글>

 

2021.07.19 - [파이썬 패키지/데이터분석] - [코딩유치원] 비전공자도 쉽게 이해할 수 있는 인공지능/머신러닝/딥러닝 개념 총정리

 

2021.09.01 - [파이썬 패키지/머신러닝] - [Python/Scikit-learn] 머신러닝 라이브러리_1편. 머신러닝과 Scikit-learn 소개(ft. 지도학습, 비지도학습, 강화학습)

2021.09.07 - [파이썬 패키지/머신러닝] - [Python/Scikit-learn] 머신러닝 라이브러리_2편. Scikit-learn 학습용 데이터 셋 불러오기(ft. 붓꽃 데이터)

2021.09.11 - [파이썬 패키지/머신러닝] - [Python/Scikit-learn] 머신러닝 라이브러리_3편. 머신러닝 준비물! 학습/검증/예측 데이터(ft.과대적합과 과소적합)

2021.09.13 - [파이썬 패키지/머신러닝] - [Python/Scikit-learn] 머신러닝 라이브러리_4편. 모델 학습과 분류 (ft. 붓꽃의 꽃잎, 꽃받침 데이터로 종류 예측하기)

 


 

이번 시간에는 머신러닝과 머신러닝의 대표적인 라이브러리인 Scikit-learn에 대해서 공부해보겠습니다.

 

머신러닝

 

머신러닝이란 말그대로 기계(Machine) + 학습(Learning)의 합성어로 기계가 스스로 학습하는 것을 말합니다.

 

무엇을 학습하냐면 기존에 사람이 정해주었던 규칙(모델)을 스스로 학습 합니다. 즉, 머신러닝은 모델을 만드는 하나의 방법론인 것입니다.

 

사람이 컴퓨터에 데이터(개와 고양이 사진)와 도출하고자 하는 판단 결과(이것은 고양이/개입니다) 데이터를 입력해주면, 컴퓨터가 알아서 판단 알고리즘을 모델링 하는 것입니다.

 

머신 러닝의 목적은 한마디로 모델을 만드는 것이라고 할 수 있습니다.

 

1. 모델(Model)이란?

 

모델이란 무엇일까요?

 

저는 모델이란 '현실에 적용 할 수 있는 쓸모있는 가상의 무언가'이라고 생각합니다.

 

머신러닝에서 흔히 사용하는 모델의 예는 아래와 같습니다. 다양한 모델들이 있지만 명료한 이해를 위해서 3가지만 소개드리겠습니다.

 

1) 개와 고양이를 구분해주는 분류(Classification) 알고리즘

2) 유튜브 시청 기록을 이용한 예측 혹은 회귀(Regression) 알고리즘

3) 고객의 구매 데이터로 고객군을 그룹화 해주는 클러스터링(Clustering) 알고리즘

 

 

2. 머신러닝의 분류

 

 

머신러닝은 크게 지도학습, 비지도학습, 강화학습으로 나눕니다. 이외에도 더 많은 학습 방법이 있지만 3가지만 다루도록 하겠습니다.

 

1) 지도학습(Supervised Learning)

 

출처. TTA정보통신용어사전-지도형 기계 학습

 

지도학습은 데이터(Data)와 그 데이터가 무엇인지 알려주는 정답(Label)을 컴퓨터에게 입력해주는 학습법입니다.

 

즉, 컴퓨터에게 '이게 정답이야~'라고 지도해준다고 해서 지도학습이라고 부릅니다.

 

위에서 말씀드렸던 분류(Classification)회귀(Regression) 모델에 지도학습이 사용됩니다.

 

분류 모델에는 정상/스팸 메일 분류, 개/고양이 분류 등이 있으며, 회귀 모델에는 집값 예측, 지지율 예측 등과 같은 예가 있습니다.

 

 

2) 비지도학습(Unsupervised Learning)

 

 

비지도학습은 정답(Label)이 없는 데이터만을 컴퓨터에게 입력해주는 학습법입니다.

 

정답이 없으므로, 컴퓨터가 할 수 있는 일을 데이터만을 가지고 비슷한 그룹끼리 나누어 주는 것(군집화)이겠죠?

 

비지도학습의 대표적인 모델로는 군집화(Clustering)차원축소(Dimensionality reduction)이 있습니다.

 

앞서 배운 분류가 정확히 어떤 데이터는 무엇이다라고 하는 것과 다르게, 군집화는 일단 나누어놓고 이 그룹은 무엇이겠다라고 추후에 정해주는 차이라고 생각하시면 됩니다.

 

군집화 모델의 예로는 뉴스 카테고리 분류, DNA 분류 등이 있습니다.

 

차원축소는 이해하기 난해하므로 추후에 최대한 쉽게 포스팅 해보도록 하겠습니다.

 

 

3) 강화학습(Reinforcement Learning)

 

강화학습은 마치 사람의 학습과 같이, 어떤 행동(action)을 했을 때 보상(reward)을 받으면서 학습하는 것을 말합니다.

 

아이가 어떤 행동을 하니 엄마가 칭찬을 해주고, 아이는 자신의 행동 중에서 엄마가 제일 기뻐하고 칭찬해주는 쪽으로 행동하는 것과 같은 것이죠.

 

앞서 배운 지도학습과 비지도학습이 환경에 변화가 없는 정적인 환경에서 학습을 진행했다면, 강화학습은 변화하는 환경 안에서 시행착오를 겪으며 학습을 진행한다는 것이 가장 큰 차이점입니다.

 

대표적인 강화학습의 예로는 알파고가 있습니다.

 

 

Scikit-learn

 

이러한 머신러닝의 개념을 파이썬에서 아주 쉽게 이용할 수 있게 해주는 라이브러리가 Scikit-learn입니다.

 

싸이킷런은 Numpy, Scipy, matplotlib을 기반으로 하는 파이썬 대표 머신러닝 라이브러리입니다.

 

seaborn과 비슷하게 샘플 데이터 셋이 내장되어 있으며, 초심자가 머신러닝을 다루어 볼 때 가장 적합한 라이브러리라고 합니다.

 

Scikit-learn 공식 문서

 

오늘은 준비한 내용은 여기까지 입니다.

 

다음시간에는 Scikit-learn을 설치하고 사용하는 방법, 주요 기능들에 대해서 알아보겠습니다.

 

오늘도 코딩유치원을 찾아주신 여러분들께 감사드립니다.

 


<참고자료>

 

1. TCP 스쿨 (머신러닝-강화학습)

http://tcpschool.com/deep2018/deep2018_machine_reinforcement

 

2. 싸이킷 런 공식 문서

https://scikit-learn.org/stable/

 

 

반응형

+ Recent posts