본문 바로가기

Research

[Deeplearning.AI] python 용 Machine Learning 라이브러리 비교

Deeplearning.AI 블로그에 python 패키지중 Machine learning 관련 라이브러리를 비교한 유익한 게시물이 최근 올라와 번역기를 돌려 공유해본다

 

Scikit-learn: 머신러닝이 필요한 경우

 

정의: Scikit-learn은 기계 학습 알고리즘을 구현하기 위한 Python 라이브러리입니다. 

배경: David Cournapeau라는 개발자는 2007년 학생 시절에 scikit-learn을 처음 출시했습니다. 오픈 소스 커뮤니티는 이를 빠르게 채택했고 수년에 걸쳐 여러 번 업데이트했습니다. 

기능: Scikit-learn의 패키지는 데이터 모델링에 중점을 둡니다. 

  • Scikit-learn에는 벡터 머신, 랜덤 포레스트, 그래디언트 부스팅, k-평균 클러스터링, DBSCAN 등 모든 핵심 기계 학습 알고리즘이 포함되어 있습니다. 
  • 데이터 정리, 준비 및 계산을 위해 NumPy 및 SciPy(둘 다 아래에 설명됨)와 원활하게 작동하도록 설계되었습니다. 
  • 데이터를 로드하고 훈련 및 테스트 세트로 분할하는 모듈이 있습니다.
  • 텍스트 및 이미지 데이터에 대한 특징 추출을 지원합니다.

적합한 대상: Scikit-learn은 기계 학습 분야에서 일하는 모든 사람에게 필수품입니다. 분류, 회귀, 클러스터링, 모델 선택 등을 위한 알고리즘을 구현해야 하는 경우 사용할 수 있는 최고의 라이브러리 중 하나로 간주됩니다. 

단점: Scikit-learn은 딥 러닝이 시작되기 전에 구축되었습니다. 핵심 기계 학습 및 데이터 과학 작업에 적합하지만 신경망을 구축하는 경우 TensorFlow 또는 Pytorch(아래)가 필요합니다. 
최고의 학습 장소: Data School에서 Scikit-Learn을 사용하여 Python에서 기계 학습 . (참고: Scikit-learn은 배우기 가장 쉬운 Python 라이브러리 중 하나입니다. Python 자체에 능숙해지면 Scikit-learn을 쉽게 사용할 수 있습니다.)

 

 

NumPy: 숫자를 처리해야 하는 경우

 

정의: NumPy는 배열 또는 동종 데이터의 대규모 컬렉션 작업을 위한 Python 패키지입니다. 숫자가 열과 행에 저장되는 스프레드시트와 같은 배열을 생각할 수 있습니다.

배경: Python은 1991년에 출시되었을 때 원래 수치 계산을 위한 것이 아니었습니다. 그럼에도 불구하고 Python의 사용 용이성은 초기에 과학계의 관심을 끌었습니다. 수년에 걸쳐 오픈 소스 커뮤니티는 수치 컴퓨팅을 위한 일련의 패키지를 개발했습니다. 2005년에 개발자 Travis Oliphant는 10년 이상의 오픈 소스 개발을 그가 NumPy라고 부르는 수치 계산을 위한 단일 라이브러리로 결합했습니다. 

기능: NumPy의 핵심 기능은 어레이 지원으로, 이를 통해 대규모 데이터 컬렉션을 신속하게 처리하고 조작할 수 있습니다.

  • NumPy의 배열은 n차원일 수 있습니다. 즉, 데이터는 숫자의 단일 열이거나 숫자의 여러 열과 행일 수 있습니다. 
  • NumPy에는 일부 선형 대수 함수를 수행하기 위한 모듈이 있습니다. 
  • 또한 숫자 배열을 그래프로 표시하고 플로팅하기 위한 모듈도 있습니다. 
  • NumPy 배열의 데이터는 동질적입니다. 즉, 모두 동일한 유형(숫자, 문자열, 부울 값 등)으로 정의되어야 합니다. 즉, 데이터가 효율적으로 처리됩니다. 

최상의 용도: 고급 데이터 과학 또는 기계 학습 작업을 위해 데이터를 조작하고 처리합니다. 숫자를 처리하려면 NumPy가 필요합니다. 

