123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845 |
- #ifndef OPENCV_ML_HPP
- #define OPENCV_ML_HPP
- #ifdef __cplusplus
- # include "opencv2/core.hpp"
- #endif
- #ifdef __cplusplus
- #include <float.h>
- #include <map>
- #include <iostream>
- namespace cv
- {
- namespace ml
- {
- enum VariableTypes
- {
- VAR_NUMERICAL =0,
- VAR_ORDERED =0,
- VAR_CATEGORICAL =1
- };
- enum ErrorTypes
- {
- TEST_ERROR = 0,
- TRAIN_ERROR = 1
- };
- enum SampleTypes
- {
- ROW_SAMPLE = 0,
- COL_SAMPLE = 1
- };
- class CV_EXPORTS_W ParamGrid
- {
- public:
-
- ParamGrid();
-
- ParamGrid(double _minVal, double _maxVal, double _logStep);
- CV_PROP_RW double minVal;
- CV_PROP_RW double maxVal;
-
- CV_PROP_RW double logStep;
-
- CV_WRAP static Ptr<ParamGrid> create(double minVal=0., double maxVal=0., double logstep=1.);
- };
- class CV_EXPORTS_W TrainData
- {
- public:
- static inline float missingValue() { return FLT_MAX; }
- virtual ~TrainData();
- CV_WRAP virtual int getLayout() const = 0;
- CV_WRAP virtual int getNTrainSamples() const = 0;
- CV_WRAP virtual int getNTestSamples() const = 0;
- CV_WRAP virtual int getNSamples() const = 0;
- CV_WRAP virtual int getNVars() const = 0;
- CV_WRAP virtual int getNAllVars() const = 0;
- CV_WRAP virtual void getSample(InputArray varIdx, int sidx, float* buf) const = 0;
- CV_WRAP virtual Mat getSamples() const = 0;
- CV_WRAP virtual Mat getMissing() const = 0;
-
- CV_WRAP virtual Mat getTrainSamples(int layout=ROW_SAMPLE,
- bool compressSamples=true,
- bool compressVars=true) const = 0;
-
- CV_WRAP virtual Mat getTrainResponses() const = 0;
-
- CV_WRAP virtual Mat getTrainNormCatResponses() const = 0;
- CV_WRAP virtual Mat getTestResponses() const = 0;
- CV_WRAP virtual Mat getTestNormCatResponses() const = 0;
- CV_WRAP virtual Mat getResponses() const = 0;
- CV_WRAP virtual Mat getNormCatResponses() const = 0;
- CV_WRAP virtual Mat getSampleWeights() const = 0;
- CV_WRAP virtual Mat getTrainSampleWeights() const = 0;
- CV_WRAP virtual Mat getTestSampleWeights() const = 0;
- CV_WRAP virtual Mat getVarIdx() const = 0;
- CV_WRAP virtual Mat getVarType() const = 0;
- CV_WRAP Mat getVarSymbolFlags() const;
- CV_WRAP virtual int getResponseType() const = 0;
- CV_WRAP virtual Mat getTrainSampleIdx() const = 0;
- CV_WRAP virtual Mat getTestSampleIdx() const = 0;
- CV_WRAP virtual void getValues(int vi, InputArray sidx, float* values) const = 0;
- virtual void getNormCatValues(int vi, InputArray sidx, int* values) const = 0;
- CV_WRAP virtual Mat getDefaultSubstValues() const = 0;
- CV_WRAP virtual int getCatCount(int vi) const = 0;
-
- CV_WRAP virtual Mat getClassLabels() const = 0;
- CV_WRAP virtual Mat getCatOfs() const = 0;
- CV_WRAP virtual Mat getCatMap() const = 0;
-
- CV_WRAP virtual void setTrainTestSplit(int count, bool shuffle=true) = 0;
-
- CV_WRAP virtual void setTrainTestSplitRatio(double ratio, bool shuffle=true) = 0;
- CV_WRAP virtual void shuffleTrainTest() = 0;
-
- CV_WRAP Mat getTestSamples() const;
-
- CV_WRAP void getNames(std::vector<String>& names) const;
- CV_WRAP static Mat getSubVector(const Mat& vec, const Mat& idx);
-
- static Ptr<TrainData> loadFromCSV(const String& filename,
- int headerLineCount,
- int responseStartIdx=-1,
- int responseEndIdx=-1,
- const String& varTypeSpec=String(),
- char delimiter=',',
- char missch='?');
-
- CV_WRAP static Ptr<TrainData> create(InputArray samples, int layout, InputArray responses,
- InputArray varIdx=noArray(), InputArray sampleIdx=noArray(),
- InputArray sampleWeights=noArray(), InputArray varType=noArray());
- };
- class CV_EXPORTS_W StatModel : public Algorithm
- {
- public:
-
- enum Flags {
- UPDATE_MODEL = 1,
- RAW_OUTPUT=1,
- COMPRESSED_INPUT=2,
- PREPROCESSED_INPUT=4
- };
-
- CV_WRAP virtual int getVarCount() const = 0;
- CV_WRAP virtual bool empty() const;
-
- CV_WRAP virtual bool isTrained() const = 0;
-
- CV_WRAP virtual bool isClassifier() const = 0;
-
- CV_WRAP virtual bool train( const Ptr<TrainData>& trainData, int flags=0 );
-
- CV_WRAP virtual bool train( InputArray samples, int layout, InputArray responses );
-
- CV_WRAP virtual float calcError( const Ptr<TrainData>& data, bool test, OutputArray resp ) const;
-
- CV_WRAP virtual float predict( InputArray samples, OutputArray results=noArray(), int flags=0 ) const = 0;
-
- template<typename _Tp> static Ptr<_Tp> train(const Ptr<TrainData>& data, int flags=0)
- {
- Ptr<_Tp> model = _Tp::create();
- return !model.empty() && model->train(data, flags) ? model : Ptr<_Tp>();
- }
- };
- class CV_EXPORTS_W NormalBayesClassifier : public StatModel
- {
- public:
-
- CV_WRAP virtual float predictProb( InputArray inputs, OutputArray outputs,
- OutputArray outputProbs, int flags=0 ) const = 0;
-
- CV_WRAP static Ptr<NormalBayesClassifier> create();
-
- CV_WRAP static Ptr<NormalBayesClassifier> load(const String& filepath , const String& nodeName = String());
- };
- class CV_EXPORTS_W KNearest : public StatModel
- {
- public:
-
-
- CV_WRAP virtual int getDefaultK() const = 0;
-
- CV_WRAP virtual void setDefaultK(int val) = 0;
-
-
- CV_WRAP virtual bool getIsClassifier() const = 0;
-
- CV_WRAP virtual void setIsClassifier(bool val) = 0;
-
-
- CV_WRAP virtual int getEmax() const = 0;
-
- CV_WRAP virtual void setEmax(int val) = 0;
-
-
- CV_WRAP virtual int getAlgorithmType() const = 0;
-
- CV_WRAP virtual void setAlgorithmType(int val) = 0;
-
- CV_WRAP virtual float findNearest( InputArray samples, int k,
- OutputArray results,
- OutputArray neighborResponses=noArray(),
- OutputArray dist=noArray() ) const = 0;
-
- enum Types
- {
- BRUTE_FORCE=1,
- KDTREE=2
- };
-
- CV_WRAP static Ptr<KNearest> create();
- };
- class CV_EXPORTS_W SVM : public StatModel
- {
- public:
- class CV_EXPORTS Kernel : public Algorithm
- {
- public:
- virtual int getType() const = 0;
- virtual void calc( int vcount, int n, const float* vecs, const float* another, float* results ) = 0;
- };
-
-
- CV_WRAP virtual int getType() const = 0;
-
- CV_WRAP virtual void setType(int val) = 0;
-
-
- CV_WRAP virtual double getGamma() const = 0;
-
- CV_WRAP virtual void setGamma(double val) = 0;
-
-
- CV_WRAP virtual double getCoef0() const = 0;
-
- CV_WRAP virtual void setCoef0(double val) = 0;
-
-
- CV_WRAP virtual double getDegree() const = 0;
-
- CV_WRAP virtual void setDegree(double val) = 0;
-
-
- CV_WRAP virtual double getC() const = 0;
-
- CV_WRAP virtual void setC(double val) = 0;
-
-
- CV_WRAP virtual double getNu() const = 0;
-
- CV_WRAP virtual void setNu(double val) = 0;
-
-
- CV_WRAP virtual double getP() const = 0;
-
- CV_WRAP virtual void setP(double val) = 0;
-
-
- CV_WRAP virtual cv::Mat getClassWeights() const = 0;
-
- CV_WRAP virtual void setClassWeights(const cv::Mat &val) = 0;
-
-
- CV_WRAP virtual cv::TermCriteria getTermCriteria() const = 0;
-
- CV_WRAP virtual void setTermCriteria(const cv::TermCriteria &val) = 0;
-
- CV_WRAP virtual int getKernelType() const = 0;
-
- CV_WRAP virtual void setKernel(int kernelType) = 0;
-
- virtual void setCustomKernel(const Ptr<Kernel> &_kernel) = 0;
-
- enum Types {
-
- C_SVC=100,
-
- NU_SVC=101,
-
- ONE_CLASS=102,
-
- EPS_SVR=103,
-
- NU_SVR=104
- };
-
- enum KernelTypes {
-
- CUSTOM=-1,
-
- LINEAR=0,
-
- POLY=1,
-
- RBF=2,
-
- SIGMOID=3,
-
- CHI2=4,
-
- INTER=5
- };
-
- enum ParamTypes {
- C=0,
- GAMMA=1,
- P=2,
- NU=3,
- COEF=4,
- DEGREE=5
- };
-
- virtual bool trainAuto( const Ptr<TrainData>& data, int kFold = 10,
- ParamGrid Cgrid = getDefaultGrid(C),
- ParamGrid gammaGrid = getDefaultGrid(GAMMA),
- ParamGrid pGrid = getDefaultGrid(P),
- ParamGrid nuGrid = getDefaultGrid(NU),
- ParamGrid coeffGrid = getDefaultGrid(COEF),
- ParamGrid degreeGrid = getDefaultGrid(DEGREE),
- bool balanced=false) = 0;
-
- CV_WRAP bool trainAuto(InputArray samples,
- int layout,
- InputArray responses,
- int kFold = 10,
- Ptr<ParamGrid> Cgrid = SVM::getDefaultGridPtr(SVM::C),
- Ptr<ParamGrid> gammaGrid = SVM::getDefaultGridPtr(SVM::GAMMA),
- Ptr<ParamGrid> pGrid = SVM::getDefaultGridPtr(SVM::P),
- Ptr<ParamGrid> nuGrid = SVM::getDefaultGridPtr(SVM::NU),
- Ptr<ParamGrid> coeffGrid = SVM::getDefaultGridPtr(SVM::COEF),
- Ptr<ParamGrid> degreeGrid = SVM::getDefaultGridPtr(SVM::DEGREE),
- bool balanced=false);
-
- CV_WRAP virtual Mat getSupportVectors() const = 0;
-
- CV_WRAP Mat getUncompressedSupportVectors() const;
-
- CV_WRAP virtual double getDecisionFunction(int i, OutputArray alpha, OutputArray svidx) const = 0;
-
- static ParamGrid getDefaultGrid( int param_id );
-
- CV_WRAP static Ptr<ParamGrid> getDefaultGridPtr( int param_id );
-
- CV_WRAP static Ptr<SVM> create();
-
- CV_WRAP static Ptr<SVM> load(const String& filepath);
- };
- class CV_EXPORTS_W EM : public StatModel
- {
- public:
-
- enum Types {
-
- COV_MAT_SPHERICAL=0,
-
- COV_MAT_DIAGONAL=1,
-
- COV_MAT_GENERIC=2,
- COV_MAT_DEFAULT=COV_MAT_DIAGONAL
- };
-
- enum {DEFAULT_NCLUSTERS=5, DEFAULT_MAX_ITERS=100};
-
- enum {START_E_STEP=1, START_M_STEP=2, START_AUTO_STEP=0};
-
-
- CV_WRAP virtual int getClustersNumber() const = 0;
-
- CV_WRAP virtual void setClustersNumber(int val) = 0;
-
-
- CV_WRAP virtual int getCovarianceMatrixType() const = 0;
-
- CV_WRAP virtual void setCovarianceMatrixType(int val) = 0;
-
-
- CV_WRAP virtual TermCriteria getTermCriteria() const = 0;
-
- CV_WRAP virtual void setTermCriteria(const TermCriteria &val) = 0;
-
- CV_WRAP virtual Mat getWeights() const = 0;
-
- CV_WRAP virtual Mat getMeans() const = 0;
-
- CV_WRAP virtual void getCovs(CV_OUT std::vector<Mat>& covs) const = 0;
-
- CV_WRAP virtual float predict( InputArray samples, OutputArray results=noArray(), int flags=0 ) const = 0;
-
- CV_WRAP virtual Vec2d predict2(InputArray sample, OutputArray probs) const = 0;
-
- CV_WRAP virtual bool trainEM(InputArray samples,
- OutputArray logLikelihoods=noArray(),
- OutputArray labels=noArray(),
- OutputArray probs=noArray()) = 0;
-
- CV_WRAP virtual bool trainE(InputArray samples, InputArray means0,
- InputArray covs0=noArray(),
- InputArray weights0=noArray(),
- OutputArray logLikelihoods=noArray(),
- OutputArray labels=noArray(),
- OutputArray probs=noArray()) = 0;
-
- CV_WRAP virtual bool trainM(InputArray samples, InputArray probs0,
- OutputArray logLikelihoods=noArray(),
- OutputArray labels=noArray(),
- OutputArray probs=noArray()) = 0;
-
- CV_WRAP static Ptr<EM> create();
-
- CV_WRAP static Ptr<EM> load(const String& filepath , const String& nodeName = String());
- };
- class CV_EXPORTS_W DTrees : public StatModel
- {
- public:
-
- enum Flags { PREDICT_AUTO=0, PREDICT_SUM=(1<<8), PREDICT_MAX_VOTE=(2<<8), PREDICT_MASK=(3<<8) };
-
-
- CV_WRAP virtual int getMaxCategories() const = 0;
-
- CV_WRAP virtual void setMaxCategories(int val) = 0;
-
-
- CV_WRAP virtual int getMaxDepth() const = 0;
-
- CV_WRAP virtual void setMaxDepth(int val) = 0;
-
-
- CV_WRAP virtual int getMinSampleCount() const = 0;
-
- CV_WRAP virtual void setMinSampleCount(int val) = 0;
-
-
- CV_WRAP virtual int getCVFolds() const = 0;
-
- CV_WRAP virtual void setCVFolds(int val) = 0;
-
-
- CV_WRAP virtual bool getUseSurrogates() const = 0;
-
- CV_WRAP virtual void setUseSurrogates(bool val) = 0;
-
-
- CV_WRAP virtual bool getUse1SERule() const = 0;
-
- CV_WRAP virtual void setUse1SERule(bool val) = 0;
-
-
- CV_WRAP virtual bool getTruncatePrunedTree() const = 0;
-
- CV_WRAP virtual void setTruncatePrunedTree(bool val) = 0;
-
-
- CV_WRAP virtual float getRegressionAccuracy() const = 0;
-
- CV_WRAP virtual void setRegressionAccuracy(float val) = 0;
-
-
- CV_WRAP virtual cv::Mat getPriors() const = 0;
-
- CV_WRAP virtual void setPriors(const cv::Mat &val) = 0;
-
- class CV_EXPORTS Node
- {
- public:
- Node();
- double value;
-
- int classIdx;
-
- int parent;
- int left;
- int right;
- int defaultDir;
-
- int split;
- };
-
- class CV_EXPORTS Split
- {
- public:
- Split();
- int varIdx;
- bool inversed;
-
- float quality;
- int next;
- float c;
- int subsetOfs;
- };
-
- virtual const std::vector<int>& getRoots() const = 0;
-
- virtual const std::vector<Node>& getNodes() const = 0;
-
- virtual const std::vector<Split>& getSplits() const = 0;
-
- virtual const std::vector<int>& getSubsets() const = 0;
-
- CV_WRAP static Ptr<DTrees> create();
-
- CV_WRAP static Ptr<DTrees> load(const String& filepath , const String& nodeName = String());
- };
- class CV_EXPORTS_W RTrees : public DTrees
- {
- public:
-
-
- CV_WRAP virtual bool getCalculateVarImportance() const = 0;
-
- CV_WRAP virtual void setCalculateVarImportance(bool val) = 0;
-
-
- CV_WRAP virtual int getActiveVarCount() const = 0;
-
- CV_WRAP virtual void setActiveVarCount(int val) = 0;
-
-
- CV_WRAP virtual TermCriteria getTermCriteria() const = 0;
-
- CV_WRAP virtual void setTermCriteria(const TermCriteria &val) = 0;
-
- CV_WRAP virtual Mat getVarImportance() const = 0;
-
- CV_WRAP void getVotes(InputArray samples, OutputArray results, int flags) const;
-
- CV_WRAP static Ptr<RTrees> create();
-
- CV_WRAP static Ptr<RTrees> load(const String& filepath , const String& nodeName = String());
- };
- class CV_EXPORTS_W Boost : public DTrees
- {
- public:
-
-
- CV_WRAP virtual int getBoostType() const = 0;
-
- CV_WRAP virtual void setBoostType(int val) = 0;
-
-
- CV_WRAP virtual int getWeakCount() const = 0;
-
- CV_WRAP virtual void setWeakCount(int val) = 0;
-
-
- CV_WRAP virtual double getWeightTrimRate() const = 0;
-
- CV_WRAP virtual void setWeightTrimRate(double val) = 0;
-
- enum Types {
- DISCRETE=0,
- REAL=1,
-
- LOGIT=2,
- GENTLE=3
-
- };
-
- CV_WRAP static Ptr<Boost> create();
-
- CV_WRAP static Ptr<Boost> load(const String& filepath , const String& nodeName = String());
- };
- class CV_EXPORTS_W ANN_MLP : public StatModel
- {
- public:
-
- enum TrainingMethods {
- BACKPROP=0,
- RPROP=1
- };
-
- CV_WRAP virtual void setTrainMethod(int method, double param1 = 0, double param2 = 0) = 0;
-
- CV_WRAP virtual int getTrainMethod() const = 0;
-
- CV_WRAP virtual void setActivationFunction(int type, double param1 = 0, double param2 = 0) = 0;
-
- CV_WRAP virtual void setLayerSizes(InputArray _layer_sizes) = 0;
-
- CV_WRAP virtual cv::Mat getLayerSizes() const = 0;
-
-
- CV_WRAP virtual TermCriteria getTermCriteria() const = 0;
-
- CV_WRAP virtual void setTermCriteria(TermCriteria val) = 0;
-
-
- CV_WRAP virtual double getBackpropWeightScale() const = 0;
-
- CV_WRAP virtual void setBackpropWeightScale(double val) = 0;
-
-
- CV_WRAP virtual double getBackpropMomentumScale() const = 0;
-
- CV_WRAP virtual void setBackpropMomentumScale(double val) = 0;
-
-
- CV_WRAP virtual double getRpropDW0() const = 0;
-
- CV_WRAP virtual void setRpropDW0(double val) = 0;
-
-
- CV_WRAP virtual double getRpropDWPlus() const = 0;
-
- CV_WRAP virtual void setRpropDWPlus(double val) = 0;
-
-
- CV_WRAP virtual double getRpropDWMinus() const = 0;
-
- CV_WRAP virtual void setRpropDWMinus(double val) = 0;
-
-
- CV_WRAP virtual double getRpropDWMin() const = 0;
-
- CV_WRAP virtual void setRpropDWMin(double val) = 0;
-
-
- CV_WRAP virtual double getRpropDWMax() const = 0;
-
- CV_WRAP virtual void setRpropDWMax(double val) = 0;
-
- enum ActivationFunctions {
-
- IDENTITY = 0,
-
- SIGMOID_SYM = 1,
-
- GAUSSIAN = 2
- };
-
- enum TrainFlags {
-
- UPDATE_WEIGHTS = 1,
-
- NO_INPUT_SCALE = 2,
-
- NO_OUTPUT_SCALE = 4
- };
- CV_WRAP virtual Mat getWeights(int layerIdx) const = 0;
-
- CV_WRAP static Ptr<ANN_MLP> create();
-
- CV_WRAP static Ptr<ANN_MLP> load(const String& filepath);
- };
- class CV_EXPORTS_W LogisticRegression : public StatModel
- {
- public:
-
-
- CV_WRAP virtual double getLearningRate() const = 0;
-
- CV_WRAP virtual void setLearningRate(double val) = 0;
-
-
- CV_WRAP virtual int getIterations() const = 0;
-
- CV_WRAP virtual void setIterations(int val) = 0;
-
-
- CV_WRAP virtual int getRegularization() const = 0;
-
- CV_WRAP virtual void setRegularization(int val) = 0;
-
-
- CV_WRAP virtual int getTrainMethod() const = 0;
-
- CV_WRAP virtual void setTrainMethod(int val) = 0;
-
-
- CV_WRAP virtual int getMiniBatchSize() const = 0;
-
- CV_WRAP virtual void setMiniBatchSize(int val) = 0;
-
-
- CV_WRAP virtual TermCriteria getTermCriteria() const = 0;
-
- CV_WRAP virtual void setTermCriteria(TermCriteria val) = 0;
-
- enum RegKinds {
- REG_DISABLE = -1,
- REG_L1 = 0,
- REG_L2 = 1
- };
-
- enum Methods {
- BATCH = 0,
- MINI_BATCH = 1
- };
-
- CV_WRAP virtual float predict( InputArray samples, OutputArray results=noArray(), int flags=0 ) const = 0;
-
- CV_WRAP virtual Mat get_learnt_thetas() const = 0;
-
- CV_WRAP static Ptr<LogisticRegression> create();
-
- CV_WRAP static Ptr<LogisticRegression> load(const String& filepath , const String& nodeName = String());
- };
- class CV_EXPORTS_W SVMSGD : public cv::ml::StatModel
- {
- public:
-
- enum SvmsgdType
- {
- SGD,
- ASGD
- };
-
- enum MarginType
- {
- SOFT_MARGIN,
- HARD_MARGIN
- };
-
- CV_WRAP virtual Mat getWeights() = 0;
-
- CV_WRAP virtual float getShift() = 0;
-
- CV_WRAP static Ptr<SVMSGD> create();
-
- CV_WRAP static Ptr<SVMSGD> load(const String& filepath , const String& nodeName = String());
-
- CV_WRAP virtual void setOptimalParameters(int svmsgdType = SVMSGD::ASGD, int marginType = SVMSGD::SOFT_MARGIN) = 0;
-
-
- CV_WRAP virtual int getSvmsgdType() const = 0;
-
- CV_WRAP virtual void setSvmsgdType(int svmsgdType) = 0;
-
-
- CV_WRAP virtual int getMarginType() const = 0;
-
- CV_WRAP virtual void setMarginType(int marginType) = 0;
-
-
- CV_WRAP virtual float getMarginRegularization() const = 0;
-
- CV_WRAP virtual void setMarginRegularization(float marginRegularization) = 0;
-
-
- CV_WRAP virtual float getInitialStepSize() const = 0;
-
- CV_WRAP virtual void setInitialStepSize(float InitialStepSize) = 0;
-
-
- CV_WRAP virtual float getStepDecreasingPower() const = 0;
-
- CV_WRAP virtual void setStepDecreasingPower(float stepDecreasingPower) = 0;
-
-
- CV_WRAP virtual TermCriteria getTermCriteria() const = 0;
-
- CV_WRAP virtual void setTermCriteria(const cv::TermCriteria &val) = 0;
- };
- CV_EXPORTS void randMVNormal( InputArray mean, InputArray cov, int nsamples, OutputArray samples);
- CV_EXPORTS void createConcentricSpheresTestSet( int nsamples, int nfeatures, int nclasses,
- OutputArray samples, OutputArray responses);
- }
- }
- #endif
- #endif
|