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()); }
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); }
Tuple <float[], float[]> _Convert(IRow row) { return(Tuple.Create(_vectoriser.GetInput(row), _vectoriser.GetOutput(row))); }