바닥부터 시작하는 인공지능

머신러닝 툴 총정리/ 5분안에 파악하는 머신러닝/ 머신러닝 초보/ 머신러닝 시작하기/ 머신러닝 언어/ 파이썬

HappinessChung 2019. 7. 17. 22:50
반응형

 

들어가기에 앞서 이 포스트는 프로그래밍에 대해 어느정도 기본 지식(프로그램 언어의 종류, 기본적인 메커니즘 등)을 알고 있다는 전제 하에 작성 된 것임을 알려드립니다. 따라서 프로그래밍에 대해 아예 지식이 전무하시다면 먼저 프로그래밍 기초에 대한 지식을 습득하신 후 이 글을 읽으시면 더욱 도움이 되실 것입니다. 

 

지금까지 프로그래밍을 하면서 자바, c언어, 파이썬 등 많은 프로그래밍 언어를 접할 수 있을텐에요, 머신러닝을 하기 위해서는 어떤 언어를 배워야 하는걸까요?

 

머신러닝을 수행하기 위한 프로그래밍 언어는 파이썬입니다. 왜 파이썬을 사용하는 것일까요? 그 이유는 다음과 같습니다. 첫번째, 파이썬은 데이터 적제, 시각화, 통계, 자연어 처리, 이미지 처리 등에 필요한 라이브러리를 갖추고 있습니다. 두번째, 파이썬은 터미널이나 주피터 노트북 같은 도구를 이용하여 대화하듯 프로그래밍 할 수 있다는 장점이 있습니다. 이러한 이유들로 인해 머신러닝을 할 때에는 파이썬을 사용합니다.

  

쉽게 말해, 파이썬은 머신러닝에 필요한 도구들을 가지고 있고, 프로그래머와 즉각적인 상호작용이 가능 한 언어이기 때문에 머신러닝을 할 때에는 파이썬을 사용한다는 것이지요.



머신러닝을 하기 위해서는 먼저 머신러닝에 필요한 파이썬 패키지들을 모아놓은 프로그램을 다운 받아야 할텐데요, 페기지 프로그램은 머신러닝을 수행하기 위한 도구들을 모아놓은 하나의 주머니라고 생각하시면 됩니다. Anaconda는 이러한 주머니 기능을 수행하는 프로그램입니다. (윈도우, 리눅스 macOS를 모두 지원).

 

Anaconda에 포함된 프로그램(주머니 안에 든 물건들)에는 Numpy(넘파이), Scipy(사이파이), matplotlip(맷플롯립), pandas(판다스), IPython(아이파이썬), 주피터 노트북, scikit-learn(사이킷런)이 있습니다. 이제 이 도구들에 대해 간략히 살펴보도록 하겠습니다.

 


위와 같은 도구들을 활용하여 주피터 노트북을 사용하기 위해 아래와 같은 코드를 맨 먼저 작성합니다. 

from IPython.display import display
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import mglearn
%matplotlib notebook


첫번째 도구: 주피터 노트북
프로그램 코드를 브라우저에서 실행 해 주는 대화식 환경. 코드를 한줄 한줄 입력함과 동시에 그에 따른 결과를 즉각적으로 확인 할 수 있게 해 줍니다.
Scipy, matplotlip 등의 프로그램을 하나로 모아주는 그릇이라고 보면 됩니다.
 (Anaconda는 프로그램들을 단순히 모아놓은 것이고, 주피터 노트북은 이러한 프로그램들이 실제로 작동될 수 있도록 장을 마련 해 주는 프로그램)

두번째 도구: Numpy
파이썬으로 과학적인 계산을 하기 위해 필요한 패키지. 선형대수, 푸리에 변환 등과 같은 높은 수준의 수학 함수와 난수 생성기를 포함하고 있습니습니다. scikit-learn에서는 numpy 배열을 기본 데이터 구조로 삼습니다. 
핵심 기능은 다차원 배열인 ndarray 클래스. 이 배열의 원소는 동일한 데이터 타입 이어야 한다는 조건이 있습니다.

세번째 도구: Scipy
과학 계산용 함수를 모아놓은 파이썬 패키지. 고성능 선형대수, 함수 최적화, 신호 처리, 특수한 수학 함수, 통계 분포 등을 포함한 기능들을 제공합니다. 
핵심 기능은 scipy.sparse로 이 모듈은 scikit-learn에서 테이터를 표현하는 또 하나의 방법인 희소 행렬 기능을 지원합니다. 희소 행렬은 0을 많이 포함한 2차원 배열을 저장할 때 사용합니다.

네번째 도구: matplotlip
대표적 과학 계산용 라이브러리. 선 그래프, 히스토그램, 산점도 등을 지원. 고품질 그래프를 그릴 수 있는 프로그램입니다. 
%matplotlib notebook 이나 %matplotlib inline 명령을 사용하면 브라우저에서 바로 이미지를 볼 수 있습니다. 아래의 사진은 주피터 노트북에서 matplotlib을 활용하여 그래프를 그린 것입니다.



다섯번째 도구: pandas
데이터 처리와 분석을 위한 파이썬 라이브러리. R의 data.frame을 본떠서 설계한 DataFrame이라는 데이터 구조를 기반으로 만들어진 프로그램입니다. 
엑셀의 스프래드 시트와 비슷한 기능을 가진다고 보면 됩니다. 테이블에 쿼리나 조인을 수행할 수 있고, 전체 배열의 원소가 동일한 타입이어야 하는 numpy와 달리 pandas 에서는 각 열의 타입이 달라도 된다는 장점이 있습니다. 
SQL, 엑셀파일, CSV 파일과 데이터베이스에서 데이터를 읽어들일 수 있는 것이 pandas가 제공하는 유용한 기능중 하나입니다. 

여섯번째 도구: mglearn
그래프나 데이터 적제와 관련한 세세한 코드를 일일이 쓰지 않아도 되게끔 하는 유틸리티 함수들을 모아놓은 것입니다. 그림을 그리거나 필요한 데이터를 바로 불러들이기 위해 사용합니다.

 



반응형