본문 바로가기
IT

머신 러닝 기반의 Scientific Application을 위한 파이썬 라이브러리

by CHML 2020. 5. 21.

 

 

1. Sckit-learn [link]

다양한 머신 러닝 알고리즘과 데이터 전처리 기법을 제공하는 라이브러이다. 간단하게 머신 러닝 기반의 application을 제작하고자 한다면 scikit-learn은 아마도 최적의 라이브러리일 것이다.

 

2. TensorFlow [link]

구글에서 공개한 딥 러닝 라이브러리이다. 텐서 기반의 병렬화된 연산과 다양한 종류의 인공신경망 (artificial neural network) 구현을 제공한다. 기업에서 머신 러닝 기반의 application을 제작하기 위해 특히 많이 이용되고 있다.

 

3. PyTorch [link]

TensorFlow와 비슷한 딥 러닝 라이브러이다. PyTorch 또한 텐서 기반의 연산과 다양한 종류의 인공신경망 구현을 제공한다. 모듈화된 코드를 수정하거나 인공신경망의 매개변수를 출력하는 것이 용이하기 때문에 연구자들이 많이 이용하고 있다. 나 또한 주로 PyTorch를 이용하여 연구 및 개발을 수행하고 있다.

 

4. PyTorch Geometric [link]

PyTorch를 기반으로 다양한 그래프 인공신경망 (graph neural network)의 구현을 제공한다. 그래프 기반의 딥 러닝을 위해서는 단순히 머신 러닝 알고리즘 구현뿐만 아니라, 텍스트로 표현된 데이터셋을 그래프 형태로 변환하거나 그래프 데이터를 batch의 형태로 처리하는 것이 필요하다. TensorFlow나 PyTorch에는 이러한 기능이 완벽히 구현되어 있지 않기 때문에 그래프 기반의 딥 러닝을 위해서는 PyTorch Geometric 사용을 추천한다.

 

5. XGBoost [link]

Scientific application을 위한 최고의 머신 러닝 알고리즘은 아마도 XGBoost일 것이다. 다양한 regression 문제에서 XGBoost의 성능은 이미 수도 없이 검증되었으며, 최근에 발표된 여러 심층 인공신경망보다도 더 효율적이면서도 높은 예측 정확도를 보여주었다.  만약 머신 러닝 기반의 scientific application을 제작하고 있다면, 반드시 XGBoost를 사용해보길 바란다.

 

6. RDKit [link]

화학정보학 (Cheminformatics)를 위해 개발된 파이썬 라이브러리이다. 화학적으로 표현된 분자 구조 파일을 머신 러닝 알고리즘이 처리 가능한 형태로 변환하는 기능을 포함하고 있다. 이외에도 다양한 종류의 구조 파일을 서로 변환하거나, 기본적인 원자 및 분자의 물리 및 화학적 정보를 제공하는 등 물리 및 화학 분야의 scientific application을 제작하고 있다면 매우 유용하게 이용할 수 있을 것이다.

 

7. Pymatgen [link]

결정 구조 (Crystal structure)를 처리하기 위해 만들어진 라이브러리이다. 결정 구조를 표현하는 .cif 파일을 그래프 형태의 데이터로 변환하는 등, 결정 구조를 이용한 머신 러닝을 위해 많은 편의 기능을 제공하고 있다. 특히, Materials Project라는 소재 데이터베이스를 접근할 수 있는 API도 제공하기 때문에 소재 관련 scientific application을 개발하고자 한다면 한 번쯤 살펴보는 것이 좋다.