1. 머신 러닝 알고리즘 객체 생성
cv2.ml.ANN_MLP_create() -> retval
cv2.ml.KNearest_create() -> retval
cv2.ml.SVM_create() -> retval
retval : 각 머신 러닝 알고리즘 객체
2. 머신 러닝 알고리즘 학습
cv2.ml_StatModel.train(samples, layout, responses) -> retval
samples: 학습 데이터 행렬. numpy.ndarray. shape=(N, d), dtype=numpy.float32
layout: 학습 데이터 배치 방법
=>cv2.ROW_SAMPLE: 하나의 데이터가 한 행으로 구성됨
cv2.COL_SAMPLE: 하나의 데이터가 한 열로 구성됨
responses: 각 학습 데이터에 대응되는 응답(레이블) 행렬. numpy.ndarray. shape=(N, 1), dtype=numpy.int32 또는 numpy.float32
retval: 학습이 성공하면 True
3. 머신 러닝 알고리즘 예측
cv2.ml_StatModel.predict(samples, results=None, flags=None) -> retval, results
samples: 입력 벡터가 행 단위로 저장된 행렬. numpy.ndarray. shape=(N, d), dtype=numpy.float32
results: 각 입력 샘플에 대한 예측(분류 또는 회귀) 결과를 저장한 행렬. numpy.ndarray. shape=(N, ) 또는 (N, 1). dtype=numpy.int32 또는 numpy.float32
flags: 추가적인 플래그. 기본값은 0. cv2.ml.STAT_MODEL_RAW_OUTPUT을 지정하면 클래스 레이블이 아닌 실제 계산 결과 값을 출력
retval: 알고리즘에 따라 다름
k 최근접 이웃 알고리즘 즉, (kNN, k-Nearest Neighbor) 알고리즘이란?
• 특징 공간에서 테스트 데이터와 가장 가까이 있는 K개의 학습 데이터를 찾아 분류 또는 회귀를 수행하는 지도 학습 알고리즘의 하나
4-1. KNN 알고리즘 객체 생성
cv2.ml.KNearest_create() -> retval
retval: cv2.ml_KNearest 객체
4-2. KNN 알고리즘으로 입력 데이터의 클래스 예측
cv.ml_KNearest.findNearest(samples, k, results=None, neighborResponses=None, dist=None , flags=None) -> retval, results, neighborResponses, dist
samples: 입력 벡터가 행 단위로 저장된 입력 샘플 행렬. numpy.ndarray. shape=(N, d), dtype=numpy.float32
k: 사용할 최근접 이웃 개수
results: 각 입력 샘플에 대한 예측(분류 또는 회귀) 결과를 저장한 행렬. numpy.ndarray. shape=(N, 1), dtype=numpy.float32
neighborResponses: 예측에 사용된 k개의 최근접 이웃 클래스 정보 행렬. numpy.ndarray. shape=(N, k), dtype=numpy.float32
dist: 입력 벡터와 예측에 사용된 k개의 최근접 이웃과의 거리를 저장한 행렬. numpy.ndarray. shape=(N, k), dtype=numpy.float32
retval: 입력 벡터가 하나인 경우에 대한 응답
'workSpace > PYTHON' 카테고리의 다른 글
OD Tech Tree for knowledge (0) | 2021.04.26 |
---|---|
[openCV] opencv 작업에 도움되는 로직 (0) | 2021.02.22 |
[openCV] 특징점 검출과 매칭 (0) | 2021.02.17 |
[openCV] 영상 분할 및 객체 (0) | 2021.02.17 |
[openCV] 이진 영상 처리 (0) | 2021.02.16 |