Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Nonamed Develog

[TIL][240730] CS: The Python Libraries for ML and AI 본문

WHAT I LEARN/TIL

[TIL][240730] CS: The Python Libraries for ML and AI

노네임드개발자 2024. 7. 30. 20:58

1. Data Manipulation & Analysis Pandas & Numpy

Pandas

  • DataFrames:
    벡터화 연산, 직관적인 내장 메서드로 데이터를 효율적이게 정렬, 필터링, 그룹, 집계할 수 있다.
  • Data Cleaning:
    누락된 값, 불규칙성을 해결하여 AI 모델에 양질의 데이터를 공급할 수 있다.
  • Data Filtering:
    조건을 적용하고 데이터 세트의 범위를 쉽게 좁힐 수 있다.
  • Merging and Joining:
    다양한 데이터 세트를 원활하게 결합하여 범위를 넓힐 수 있다.

Numpy

  • Arrays:
    효율적인 배열 연산이 뛰어나며, 속도와 기능 면에서 기존 파이썬 리스트보다 우수하다.
  • Vectorization:
    explicit loop(for/while)가 필요 없이 전체 배열에 동시 연산을 적용할 수 있어 계산의 효율성을 향상한다.
  • Linear Algebra(선형 대수):
    복잡한 선형 대수 작업을 원활하게 실행할 수 있는 내장 함수가 있다.

 

2. Visualization: Seaborn & Matplotlib

Matplotlib은 Python 데이터 시각화 분야에서 간단한 선형 차트를 만드는 것부터 복잡한 히트맵 디자인까지 광범위한 시각화 요구 사항을 충족한다. 또한 모든 플롯 요소에 대한 세부 사항을 제어할 수 있다. Seaborn은 Matplotlib의 정교한 대응 도구로 여겨지며, 내장된 여러 가지 스타일과 색상 팔레트로 데이터를 이해하기 쉽고 시각적으로도 좋게 만들 수 있다.

Seaborn & Matplotlib의 주요 기능

  • Deverse Plotting Options:
    기본적인 것부터 복잡한 것까지 사용자의 특정 시각화 요구 사항에 맞는 광범위한 플로팅 옵션을 제공한다.
  • Stylish Aesthetics:
    다양한 기본 테마와 색상 팔레트로 데이터 표현을 시각적으로 개선한다.
  • Figures and Subplots Management:
    여러 플롯을 쉽게 처리하고 복잡한 데이터 관계를 탐색한다.(ex. facet grids of Seaborn)

 

3. Traditional Machine Learning Tools Scikit-Learn(Sklearn) & XGBoost

Scikit-Learn(Sklearn)

  • Data Preprocessing:
    다양한 전처리 기술을 갖추고 있어 모델 학습에 적합한 최적의 데이터 상태를 보장한다.
  • Diverse Algorithm Portfolio:
    간단한 의사결정 트리부터 복잡한 앙상블 모델까지 모든 것을 갖춰 거의 모든 머신 러닝 태스크에 적합한 알고리즘을 제공한다.
  • Model Evaluation Tools:
    내장 함수를 사용하여 모델 성능을 간소화하고 효과적으로 평가하여 쉽게 비교하고 미세 조정할 수 있다.

XGBoost

  • Peformance:
    속도와 효율성을 위해 설계되었으며 성능 면에서 기존의 그래디언트 부스팅 방법을 능가한다.
  • Regularizatioin:
    과잉 적합(머신 러닝 모델에서 나타나는 함정)의 위험을 완화한다.
  • Handling Missing Values:
    학습 중 누락된 값에 접근하는 방법을 학습하여 광범위한 데이터 전처리의 필요성을 줄일 수 있다.

 

4. Natural Language Processing (NLP): NLTK & Gensim & Transformers(Hugging face)

NLTK(Natural Language Toolkit)

  • Tokenization and Parsing:
    텍스트를 관리 가능한 단위로 분할하는 데 탁월하여 심층적인 분석을 위한 기반을 마련한다.
  • Corpus Resources:
    광범위한 텍스트 리소스 컬렉션을 제공하여 NLP 모델을 위한 풍부한 교육 기반을 제공한다.
  • Part-of-Speech Tagging:
    세부적인 문법 분석이 가능하며, 텍스트 맥락에서 각 단어의 역할을 식별할 수 있다.

