머신러닝

머신러닝에 필요한 라이브러리

빈코더 2021. 9. 9. 22:20
728x90

모듈 정리


Numpy(Numerical Python)

파이썬 산술 계산의 주춧돌 같은 라이브러리

자료구조, 자료구조, 알고리즘 산술 데이터를 다루는 대부분의 과학 계산 애플리케이션에

필요로 하는 라이브러리를 제공한다.

  • 빠르고 효율적인 다차원 배열 객채 ndarray
  • 배열 원소를 다루거나 배열 간의 수학 계산을 수행하는 함수
  • 디스크로부터 배열 기반의 데이터를 읽거나 쓸 수 있는 도구
  • 선형대수 계산, 푸리에 변환, 난수 생성기
  • 파이썬 확장과 C,C++ 코드에서 NumPy의 자료구조에 접근하고 계산 기능을 사용할 수 있도록 해주는 C API

고속 배열 처리 외에도 NumPy는 데이터 분석 알고리즘에 사용할 데이터 컨테이너의 역할을 한다.

수치 데이터라면 NumPy는 파이썬 내장 자료구조보다 훨씬 효율적인 방법으로 데이터를 저장하고 다룰 수 있다.

또한 C나 포트란 같은 저수준 언어로 작성한 라이브러리는 NumPy 배열에 저장된 데이터를 복사하지 않고 바로 사용가능하다.

따라서 파이썬을 위한 많은 산술 계산 도구는 NumPy 배열을 기본 자료구조로 가정하고 있거나 NumPy와 쉽게 연동할 수 있는 기능을 제공한다.

Pandas

Pandas는 구조화된 데이터나 표 형식의 데이터를 빠르고 쉽고 표현적으로 다루도록 설계된

고수준의 자료구조와 함수를 제공한다.

Pandas의 주된 자료구조는 표 형태의 로우와 컬럼 이름을 가지는 DataFrame과 1차원 배열 객체인 Series다.

데이터를 처리하고 준비하고 다듬는 과정에서 제일 중요한 것이 Pandas이다.

  • 자동적으로 혹은 명시적으로 축의 이름에 따라 데이터를 정렬할 수 있는 자료구조
  • 통합된 시계열 기능
  • 시계열 데이터와 비시계열 데이터를 함계 다룰 수 있는 통합 자료구조
  • 메타데이터를 보존하는 산술 연산과 축약 약산
  • 누락된 데이터를 유연하게 처리할 수 있는 기능
  • 일반 DB처럼 데이터를 합치고 관계 연산을 수행가능

Matplotlib

Matplotlib은 그래프나 2차원 데이터 시각화를 생성하는 유명한 파이썬 라이브러리이다.

SciPy

SciPy(사이파이)는 과학 계산 컴퓨팅 영역의 여러 기본 문제를 다루는 패키지 모음이다.

  • scipy.integrate: 수치적분 루틴과 미분방적식 풀이법
  • scipy.linalg: numpy.linalg에서 제공하는 것보다 더 확장된 선형대수 루틴과 매트릭스 분해
  • scipy.optimize: 함수 최적화기와 방정식의 근을 구하는 알고리즘
  • scipy.signal: 시그널 프로세싱 도구
  • scipy.sparse: 희소 행렬과 희소 선형 시스템 풀이법
  • scipy.special: 감마 함수처럼 흔히 사용되는 수학 함수를 구현한 포트란 라이버리인 SPECFUN 래퍼
  • scipy.stats: 표준 연속/이산 확률 분포(밀도 함수,샘플러,연속 분포 함수)와 다양한 통계 테스트 그리고 좀 더 기술적인 통계도구

Numpy와 SciPy를 함께 사용하면 전통적인 과학 계산 어플리케이션에서 제공하는 거의 모든 기능을 대체할 수 있다.

scikit-learn

scikit-learn은 파이썬 개발자를 위한 범용 머신러닝 도구이다.

아래와 같은 하위모듈을 포함한다.

  • 분류: SVM, 최접근 이웃, 랜덤 포레스트, 로지스틱 회귀
  • 회귀: 라소, 리지 회귀등
  • 클러스터링 : k-평균, 스펙트럴 클러스터링 등
  • 차원 축소: PCA, 특징 선택, 행렬 인수분해 등
  • 모델 선택: 격자탐색, 교차검증, 행렬
  • 전처리: 특징 추출, 정규화

Pandasm statsmodels, 그리고 IPython과 함께 scikit-learn은 파이썬이 생산적인 데이터 과학 언어로 매김하는데 일등공신이다.

statsmodels

statsmodels은 다양한 R 언어용 회귀분석 모델을 구현한 통계분석 패키지이다.

statsmodels는 전통적인 통계(주로 빈도주의적 접근)와 계량경제학 알고리즘을 포함

아래와 같은 하위모듈 포함

  • 회귀 모델: 선형회귀, 일반화 선형 모델, 로버스트 선형 모델, 선형 혼합효과 모델 등
  • 분산분석(ANOVA: analysis of variance)
  • 시계열 분석: AR, ARMA, ARIMA, VAR 및 기타 모델
  • 비모수 기법: 커널밀도추정, 커널회귀
  • 통계 모델 결과의 시각화

statsmodels는 통계추론에 좀 더 초점을 맞추고 있다.

인자를 위한 불확실성 예측치와 p값을 제공한다. 반면 scikit-learn은 좀 더 예측에 초점을 맞추고 있다.

728x90