Python Packages in ML

Numpy

트라비스 올리펀트(Travis Oliphant)가 개발한 Numpy는 파이썬 언어를 기반으로 하는 모든 분석용 솔루션의 핵심입니다. Numpy는 다차원 배열과 이 배열을 대상으로 여러 가지 수학적 연산을 수행하는 많은 함수들을 제공합니다. 배열은 다차원으로 배열된 데이터 블록으로서 벡터와 행렬을 구현합니다. 배열은 데이터 저장뿐만 아니라 빠른 행렬 연산(벡터화, Vectorization)에 유용하며, 특별히 데이터 과학 분야의 문제를 해결하려고 할 때 반드시 필요한 패키지 입니다.


Scipy

Scipy는 본래 트라비스 올리펀트, 페루 피터슨, 에릭 존슨이 시작한 프로젝트로, 선형 대수, 희소행렬, 신호 및 이미지 처리, 최적화, 급속 퓨리에 변환(Fast Fourier Transformation)등 다양한 종류의 과학용 알고리즘을 제공하면서 Numpy의 기능을 보완합니다.


Pandas

Pandas는 Numpy와 Scipy로 불가능한 모든 기능을 지원합니다. 특히 Pandas 특유의 객체 데이터 구조, 데이터 프레임(DataFrame), 시리즈(Series) 덕분에 서로 다른 데이터 타입으로 구성된 복잡한 테이블과 시계열 데이터를 처리할 수 있습니다. 데이터의 분할, 정제, 유실 데이터 처리, 추가, 재명명, 병합, 변환을 지원해 결국 사용자 의도에 따라 시각화가 가능하도록 합니다.


Scikit-Learn

Scikits(Scipy Toolkit)의 일부로 시작된 Scikit-learn은 파이썬을 사용하는 데이터 과학 연산의 핵심 패키지입니다. Scikit-learn은 데이터 전처리, 지도 및 비지도 학습, 모델 선택, 검증, 오차 기준에 필요한 모든 기능을 제공합니다.

  • 웹 사이트 : http://scikit-learn.org/stable/
  • 데이터 처리 : sklearn.preprocessing, sklearn.feature_extraction)
  • 모델 선택 및 검증 : sklearn.cross_validation, sklearn.grid_search, sklearn.metrics)
  • 목표 값 에측 : sklearn.linear_model

Matplotlib

Matplotlib는 배열로부터 고품질 도표(Plots)를 생성하고 그 도표를 대화형으로 시각화하기 위해 제작된 블록 모두를 포함하는 라이브러리입니다. PyLab 모듈 안에 포함된 MATLAB 방식의 도표 프레임워크를 모두 사용할 수 있습니다.


Gensim

Gensim은 병렬 분산 온라인 알고리즘을 사용하는 대형 문자 집합 분석용 오픈소스 패키지입니다. 잠재 의미 분석(Latent Semantic Analysis, LSA), 잠재 디리클레 할당(Latent Dirichlet Allocation, LDA)에 의한 주제 모델링, 구글의 지도 및 비지도 머신 러닝에서 사용하기 위해 텍스트를 벡터 특징으로 변환하는 알고리즘인 word2vec을 구현할 수 있습니다.


H2O

H2O는 빅데이터 분석용 오픈소스 프레임워크입니다. R, Python, Scala, Java 프로그래밍 언어로 사용할 수 있으며, 단독 머신 혹은 하둡 클러스터를 쉽게 사용할 수 있도록 하였습니다. 스케일 업과 스케일 다운 기능을 지원합니다.


XGBoost

XGBoost는 확장과 이식이 가능한 분산형 경사 부스팅(Gradient Boosting) 라이브러리입니다. Python, R, Java, Scala, Julia, C++를 지원하며, 단일 머신 뿐만 아니라 하둡과 스파크 클러스 모두에서 동작 가능합니다.


Theano

Theano는 다차원 배열을 포함한 수학적 표현식을 효율적으로 정의하고, 최적화하며, 평가할 수 있도록 하는 파이썬 라이브러리입니다. 기본적으로 심층 신경망(Deep Neural Networks)를 만들기 위해 필요한 모든 빌딩 블록을 제공합니다.


TensorFlow

TensorFlow는 배열이 아닌 데이터 플로 그래프를 사용해 수치 연산을 하는 오픈소스 소프트웨어 라이브러리입니다. 그래프 표현에서 노드(Node)는 수학적 연산을 나타내고, 그래프 엣지(Edge)는 노드들 사이를 이동하는 텐서라는 다차원 데이터 배열을 나타냅니다.


sknn library

sknn 라이브러리는 Pylearn2 래퍼(Wrapper)로서, Theano의 전문가가 아니더라도 심층 신경망 네트워크를 구현할 수 있도록 하였습니다.


Theanets

Theanets 패키지는 파이썬으로 작성된 딥러닝 및 신경망 툴킷으로, Theano를 사용해 연산을 가속화한다. sknn처럼 딥러닝 모델 생성을 위해 Theano 기능이 쉽게 연결될 수 있도록 합니다.


Keras

Keras는 고수준으로 최소화된 단위 신경망 라이브러리로, 파이썬으로 작성되었으며 Tensorflow 혹은 Theano상에서 사용할 수 있습니다.


+ Recent posts