머신러닝의 개념과 파이썬 기반 ML

CharliePark·2020년 8월 22일
0

TIL

목록 보기
6/67

권철민 선생님의 <파이썬 머신러닝 완벽 가이드> 책과 강의를 통해 공부하며 정리한 내용입니다.
/ 강의

(파이썬 머신러닝 완벽 가이드 Chap 01.01~02)

머신러닝의 개념

머신러닝 : 애플리케이션을 수정하지 않고도 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법을 통칭

현실 세계의 복잡한 조건으로 인해, 인간이 작성한 로직만으로 복잡한 패턴을 규정하거나 신뢰성 있는 예측을 하기 어려운 경우가 많다.

머신러닝은 이러한 문제를 데이터를 기반으로 숨겨진 패턴을 인지해 해결한다. 데이터를 관통하는 패턴을 학습하고, 이에 기반한 예측을 수행한다. 데이터 분석 영역은 머신러닝 기반의 예측 분석(Predictive Analysis)로 재편되고 있다.

Data Mining, 영상 인식, 음성 인식, 자연어 처리 (Natural Language Processing) 등의 분야가 머신러닝을 통해 급격히 성장하는 중.

 

머신러닝의 분류

  • 지도학습 (Supervised Learning)
    • 분류 (Classification)
    • 회귀 (Regression)
    • 추천 시스템 (Recommendation Systems)
    • 시각/음성 감지 인지
    • 텍스트 분석, NLP
  • 비지도 학습 (Un-supervised Learning)
    • 클러스터링 (Clustering)
    • 차원 축소 (Dimensionality Reduction)
  • 강화학습 (Reinforcement Learning)

지도학습 : 명확한 결정값(Label)이 주어진 데이터를 학습하는 것

비지도학습 : 결정값이 주어지지 않는 데이터를 학습하는 것

 

데이터의 중요성과 머신 러닝의 단점

데이터, 알고리즘 모두 중요하지만, 앞으로는 데이터의 중요성이 매우 커질 것.

머신러닝의 가장 큰 단점은 데이터에 매우 의존적이라는 것.

GIGO

학습 시에 최적의 결과를 도출하기 위해 수립된 머신러닝 모델은 실제 환경 데이터 적용 시 과적합되기 쉽다.

복잡한 머신러닝 알고리즘으로 인해 도출된 결과에 대한 논리적인 이해가 어려울 수 있다 (머신러닝은 블랙박스)

데이터를 이해하고 효율적으로 가공, 처리, 추출해 최적의 데이터를 기반으로 알고리즘을 구동할 수 있어야

 

파이썬 기반 ML 생태계와 그 패키지

  • ML : Scikit-Learn
  • 행렬/선형대수/통계 : NumPy, SciPy
  • Data Handling : Pandas
  • Visualization : Matplotlib, Seaborn
  • IPython (Interactive Python) : Jupyter Notebook
  • (Deep Learning : Tensorflow, Keras, PyTorch)

 

NumPy 와 Pandas 의 중요성

데이터 추출 가공이 코드의 70% 이상을 차지 -NumPy, Pandas

ScikitLearn 역시 NumPy 기반으로 작성됨 (함수 인자 값이 ndarray)

ScikitLearn과 달리 NumPy와 Pandas 의 API는 방대하고, 특히 NumPy는 Documentation 이 다양하지 않음.

방대한 API 전체를 공부할 수는 없기 때문에, 기본 프레임워크와 중요 API만 습득하고, 추후에 마주치는 문제들은 구글링을 통해 체득하는 것이 낫다.

Pandas는 따로 책으로 공부할 생각이고, NumPy는 필요할 경우 조범희 선생님 강의로 추가 공부할 생각이다.

0개의 댓글