프로그래밍/파이썬

[Python] 머신러닝 패키지 및 공부자료

매 석 2022. 11. 10. 19:06
반응형

 

1. 머신러닝 패키지 사용 이유?

- 데이터 애널리스트의 경우 'Tableau', 'Knime', 'Spotfire' 등과 같은 데이터 분석을 사용하다가

  더 정교하게 모델의 구조나 하이퍼파라미터를 바꿔가면서 실험하고 싶을 때 사용한다.

- 데이터 사이언티스트리서처가 개발한 모델의 성능 비교가 가능한 '벤치마크'를 얻거나

  빠른 시간 내에 대략의 인사이트 도출을 위해 패키지를 사용한다.

 

2. 머신러닝 패키지 종류

1. 사이킷런(Scikit-learn)

- 강화학습을 제외한 지도학습, 비지도학습을 사이킷런을 이용해 손쉽게 사용할 수 있다.

  알고리즘뿐 아니라 데이터셋을 나눠 주는 함수, 성능 평가 지표 등 다양한 함수가 구현돼

  있을 뿐 아니라 '넘파이', '사이파이' 등과 호환이 잘돼 활용도가 높다.

 

2. 사이파이(Scipy)

- 파이썬 넘파이 객체를 활용해 수학적 연산을 도와주는 패키지로, '고윳값', '역행렬' 등의 

  선형대수 개념에 포함되는 계산뿐 아니라 간단한 수리적 '적분', '최적화', '신호처리' 등의

  함수가 포함되어 있다.

 

3. 판다스(Pandas)

- 데이터 처리의 편의성을 위해 개발되었다. 데이터 자체의 연산을 다루는 데 가장 널리 

  사용되는 패키지이다. 기본적으로 SQL과 비슷한 API를 제공하기에 기존에 DB를 

  다뤄본 사람은 물론, 초심자도 조금만 공부하면 판다스를 이용해 데이터 전처리를

  매우 쉽게 진행할 수 있다.

 

4. 캐럿(Caret)

- 사이킷런과 같이 데이터 전처리, 데이터셋 분리부터 모델학습까지 다양한 기능을

  하나의 패키지에서 지원한다. R에서 사용한다.

 

5. OpenAI 짐

- 강화학습을 위해 만든 패키지로, 강화학습에 필요한 프레임워크가 갖춰져 있어서

  자신의 환경을 구축해 새로운 알고리즘 구현하는데 많이 사용된다.

  뿐만 아니라 새로운 알고리즘의 성능을 확인할 수 있는 벤치마크 환경도 

  내장돼 있어 본인의 알고리즘 실험이 가능하다.

 

6. 딥러닝 프레임워크

- '텐서플로(TensorFlow)', '파이토치(PyTorch)', '케라스(Keras)' 등과 같이 공개된

  '딥러닝 프레임워크'를 활용한다. 이는 딥러닝 모델을 편리하게 구축하고 

  사용할 수 있는 패키지와 모듈 등을 모아 놓은 것으로, 프레임워크를 활용하면

  모델을 효율적으로 구축하고 사용할 수 있다.

 

- 보통 딥러닝을 처음 배우면 하나의 프레임워크를 선택해 익힌다. 물론 소속된 회사나

  팀이 있다면 소속에서 사용하는 프레임워크를 공부하면 된다.

  처음 학습할 프레임워크를 선택할 기준은 첫째로 '주로 사용하는 프로그래밍 언어',

  '숙련도'이다. 파이썬 사용자라면 텐서플로, 파이토치, 케라스 등과 같은 선택을,

  자바 사용자라면 'DL4J'를 선택할 수 있다. 또한 파이썬의 숙련도가 낮다면 비교적

  문법이 간결하고 코드가 직관적인 '케라스'를 선택할 수 있다.

  둘째로 '딥러닝의 용도'이다. 기존 딥러닝 모델을 빠르게 구축해 시험하고 싶다면

  케라스나 fast.ai를 선택하는 것이 좋다. 반면 딥러닝 연구를 이용해 새로운 모델을

  직접 만들고 싶다면 텐서플로나 파이토치를 선택하고, 여러 플랫폼에 딥러닝을

  적용하려면 텐서플로를 선택하는 것이 좋다. 딥러닝 모델을 구축해 AWS와 같은

  클라우드 서비스를 이용해 대규모 서비스를 제공할 계획이라면 MXNet 등을

  선택지로 고려할 수 있다.

  셋째로 '학습의 효율성'이다. 텐서플로나 파이토치는 사용자가 많기에 

  커뮤니티를 이용해 프레임워크와 관련된 질문을 하고 코드를 제공받는 등

  효율적 학습이 가능하다. 하지만 사용자가 적은 프레임워크는 상대적으로

  스스로 해결해야 하는 문제가 많기에 학습하는 데 어려움이 많다.

  따라서 스택오버플로와 같은 각종 사용자가 커뮤니티에서 도움을 받고 싶다면,

  텐서플로, 파이토치와 같이 사용자가 많은 프레임워크를 선택하는 것이 좋다.

 

3. 머신러닝 기법 공부방법

1. 머신러닝 기법의 이론과 내부 작동 원리

2. 공부한 알고리즘 직접 구현

3. 데이터셋에 머신러닝 기법 적용해 패키지 사용 방법 습득

 

각각 직종마다 공부 방법이 다르다. 위 예시는 데이터 사이언티스트와 리서처의 예시이다.

데이터 애널리스트의 경우는 이론 학습 후 바로 머신러닝 패키지의 활용법을 익히는 것이 좋다.

 

4. 공부자료

1. 코세라 - 머신러닝 입문 수업

 

Coursera | Degrees, Certificates, & Free Online Courses

Learn new job skills in online courses from industry leaders like Google, IBM, & Meta. Advance your career with top degrees from Michigan, Penn, Imperial & more.

www.coursera.org

 

2. 단단한 머신러닝 - 머신러닝 입문서

 

단단한 머신러닝 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

3. 핸즈온 머신러닝 - 프로그래밍으로 바로 머신러닝 학습

 

핸즈온 머신러닝 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

4. 딥러닝 - 입문

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io

 

5. 딥러닝 프레임워크

 

다 함께 배우고 성장하는 부스트코스

부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다.

www.boostcourse.org

 

6. 강화학습 - 온라인 수업

 

팡요랩 Pang-Yo Lab

팡요랩(Pangyo Lab)이란? 판교 근처에서 인공지능 및 개발 관련해서 자신이 공부한 내용을 공유하는 스터디입니다. (스터디 내용은 영상으로 촬영됩니다.)

www.youtube.com

 

7. 강화학습 - 교과서

 

단단한 강화학습 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com