26 #ifndef ROOT_TMVA_MethodKNN
27 #define ROOT_TMVA_MethodKNN
54 class MethodKNN :
public MethodBase
58 MethodKNN(
const TString& jobName,
59 const TString& methodTitle,
61 const TString& theOption =
"KNN");
63 MethodKNN(DataSetInfo& theData,
64 const TString& theWeightFile);
66 virtual ~MethodKNN(
void );
68 virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t numberClasses, UInt_t numberTargets );
72 Double_t GetMvaValue( Double_t* err = 0, Double_t* errUpper = 0 );
73 const std::vector<Float_t>& GetRegressionValues();
75 using MethodBase::ReadWeightsFromStream;
77 void WriteWeightsToStream(TFile& rf)
const;
78 void AddWeightsXMLTo(
void* parent )
const;
79 void ReadWeightsFromXML(
void* wghtnode );
81 void ReadWeightsFromStream(std::istream& istr);
82 void ReadWeightsFromStream(TFile &rf);
84 const Ranking* CreateRanking();
89 void MakeClassSpecific( std::ostream&,
const TString& )
const;
92 void GetHelpMessage()
const;
97 void DeclareOptions();
98 void ProcessOptions();
99 void DeclareCompatibilityOptions();
105 void MakeKNN(
void );
108 Double_t PolnKernel(Double_t value)
const;
109 Double_t GausKernel(
const kNN::Event &event_knn,
const kNN::Event &event,
const std::vector<Double_t> &svec)
const;
111 Double_t getKernelRadius(
const kNN::List &rlist)
const;
112 const std::vector<Double_t> getRMS(
const kNN::List &rlist,
const kNN::Event &event_knn)
const;
114 double getLDAValue(
const kNN::List &rlist,
const kNN::Event &event_knn);
119 Double_t fSumOfWeightsS;
120 Double_t fSumOfWeightsB;
122 kNN::ModulekNN *fModule;
137 kNN::EventVec fEvent;
144 ClassDef(MethodKNN,0);