public static CommonOutputs.TransformOutput ConcatColumns(IHostEnvironment env, ColumnCopyingTransformer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("PrefixConcatColumns"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); // Get all column names with preserving order. var colNames = new List <string>(input.Data.Schema.Count); for (int i = 0; i < input.Data.Schema.Count; i++) { colNames.Add(input.Data.Schema[i].Name); } // Iterate through input options, find matching source columns, create new input options var inputOptions = new ColumnConcatenatingTransformer.Options() { Data = input.Data }; var columns = new List <ColumnConcatenatingTransformer.Column>(input.Columns.Length); foreach (var col in input.Columns) { var newCol = new ColumnConcatenatingTransformer.Column(); newCol.Name = col.Name; var prefix = col.Source; newCol.Source = colNames.Where(x => x.StartsWith(prefix, StringComparison.InvariantCulture)).ToArray(); if (newCol.Source.Length == 0) { throw new ArgumentOutOfRangeException("No matching columns found for prefix: " + prefix); } columns.Add(newCol); } inputOptions.Columns = columns.ToArray(); var xf = ColumnConcatenatingTransformer.Create(env, inputOptions, inputOptions.Data); return(new CommonOutputs.TransformOutput { Model = new TransformModelImpl(env, xf, inputOptions.Data), OutputData = xf }); }
public static CommonOutputs.TransformOutput ConcatColumns(IHostEnvironment env, ColumnConcatenatingTransformer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("ConcatColumns"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); var xf = ColumnConcatenatingTransformer.Create(env, input, input.Data); return(new CommonOutputs.TransformOutput { Model = new TransformModelImpl(env, xf, input.Data), OutputData = xf }); }