Gensim

  • Diverse Algorithm Suite: 
    문서 컬렉션에서 주제를 발견하고, 문서 클러스터링을 용이하게 하며, 뉘앙스를 포착하는 데 적합한 포괄적인 알고리즘을 제공한다.
  • Scalability:
    방대한 텍스트 코퍼스를 효율적으로 처리할 수 있도록 구축되어 있어 대규모 NLP 프로젝트에 이용된다.
  • Ready-to-Use Resources:
    다양한 사전 훈련된 모델과 데이터 세트를 제송하여 NLP 작업을 시작하는 데 도움이 된다.

Transformers(Hugging Face)

  • State-of-the-Art Models:
    BERT, GPT 등을 포함하여 특정 NLP 작업에 맞춰 조정된 강력한 사전 훈련된 모델의 컬렉션이다.
  • Fine-Tuning Capabilities:
    고유한 프로젝트 요구 사항에 더 잘 맞게 모델을 사용자 정의하여 성능을 최적화할 수 있다.
  • Multilingual Support: 
    언어 장벽을 허물고 다국어 애플리케이션에서 뛰어난 성능을 발휘하여 글로벌 NLP 프로젝트에 사용된다.

 

5. Deep Learning TensorFlow & PyTorch & Keras

TensorFlow

  • Scalability:
    확장성이 뛰어나 여러 CPU 및 GPU에서 원활하게 작동하여 크거나 작은 ML 애플리케이션에 모두 적합하다. 
  • Flexibility:
    다양한 신경망 설계를 지원하며 다양한 작업에 맞는 맞춤형 모델을 만들 수 있다.
  • Observability:
    Tenseoboard 같은 도구를 사용하여 모델이 이해, 디버깅, 최적화하는 데 중요한 학습 프로세스에 대한 시각화와 모니터링을 제공한다.

PyTorch

  • Dynamic Computational Graph:
    동적 그래프 기능으로 차별화를 이루며, 신경망을 즉성에서 구성하고 조정하는 데 유연성을 제공한다. 특히 모델 개발 중 실험과 디버깅에 유용하다.
  • Ease of Use: '파이썬적' 특성을 가지고 있다. 구문과 구조는 Python의 자연스러운 확장처럼 느껴져, Python 사용자가 채택하기에 직관적이고 간단하다.
  • Tenser Operations: Numpy:
    배열 및 행렬과 유사한 데이터 구조를 사용하여 텐서(모델의 입출력에 사용되는 데이터 형식)를 효율적으로 조작하여 데이터 처리 프로세스를 간소화한다.

Keras

  • User-Friendly API:
    직관적이고 고수준의 인터페이스를 통해 신경망 알고리즘의 설계와 학습을 더 쉽게 접근할 수 있게 해 주며, 특히 초보자에게 유용하다.
  • Modularity:
    실험을 장려하여 사용자가 빌딩 블록을 쌓듯이 쉽게 모델을 조립할 수 있게 하며, 건축 설계에 유연성을 제공한다.
  • Multiple Backend Support:
    단일 프레임 워크에 국한되지 않고 TensorFlow, Theano, Microsoft Cognitive Toolkit(CNTK)과 완벽하게 통합되어 적용 범위가 매우 넓다.

 

6. Computer Vision(CV) Tools: OpenCV & Dlib

OpenCV

  • Image Processing:
    시각적 데이터를 향상하고 변환하기 위한 광범위한 이미지 처리 알고리즘을 제공한다.
  • Object Detection:
    많은 현대적 이력서 작성 애플리케이션의 핵심 측면인 이미지와 비디오 내의 객체를 감지하고 인식한다.
  • Feature Matching:
    이미지 특징을 식별하고 정렬하는데 필수적이며 이미지 인식 작업에서 중요한 역할을 한다.

 

Dlib

  • Face Recognition:
    정교한 얼굴 감지 및 인식 기능을 제공하여 얼굴 특징을 정확하게 식별하고 분석할 수 있다.
  • Expression Analysis:
    컴퓨터 비전 분야의 중요한 구성 요소인 표정을 해석하는 데 탁월하여 감정 상태에 대한 인사이트를 제공한다.
  • Shape Prediction: 
    이미지의 모양을 예측하는 기능으로 다양한 물체, 얼굴과 손의 핵심 요소를 식별하여 자세한 모양 분석에 도움이 된다.

 

출처: The Best Python Libraries for Machine Learning and AI: Features & Applications