OpenCV 4.13.0
開源計算機視覺庫 (Open Source Computer Vision)
正在載入...
正在搜尋...
未找到匹配項
cv::ml::KNearest 類參考抽象

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

#include <opencv2/ml.hpp>

cv::ml::KNearest 的協作圖

公開型別

enum  型別 {
  BRUTE_FORCE =1 ,
  KDTREE =2
}
 KNearest 演算法的實現。 更多...
 
- 從 cv::ml::StatModel 繼承的公共型別
enum  標誌 {
  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
 如果 Algorithm 為空(例如,在最開始或讀取不成功後),則返回 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 演算法的實現。

列舉值 (Enumerator)
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 results,
OutputArray neighborResponses = noArray(),
OutputArray dist = noArray() ) const
純虛擬函式
Python
cv.ml.KNearest.findNearest(samples, k[, results[, neighborResponses[, dist]]]) -> 返回值, 結果, 鄰居響應, 距離

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

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

另請參閱
getAlgorithmType

◆ setDefaultK()

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

另請參閱
getDefaultK

◆ setEmax()

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

另請參閱
getEmax

◆ setIsClassifier()

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

另請參閱
getIsClassifier

該類的文件由以下檔案生成: