Скачиваний:
30
Добавлен:
01.05.2014
Размер:
2 Кб
Скачать
unit ForFilt;

interface
uses
    Attribute,
    AttributeStats,
    Classes,
    Dialogs,
    DmmConstants,
    DmmTypes,
    Exceptions,
    FastVector,
    Math,
    Instances,
    SerializableObject,
    StandardSerializableObject,
    StreamTokenizer,
    SysUtils,
    Randomizer,
    Utils;



  function DellMissVect(target:TDMInstances):TDMInstances;
  function DellMissAttr(target:TDMInstances):TDMInstances;
  function FillHole(target:TDMInstances):TDMInstances;


implementation
  function DellMissVect(target:TDMInstances):TDMInstances;
  var
    NumAttrib,i : Integer;
  Begin
    NumAttrib := target.numAttributes;
    for i:=0 to NumAttrib-1 do
      Begin
        if (target.attrMissingValues(i)>0) then target.deleteWithMissing(i);
      end;
    DellMissVect:=target;
  End;



  function DellMissAttr(target:TDMInstances):TDMInstances;
  var
    NumAttrib,i : Integer;

  Begin
    i:=0;
    NumAttrib := target.numAttributes;
    while (i<NumAttrib) do
      Begin
        if (target.attrMissingValues(i)>0) then
         begin
          target.deleteAttributeAt(i);
          i := i - 1;
          NumAttrib := target.numAttributes;
         end;
        //str(inst.attrMissingValues(i),stri);
        //ShowMessage(stri);
        i:= i+1;
      end;
    DellMissAttr:=target;
  End;


  function   FillHole(target:TDMInstances):TDMInstances;
  var
    NumAttrib,i : Integer;
    MeanVal : double;
  Begin
    NumAttrib := target.numAttributes;
    for i:=0 to NumAttrib-1 do
      Begin
        if (target.attrMissingValues(i)>0) then
        Begin
            MeanVal := target.meanOrMode(i);
            if (target.attribute(i).isNumeric()) then
                begin
                  target.replaceWithMissing(i, MeanVal);
                end;
            if (target.attribute(i).isNominal()) then
                begin
                  target.replaceWithMissing(i, MeanVal); // !!!!!!!!!!!!!!!!!!!!
                end;
        end;
        //str(inst.attrMissingValues(i),stri);
        //ShowMessage(stri);
      end;
      FillHole:=target;
  End;


end.
Соседние файлы в папке FilterModule