Search

파이썬과 머신러닝 개념

머신러닝의 일반적인 개념은 애플리케이션을 수정하지 않고도 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법을 통칭한다.
머신러닝의 분류
지도학습
비지도학습
강화학습
지도학습
분류
회귀
추천 시스템
시각/음성 감지/인지
텍스트 분석, NLP
비지도학습
클러스터링
차원 축소
강화학습
머신러닝의 가장 큰 단점은 데이터에 매우 의존적이라는 것이다. 좋은 품질의 데이터를 갖추지 못하면 머신러닝의 수행 결과도 좋을 수 없다.
최적의 알고리즘과 모델 파라미터를 구축하는 능력도 중요하지만 데이터를 이해하고 효율적으로 가공, 처리, 추출해서 최적의 데이터를 준비하는 능력 또한 중요하다.
머신러닝 분야에 있어서 파이썬과 R의 인기가 가장 높다.
R은 통계 전용 프로그램 언어
파이썬은 다양한 영역에서 사용되는 개발 전문 프로그램 언어
개발 언어에 익숙치 않고 통계 분석에 능한 현업 사용자라면 R을 사용하는 편이 나을 수 있다.
하지만, 다양한 영역에서 사용할 수 있다는 점에서 파이썬을 활용하는 것이 중요하다.
파이썬은 인터프리터 언어의 특성상 속도는 느리지만 뛰어난 확장성, 유연성, 호환성으로 인해 다양한 영역에서 사용된다.
유수의 딥러닝 프레임워크인 텐서플로, 케라스, 파이토치 등에서 파이썬 우선 정책으로 파이썬을 지원하고 있다.

파이썬 머신러닝 생태계를 구성하는 주요 패키지

파이썬 기반의 머신러닝을 익히기 위해 필요한 패키지는 다음과 같다.
머신러닝 패키지 : 가장 대표적인 머신러닝 패키지는 사이킷런, 비정형 데이터 분야에서 전문적인 패키지는 텐서플로, 케라스
행렬/선형대수/통계 패키지 : 파이썬의 대표적인 행렬과 선형대수를 다루는 패키지는 넘파이. 사이파이는 자연과학과 통계를 위한 다양한 패키지를 담고있음. 사이킷런도 여러가지 패키지를 가지고 있음.
데이터 핸들링 : 파이썬의 대표 데이터 처리 패키지는 판다스. 일반적인 데이터 처리에는 판다스가 유용하다. 판다스는 2차원 데이터 처리에 특화되어있음. 맷플롯립을 호출해 쉽게 시각화 기능을 지원한다.
시각화 : 대표적인 시각화 패키지는 맷플롯립이다. 효율이 떨어지고 불편하다는 점을 보완한 다른 시각화 패키지로는 시본이 있다. 단 시본을 사용하려면 맷플롯립을 어느 정도 알고 있어야 한다.
아이파이썬은 대화형 파이썬 툴을 지칭하는데 주피터 노트북이다.

파이썬 머신러닝을 위한 S/W 설치

아나콘다를 설치하면 파이썬 기반 기본적인 패키지들을 일괄적으로 설치해준다.
아나콘다를 통해 패키지를 설치할 때 반드시 관리자 권한으로 Anaconda Prompt를 실행시켜야 한다.
파이썬 버전을 확인하려면 프롬프트 창에서 python -V 라고 입력하면 확인할 수 있다.
패키지가 설치되었는지 확인할 수 있는 간단한 방법은 주피터 노트북에서 import 해왔을 때 오류가 발생하지 않으면 설치가 되어있는 것이다.
Microsoft Visual Studio Build Tools 2015 이상의 버전이 필요. 서드파티 패키지를 설치할 때 이 툴이 필요한 경우가 있다. 대표적으로 분류에 사용되는 LightGBM, 추천 시스템의 Surprise 패키지를 설치할 때 필요하다.

넘파이와 판다스

머신러닝의 가장 중요한 이해가 필요한 스타트는 넘파이와 판다스다. 하지만 이들은 너무 방대하기 때문에 머신러닝 예제와 결합되어 어떻게 데이터 가공에 사용되는지를 인지하면서 체득하는 것이 효율적이다. 따라서 기본적인 넘파이와 판다스의 API와 프레임워크를 습득하고 실제 예제와 부딪쳐 가면서 체득하는 것이 더 빠르게 이해하는 방법이다.