The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information.... |
Home MathPack MemBL Interface of SDL_MemBL | |
Interface of SDL_MemBL |
|
const {$IFDEF PAIDVERS} SDLVersionInfo = 'membl_r1200_full'; IsLightEd = false; {$ELSE} SDLVersionInfo = 'membl_r1200_lighted'; IsLightEd = true; {$ENDIF} Release = 1200; const MBLMAXNEIGHBORS = 100; { max. number of neighbors in Mem.Based Learners } MBLVersion = '1.000'; { version number, must have 3 dec. places } type TMBLScalingMode = (mblUnscaled, mblStandardized); TMBLVarType = (mblVarIgnore, mblVarIndep, mblVarTarget); TMBLDistMode = (mblDistEuclid, mblDistManhattan, mblDistMahalanobis); TMBLLocalModel = (mblLMAverage, mblLMWgtGauss, mblLMMajority, mblLMRegress); const MBLDistModeID : array[TMBLDistMode] of string = ('Euclidean', 'Manhattan', 'Mahalanobis'); MBLScalingModeID : array[TMBLScalingMode] of string = ('Unscaled', 'Standardized'); MBLLocalModelID : array[TMBLLocalModel] of string = ('Average', 'Weighted Average', 'Majority Vote', 'Regression'); type TOnMBLModelApplied = procedure (Sender: TObject; Tag: integer; NearNix: TIntArray; NearNDist: TDoubleArray; errnum: integer) of object; TMBLxmlTags = (xmlMBLId, xmlComment, xmlModelName, xmlModelData, xmlDistMode, xmlSclMode, xmlLocalModel, xmlNumNNb, xmlInvalid); TMemBasedLearner = class (TComponent) private FModelName : string; { name of training data set } FComment : string; FMeanVarRange : TMatrix; { mean, var, min, max of all variables } FNumNearestNb : integer; { number of nearest neighbors to be used } FLocModel : TMBLLocalModel; FDistMode : TMBLDistMode; FScalingMode : TMBLScalingMode; FOnPercentDone : TOnPercentDoneEvent; FOnCheckCVDAbort: TOnCheckAbortEvent; FOnModelApplied : TOnMBLModelApplied; FNNList : TInt2DArray; FNNDist : TDouble2DArray; function GetVarType (ix: integer): TMBLVarType; procedure SetVarType (ix: integer; value: TMBLVarType); procedure SetNumNearestNb (nb: integer); function GetkNNofModelData (k, obj: integer): integer; function GetkNNDistofModelData (k, obj: integer): double; procedure DataTableChanged(Sender: TObject); function CalcDist (Sensor: TDoubleArray; MIx: integer): double; procedure PercDone (Sender: TObject; Percent: longint); function ProcessXmlTag (xmlTag: TMBLXmlTags; attr, cont: string; default: string; ParentTag: integer): integer; public ModelData : TDataTable; // model data; col. attributes indicate variable types constructor Create (AOwner: TComponent); override; destructor Destroy; override; function ApplyModel (Sensor: TDoubleArray; ExcludeObj, Tag: integer): integer; function CalcContingencyTable (VarIx, NumNb: integer; var ContTab: TInt2DArray): integer; procedure CalcNNOfModelData; function CountIndependentVars: integer; function CountTargetVars: integer; function LoadModelBin (FName: string; var DataId: string): integer; function LoadModelXML (FName: string; var DataId: string): integer; property ModelName: string read FModelName write FModelName; procedure SetAllVars (VarType: TMBLVarType); procedure StoreModelBin (FName: string; DataID: string); procedure StoreModelXML (FName: string; DataID: string); property VarType[ix: integer]: TMBLVarType read GetVarType write SetVarType; property kNNOfModelData [k,obj: integer]: integer read GetkNNofModelData; property kNNDistOfModelData [k,obj: integer]: double read GetkNNDistofModelData; published property Comment: string read FComment write FComment; property DistMode: TMBLDistMode read FDistMode write FDistMode; property LocalModel: TMBLLocalModel read FLocModel write FLocModel; property NumNearestNb: integer read FNumNearestNb write SetNumNearestNb; property ScalingMode: TMBLScalingmode read FScalingMode write FScalingMode; property OnModelApplied: TOnMBLModelApplied read FOnModelApplied write FOnModelApplied; property OnPercentDone: TOnPercentDoneEvent read FOnPercentDone write FOnPercentDone; end;
|