본 포스팅은 “파이썬 머신러닝 완벽가이드” - (위키북스, 권철민 지음)을 바탕으로 공부한 내용을 정리한 것입니다.
- 머신러닝의 개념
- 머신러닝의 분류
- Numpy
1. 머신러닝의 개념
머신러닝 (Machine Learning)은 일반적으로, 어플리케이션 수정 없이 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법을 통칭.
머신러닝 알고리즘은 데이터를 기반으로 통계적인 신뢰도를 강화하고, 예측 오류를 최소화하기 위한 수학적 기법을 적용.
2. 머신러닝의 분류
일반적으로 크게 세가지.
- 지도학습 (Supervised Learning)
- 분류 (Classification)
- 회귀 (Regression)
- 추천 시스템
- 시각/음성 감지/인지
- 텍스트분석, NLP (Natural Language Processing, 자연어처리)
- 비지도학습 (Un-Supervised Learning)
- 클러스터링 (Clustering)
- 차원 축소 (Dimensionality Reduction)
- 강화학습 (Reinforcement Learning)
3. 넘파이 (Numpy)
머신러닝의 가장 큰 단점은 데이터 의존적이라는 것. 좋은 품질의 데이터, 데이터 핸들링, 전처리 등이 매우 중요하다.
Garbage In, Garbage Out
데이터 핸들링을 하기에 앞서, Numerical Python을 의미하는 넘파이 (Numpy)는 파이썬에서 선형대수 기반 프로그래밍을 지원하는 대표 패키지이다.
머신러닝의 주요 알고리즘은 선형대수, 통계 등에 기반하기에 넘파이의 대량 데이터 배열 연산 기능이 필요하다.
또한 C/C++ 등의 저수준 언어 기반의 호환 API 제공으로 수행 성능도 뛰어나다.
적절한 알고리즘을 선택하기 위해서, 넘파이 이해는 머신러닝에서 필수.
Numpy ndarray
1
import numpy as np
넘파이의 기반 데이터 타입은 ndarray, 이를 이용해 다차원 배열 (Multi-dimension array)을 쉽게 생성하고 다양한 연산 수행이 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
array1 = np.array([1,2,3])
print('array1 type:',type(array1))
print('array1 array 형태:',array1.shape)
array2 = np.array([[1,2,3],
[2,3,4]])
print('array2 type:',type(array2))
print('array2 array 형태:',array2.shape)
array3 = np.array([[1,2,3]])
print('array3 type:',type(array3))
print('array3 array 형태:',array3.shape)
print('array1: {:0}차원, array2: {:1}차원, array3: {:2}차원'.format(array1.ndim,array2.ndim,array3.ndim))
[결과]
1
2
3
4
5
6
7
array1 type: <class 'numpy.ndarray'>
array1 array 형태: (3,)
array2 type: <class 'numpy.ndarray'>
array2 array 형태: (2, 3)
array3 type: <class 'numpy.ndarray'>
array3 array 형태: (1, 3)
array1: 1차원, array2: 2차원, array3: 2차원
np.array()
에 입력한 인자는 ndarray로 반환. ndarray.shape
는 차원과 크기를 튜플(tuple) 형태로, ndarray.ndim
은 차원을 보여준다.
참고
“파이썬 머신러닝 완벽가이드” - (위키북스, 권철민 지음)