Пример #1
0
        public IDataTable ConvertToNumeric(IDataTableVectoriser vectoriser = null, bool useTargetColumnIndex = true, Stream output = null)
        {
            var writer = new DataTableWriter(output);

            vectoriser = vectoriser ?? GetVectoriser(useTargetColumnIndex);

            // add the numeric columns
            foreach (var name in vectoriser.ColumnNames)
            {
                writer.AddColumn(name, ColumnType.Float);
            }

            // add the classification label column
            var classColumnIndex = TargetColumnIndex;

            if (useTargetColumnIndex)
            {
                var classColumn = _column[classColumnIndex];
                writer.AddColumn(classColumn.Name, ColumnType.String, true);
            }

            // vectorise each row
            _Iterate((row, i) => {
                var rowData = vectoriser.GetInput(row).Data.AsEnumerable().Cast <object>();
                if (useTargetColumnIndex)
                {
                    rowData = rowData.Concat(new object[] { row.GetField <string>(classColumnIndex) });
                }

                writer.AddRow(new DataTableRow(this, rowData.ToArray(), _rowConverter));
                return(true);
            });
            return(writer.GetDataTable());
        }
Пример #2
0
        public IDataTable ConvertToNumeric(IDataTableVectoriser vectoriser = null, Stream output = null)
        {
            var writer = new DataTableWriter(output);

            vectoriser = vectoriser ?? GetVectoriser();
            foreach (var name in vectoriser.ColumnNames)
            {
                writer.AddColumn(name, ColumnType.Float);
            }
            var classColumnIndex = TargetColumnIndex;
            var classColumn      = _column[classColumnIndex];

            writer.AddColumn(classColumn.Name, ColumnType.String, true);

            _Iterate(row => {
                var data = vectoriser.GetInput(row).AsEnumerable().Cast <object>().Concat(new object[] { row.GetField <string>(classColumnIndex) });
                writer.AddRow(data);
                return(true);
            });
            return(writer.GetDataTable());
        }
 public float[] Encode(IRow row)
 {
     return(_vectoriser.GetInput(row).Data);
 }
Пример #4
0
 Tuple <float[], float[]> _Convert(IRow row)
 {
     return(Tuple.Create(_vectoriser.GetInput(row), _vectoriser.GetOutput(row)));
 }