단점: NumPy 배열은 동종이므로 혼합 데이터에 적합하지 않습니다. Python 목록을 사용하는 것이 좋습니다. 또한 NumPy의 성능은 500,000개 이상의 열로 작업할 때 떨어지는 경향이 있습니다.
학습하기 가장 좋은 곳: Coursera의 NumPy 및 Python을 사용한 선형 회귀 .

 

Linear Regression with NumPy and Python

2시간 이내에 이 안내 프로젝트를 완료하세요. Welcome to this project-based course on Linear Regression with NumPy and Python. In this project, you will do all the machine ...

www.coursera.org

 

 

 

Pandas: 데이터를 조작해야 하는 경우

정의: Pandas는 여러 유형의 레이블이 지정된 데이터를 동시에 작업하기 위한 패키지입니다. 예를 들어 숫자, 알파벳 및 문자열 데이터가 포함된 CSV 파일을 분석해야 하는 경우에 사용합니다. 

배경: Wes McKinney는 2008년에 Pandas를 출시했습니다. Pandas는 NumPy를 기반으로 하며(실제로 Pandas를 사용하려면 NumPy가 설치되어 있어야 함) 이기종 데이터와 함께 작동하도록 해당 패키지를 확장합니다. 

기능: Pandas의 핵심 기능은 사용자가 다양한 분석 작업을 수행할 수 있는 다양한 데이터 구조입니다. 

  • Pandas에는 모양 변경, 조인, 병합 및 피벗을 포함하여 데이터 조작을 위한 다양한 모듈이 있습니다. 
  • Pandas에는 데이터 시각화 기능이 있습니다.
  • 사용자는 외부 라이브러리를 호출하지 않고도 미적분 및 통계를 포함한 수학적 연산을 수행할 수 있습니다. 
  • 누락된 데이터를 해결하는 데 도움이 되는 모듈이 있습니다.

최고: 데이터 분석. 

단점: 일반 Python과 Pandas 사이를 전환하는 것은 혼란스러울 수 있습니다. 후자는 구문이 약간 더 복잡하기 때문입니다. Pandas는 또한 가파른 학습 곡선을 가지고 있습니다. 열악한 문서와 결합된 이러한 요인으로 인해 픽업이 어려울 수 있습니다. 
배우기에 가장 좋은 곳: DeepLearning.AI에서 Pandas를 소개 합니다 .

 

 

 

SciPy: 데이터 과학을 위해 수학을 해야 하는 경우

 

정의: SciPy 는 과학 컴퓨팅을 위한 Python 라이브러리입니다. 여기에는 과학자가 실험을 수행하거나 분석하는 데 도움이 되는 계산을 수행하기 위한 패키지와 모듈이 포함되어 있습니다. 

배경 : 1990년대 말과 2000년대 초에 Python 오픈 소스 커뮤니티는 과학 커뮤니티의 요구를 충족하기 위한 도구 모음 작업을 시작했습니다. 2001년에는 이러한 도구를 SciPy로 출시했습니다. 커뮤니티는 활성 상태를 유지하며 항상 새로운 기능을 업데이트하고 추가합니다. 

기능: SciPy의 패키지는 미적분, 선형 대수, 통계, 확률 등의 수학적 기법의 완전한 툴킷으로 구성됩니다. 

  • 데이터 과학자에게 가장 인기 있는 패키지 중 일부는 보간, K-평균 테스트, 수치 적분, 푸리에 변환, 직교 거리 회귀 및 최적화용입니다.
  • SciPy에는 이미지 처리 및 신호 처리를 위한 패키지도 포함되어 있습니다. 
  • Weave 기능을 사용하면 Python 내에서 C/C++로 코드를 작성할 수 있습니다. 

적합한 대상: SciPy는 데이터 과학자의 가장 친한 친구입니다. 

단점: 일부 사용자는 SciPy의 문서가 부족하다는 사실을 발견 하고 일부 패키지가 MatLab에서 발견되는 유사한 패키지보다 열등하다고 비판했습니다. 

최고의 학습 장소: Ahmad Bazzi의 SciPy 프로그래밍 .