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....



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;



Last Update: 2023-Feb-06