OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
cv::ml::KNearest 類參考抽象

該類實現了K-近鄰模型。更多...

#include <opencv2/ml.hpp>

cv::ml::KNearest 的協作圖

公共型別

列舉  型別 {
  BRUTE_FORCE =1 ,
  KDTREE =2
}
 KNearest 演算法的實現。更多...
 
- 從 cv::ml::StatModel 繼承的公共型別
列舉  標誌 {
  UPDATE_MODEL = 1 ,
  RAW_OUTPUT =1 ,
  COMPRESSED_INPUT =2 ,
  PREPROCESSED_INPUT =4
}
 

公共成員函式

virtual float findNearest (InputArray samples, int k, OutputArray results, OutputArray neighborResponses=noArray(), OutputArray dist=noArray()) const =0
 查詢鄰居並預測輸入向量的響應。
 
virtual int getAlgorithmType () const =0
 
virtual int getDefaultK () const =0
 
virtual int getEmax () const =0
 
virtual bool getIsClassifier () const =0
 
virtual void setAlgorithmType (int val)=0
 
virtual void setDefaultK (int val)=0
 
virtual void setEmax (int val)=0
 
virtual void setIsClassifier (bool val)=0
 
- 從 cv::ml::StatModel 繼承的公共成員函式
virtual float calcError (const Ptr< TrainData > &data, bool test, OutputArray resp) const
 計算訓練或測試資料集上的誤差。
 
virtual bool empty () const CV_OVERRIDE
 如果 演算法 為空(例如在最開始或讀取失敗後),則返回 true。
 
virtual int getVarCount () const =0
 返回訓練樣本中變數的數量。
 
virtual bool isClassifier () const =0
 如果模型是分類器,則返回 true。
 
virtual bool isTrained () const =0
 如果模型已訓練,則返回 true。
 
virtual float predict (InputArray samples, OutputArray results=noArray(), int flags=0) const =0
 預測提供的樣本的響應
 
virtual bool train (const Ptr< TrainData > &trainData, int flags=0)
 訓練統計模型。
 
virtual bool train (InputArray samples, int layout, InputArray responses)
 訓練統計模型。
 
- 從 cv::Algorithm 繼承的公共成員函式
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除演算法狀態。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 從檔案儲存中讀取演算法引數。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 將演算法引數儲存到檔案儲存中。
 
void write (FileStorage &fs, const String &name) const
 

靜態公共成員函式

static Ptr< KNearestcreate ()
 建立空模型。
 
static Ptr< KNearestload (const String &filepath)
 從檔案中載入並建立一個序列化的 KNearest。
 
- 從 cv::ml::StatModel 繼承的靜態公共成員函式
template<typename _Tp >
static Ptr< _Tptrain (const Ptr< TrainData > &data, int flags=0)
 使用預設引數建立並訓練模型。
 
- 從 cv::Algorithm 繼承的靜態公共成員函式
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 從檔案中載入演算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 從字串載入演算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 從檔案節點讀取演算法。
 

額外繼承成員

- 從 cv::Algorithm 繼承的保護成員函式
void writeFormat (FileStorage &fs) const
 

詳細描述

該類實現了K-近鄰模型。

另請參見
K-近鄰

成員列舉文件

◆ 型別

KNearest 演算法的實現。

列舉器
BRUTE_FORCE 
KDTREE 

成員函式文件

◆ create()

static Ptr< KNearest > cv::ml::KNearest::create ( )
static
Python
cv.ml.KNearest.create() -> retval
cv.ml.KNearest_create() -> retval

建立空模型。

該靜態方法建立一個空的 KNearest 分類器。然後應使用 StatModel::train 方法對其進行訓練。

◆ findNearest()

virtual float cv::ml::KNearest::findNearest ( InputArray samples,
int k,
OutputArray 結果,
OutputArray neighborResponses = noArray(),
OutputArray dist = noArray() ) const
純虛擬函式
Python
cv.ml.KNearest.findNearest(samples, k[, results[, neighborResponses[, dist]]]) -> retval, results, neighborResponses, dist

查詢鄰居並預測輸入向量的響應。

引數
samples按行儲存的輸入樣本。它是一個單精度浮點矩陣,大小為 `<number_of_samples> * k`。
k使用的近鄰數量。應大於 1。
結果包含每個輸入樣本的預測結果(迴歸或分類)的向量。它是一個單精度浮點向量,包含 `<number_of_samples>` 個元素。
neighborResponses對應近鄰的可選輸出值。它是一個單精度浮點矩陣,大小為 `<number_of_samples> * k`。
dist從輸入向量到對應近鄰的可選輸出距離。它是一個單精度浮點矩陣,大小為 `<number_of_samples> * k`。

對於每個輸入向量(矩陣樣本的一行),該方法找到 k 個最近鄰。在迴歸情況下,預測結果是特定向量的近鄰響應的平均值。在分類情況下,類別透過投票確定。

對於每個輸入向量,近鄰按其到向量的距離進行排序。

在使用 C++ 介面時,您可以將輸出指標指向空矩陣,函式將自行分配記憶體。

如果只傳入一個輸入向量,所有輸出矩陣都是可選的,並且預測值將由方法返回。

此函式使用 TBB 庫進行並行化。

此函式的呼叫圖如下

◆ getAlgorithmType()

virtual int cv::ml::KNearest::getAlgorithmType ( ) const
純虛擬函式
Python
cv.ml.KNearest.getAlgorithmType() -> retval

演算法型別,為 KNearest::Types 之一。

另請參見
setAlgorithmType

◆ getDefaultK()

virtual int cv::ml::KNearest::getDefaultK ( ) const
純虛擬函式
Python
cv.ml.KNearest.getDefaultK() -> retval

在 predict 方法中使用的預設近鄰數量。

另請參見
setDefaultK

◆ getEmax()

virtual int cv::ml::KNearest::getEmax ( ) const
純虛擬函式
Python
cv.ml.KNearest.getEmax() -> retval

KDTree 實現的引數。

另請參見
setEmax

◆ getIsClassifier()

virtual bool cv::ml::KNearest::getIsClassifier ( ) const
純虛擬函式
Python
cv.ml.KNearest.getIsClassifier() -> retval

是否應訓練分類或迴歸模型。

另請參見
setIsClassifier

◆ load()

static Ptr< KNearest > cv::ml::KNearest::load ( const String & filepath)
static
Python
cv.ml.KNearest.load(filepath) -> retval
cv.ml.KNearest_load(filepath) -> retval

從檔案中載入並建立一個序列化的 KNearest。

使用 KNearest::saveKNearest 序列化並存儲到磁碟。透過使用檔案路徑呼叫此函式,可以再次從該檔案載入 KNearest

引數
filepath序列化 KNearest 的路徑

◆ setAlgorithmType()

virtual void cv::ml::KNearest::setAlgorithmType ( int val)
純虛擬函式
Python
cv.ml.KNearest.setAlgorithmType(val) ->

另請參見
getAlgorithmType

◆ setDefaultK()

virtual void cv::ml::KNearest::setDefaultK ( int val)
純虛擬函式
Python
cv.ml.KNearest.setDefaultK(val) ->

另請參見
getDefaultK

◆ setEmax()

virtual void cv::ml::KNearest::setEmax ( int val)
純虛擬函式
Python
cv.ml.KNearest.setEmax(val) ->

另請參見
getEmax

◆ setIsClassifier()

virtual void cv::ml::KNearest::setIsClassifier ( bool val)
純虛擬函式
Python
cv.ml.KNearest.setIsClassifier(val) ->

另請參見
getIsClassifier

此類的文件由以下檔案生成