Esempio n. 1
0
        public Metrics(LabelFeatureCore labelFeatureCore, LabelConverter labelConvert, DataPartitionType[] dataTypes)
        {
            this.labelFeatureCore = labelFeatureCore;
            this.dataTypes = dataTypes;
            this.optimalID = -1;

            this.labels = new float[labelFeatureCore.NumDataPoint];

            if (labelConvert != null)
            {
                for (int i = 0; i < labelFeatureCore.NumDataPoint; i++)
                {
                    this.labels[i] = labelConvert.convert(labelFeatureCore.GetLabel(i));
                }
            }
            else
            {
                for (int i = 0; i < labelFeatureCore.NumDataPoint; i++)
                {
                    this.labels[i] = labelFeatureCore.GetLabel(i);
                }
            }

            this.dataSegments = new int[(int)DataPartitionType.cTypes][];

            this.metricsCur = new float[(int)DataPartitionType.cTypes][];
            for (int i = 0; i < (int)DataPartitionType.cTypes; i++)
            {
                metricsCur[i] = new float[SIZE];
            }

            foreach (DataPartitionType dataType in dataTypes)
            {
                DataSet dataSet = labelFeatureCore.DataGroups.GetDataPartition(dataType);
                int[] dataSegment = dataSet.DataIndex;
                if (dataSegment != null)
                {
                    dataSegments[(int)dataType] = dataSegment;
                }
                else
                {
                    //we will fill in the non-existing data sections with 0
                    //throw new Exception("data partition does not exist");
                }
            }

            this.results_list = new List<Result>();
        }