이미 학습된 모델에 대해 테스트 데이터의 응답을 얻고 싶으면 StatModel::predict() 함수를 사용합니다. StatModel::predict() 함수 원형은 다음과 같습니다.
virtual float StatModel::predict(InputArray samples, OutputArray results = noArray(), int flags = 0) const; |
|
• samples |
입력 벡터가 행 단위로 저장된 행렬. CV_32F |
• results |
각 입력 샘플에 대한 예측 결과가 저장된 행렬 |
• flags |
추가적인 플래그 상수. StatModel::Flags 열거형 상수 중 하나를 지정할 수 있으며, 모델에 따라 사용법이 다릅니다. |
• 반환값 |
입력 벡터가 하나인 경우에 대한 응답이 반환됩니다. |
StatModel::predict() 함수는 순수 가상 함수로 선언되어 있으며, 각각의 머신 러닝 알고리즘 구현 클래스는 자신만의 알고리즘을 이용한 예측을 수행하도록 predict() 함수를 재정의하고 있습니다. 일부 머신 러닝 알고리즘 구현 클래스는 predict() 함수를 대신할 수 있는 고유의 예측 함수를 제공하기도 합니다.
OpenCV에서 StatModel 클래스를 상속받아 만들어진 머신 러닝 알고리즘 구현 클래스에 대한 간략한 설명을 표 15-2에 정리하였습니다. 이 책에서는 이들 클래스 중에서 비교적 이해하기 쉽고 사용이 간단한 KNearest 클래스와 머신 러닝 알고리즘 중에서 성능이 좋고 사용 빈도가 높은 SVM 클래스에 대해 좀 더 자세히 알아보겠습니다. 15.2절에서는 k 최근접 이웃 알고리즘과 KNearest 클래스 사용법에 대해 알아보고, 15.3절에서는 서포트 벡터 머신 알고리즘과 SVM 클래스 사용법에 대해 설명하겠습니다.