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

OpenCV ML 中統計模型的基類。 更多...

#include <opencv2/ml.hpp>

cv::ml::StatModel 的協作圖

公共型別

列舉  標誌 {
  UPDATE_MODEL = 1 ,
  RAW_OUTPUT =1 ,
  COMPRESSED_INPUT =2 ,
  PREPROCESSED_INPUT =4
}
 

公共成員函式

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
 

靜態公共成員函式

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
 

詳細描述

OpenCV ML 中統計模型的基類。

成員列舉文件

◆ 標誌

預測選項

列舉器
UPDATE_MODEL 
RAW_OUTPUT 

使該方法返回原始結果(總和),而不是類標籤

COMPRESSED_INPUT 
PREPROCESSED_INPUT 

成員函式文件

◆ calcError()

virtual float cv::ml::StatModel::calcError ( const Ptr< TrainData > & data,
bool test,
OutputArray resp ) const
virtual
Python
cv.ml.StatModel.calcError(data, test[, resp]) -> retval, resp

計算訓練或測試資料集上的誤差。

引數
data訓練資料
test如果為 true,則在資料的測試子集上計算誤差;否則,在資料的訓練子集上計算誤差。請注意,如果您載入了一個完全不同的資料集來評估已訓練的分類器,您可能根本不想使用 TrainData::setTrainTestSplitRatio 設定測試子集,並指定 test=false,以便為整個新集合計算誤差。是的,這聽起來有點令人困惑。
resp可選的輸出響應。

該方法使用 StatModel::predict 來計算誤差。對於迴歸模型,誤差計算為 RMS;對於分類器,誤差計算為錯誤分類樣本的百分比 (0%-100%)。

◆ empty()

virtual bool cv::ml::StatModel::empty ( ) const
virtual
Python
cv.ml.StatModel.empty() -> retval

如果 Algorithm 為空(例如,在剛開始時或讀取不成功之後),則返回 true。

cv::Algorithm 重新實現。

◆ getVarCount()

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

返回訓練樣本中變數的數量。

◆ isClassifier()

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

如果模型是分類器,則返回 true。

◆ isTrained()

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

如果模型已訓練,則返回 true。

◆ predict()

virtual float cv::ml::StatModel::predict ( InputArray samples,
OutputArray results = noArray(),
int flags = 0 ) const
純虛擬函式
Python
cv.ml.StatModel.predict(samples[, results[, flags]]) -> retval, results

預測提供的樣本的響應

引數
samples輸入樣本,浮點矩陣
結果結果的可選輸出矩陣。
flags可選標誌,模型相關。請參閱 cv::ml::StatModel::Flags

cv::ml::EMcv::ml::LogisticRegression 中實現。

◆ train() [1/3]

template<typename _Tp >
static Ptr< _Tp > cv::ml::StatModel::train ( const Ptr< TrainData > & data,
int flags = 0 )
inlinestatic
Python
cv.ml.StatModel.train(trainData[, flags]) -> retval
cv.ml.StatModel.train(samples, layout, responses) -> retval

使用預設引數建立並訓練模型。

該類必須實現靜態 create() 方法,該方法沒有引數或所有引數都具有預設值

◆ train() [2/3]

virtual bool cv::ml::StatModel::train ( const Ptr< TrainData > & trainData,
int flags = 0 )
virtual
Python
cv.ml.StatModel.train(trainData[, flags]) -> retval
cv.ml.StatModel.train(samples, layout, responses) -> retval

訓練統計模型。

引數
trainData可以使用 TrainData::loadFromCSV 從檔案載入的訓練資料,或者使用 TrainData::create 建立。
flags可選標誌,取決於模型。某些模型可以使用新的訓練樣本進行更新,而不是完全覆蓋(例如 NormalBayesClassifierANN_MLP)。

◆ train() [3/3]

virtual bool cv::ml::StatModel::train ( InputArray samples,
int layout,
InputArray responses )
virtual
Python
cv.ml.StatModel.train(trainData[, flags]) -> retval
cv.ml.StatModel.train(samples, layout, responses) -> retval

訓練統計模型。

引數
samples訓練樣本
layout請參閱 ml::SampleTypes
responses與訓練樣本關聯的響應向量。

此類文件由以下檔案生成