예제 #1
0
        void _Add(IColumn column, int index)
        {
            var type = column.Type;

            if (!_invalidColumnType.Contains(type))
            {
                if (ColumnTypeClassifier.IsNumeric(column))
                {
                    _column.Add(new NumberCollector(index));
                }
                else if (type == ColumnType.String)
                {
                    _column.Add(new StringCollector(index));
                }
                else if (type == ColumnType.IndexList || type == ColumnType.WeightedIndexList)
                {
                    _column.Add(new IndexCollector(index));
                }
                else if (type == ColumnType.Date)
                {
                    _column.Add(new DateCollector(index));
                }
                else if (type == ColumnType.Vector || type == ColumnType.Matrix || type == ColumnType.Tensor)
                {
                    _column.Add(new DimensionCollector(index));
                }
                else if (ColumnTypeClassifier.IsCategorical(column))
                {
                    _column.Add(new FrequencyCollector(index));
                }
            }
        }
예제 #2
0
 public TableInfo(IDataTable table)
 {
     _classColumnIndex = table.TargetColumnIndex;
     for (int i = 0, len = table.ColumnCount; i < len; i++) {
         if (i != _classColumnIndex) {
             var column = table.Columns[i];
             if (column.IsContinuous)
                 _continuous.Add(i);
             else if (ColumnTypeClassifier.IsCategorical(column))
                 _categorical.Add(i);
         }
     }
     table.ForEach(row => _data.Add(new InMemoryRow(row, _categorical, _continuous, _classColumnIndex)));
 }
예제 #3
0
        public DataTableAnalysis(IDataTable table, int columnIndex)
        {
            _table = table;

            var item = table.Columns[columnIndex];

            if (ColumnTypeClassifier.IsNumeric(item))
            {
                _column.Add(new NumberCollector(columnIndex));
            }
            else if (item.Type == ColumnType.String)
            {
                _column.Add(new StringCollector(columnIndex));
            }
        }
예제 #4
0
        void _Add(IColumn column, int index)
        {
            var type = column.Type;

            if (ColumnTypeClassifier.IsNumeric(column))
            {
                _column.Add(new NumberCollector(index));
            }
            else if (type == ColumnType.String)
            {
                _column.Add(new StringCollector(index));
            }
            else if (type == ColumnType.IndexList || type == ColumnType.WeightedIndexList)
            {
                _column.Add(new IndexCollector(index));
            }
        }
예제 #5
0
        public DataTableAnalysis(IDataTable table)
        {
            _table = table;

            int index = 0;

            foreach (var item in table.Columns)
            {
                if (ColumnTypeClassifier.IsNumeric(item))
                {
                    _column.Add(new NumberCollector(index));
                }
                else if (item.Type == ColumnType.String)
                {
                    _column.Add(new StringCollector(index));
                }
                ++index;
            }
        }
예제 #6
0
            public FrequencyAnalysis(IDataTable table, int ignoreColumnIndex = -1)
            {
                int index = 0;

                foreach (var item in table.Columns)
                {
                    if (index != ignoreColumnIndex)
                    {
                        if (item.IsContinuous)
                        {
                            _column.Add(new NumberCollector(index));
                        }
                        else if (ColumnTypeClassifier.IsCategorical(item))
                        {
                            _column.Add(new FrequencyCollector(index));
                        }
                    }
                    ++index;
                }
            }