void TestSelectKeepWithOrder() { var data = new[] { new TestClass() { A = 1, B = 2, C = 3, }, new TestClass() { A = 4, B = 5, C = 6 } }; var dataView = ComponentCreation.CreateDataView(Env, data); // Expected output will be CA var est = ColumnSelectingEstimator.KeepColumns(Env, "C", "A"); var transformer = est.Fit(dataView); var result = transformer.Transform(dataView); var foundColumnA = result.Schema.TryGetColumnIndex("A", out int aIdx); var foundColumnB = result.Schema.TryGetColumnIndex("B", out int bIdx); var foundColumnC = result.Schema.TryGetColumnIndex("C", out int cIdx); Assert.True(foundColumnA); Assert.Equal(1, aIdx); Assert.False(foundColumnB); Assert.True(foundColumnC); Assert.Equal(0, cIdx); }
void TestSelectColumnsWithMissing() { var data = new[] { new TestClass() { A = 1, B = 2, C = 3, }, new TestClass() { A = 4, B = 5, C = 6 } }; var dataView = ComponentCreation.CreateDataView(Env, data); var est = ColumnSelectingEstimator.KeepColumns(Env, "D", "G"); Assert.Throws <ArgumentOutOfRangeException>(() => est.Fit(dataView)); }
public void TestSelectColumnsWithMissing() { var data = new[] { new TestClass() { A = 1, B = 2, C = 3, }, new TestClass() { A = 4, B = 5, C = 6 } }; var dataView = ML.Data.LoadFromEnumerable(data); var est = ColumnSelectingEstimator.KeepColumns(Env, "D", "G"); Assert.Throws <ArgumentOutOfRangeException>(() => est.Fit(dataView)); }
void TestSelectKeep() { var data = new[] { new TestClass() { A = 1, B = 2, C = 3, }, new TestClass() { A = 4, B = 5, C = 6 } }; var dataView = ML.Data.LoadFromEnumerable(data); var est = ColumnSelectingEstimator.KeepColumns(Env, "A", "C"); var transformer = est.Fit(dataView); var result = transformer.Transform(dataView); var foundColumnA = result.Schema.TryGetColumnIndex("A", out int aIdx); var foundColumnB = result.Schema.TryGetColumnIndex("B", out int bIdx); var foundColumnC = result.Schema.TryGetColumnIndex("C", out int cIdx); Assert.True(foundColumnA); Assert.Equal(0, aIdx); Assert.False(foundColumnB); Assert.True(foundColumnC); Assert.Equal(1, cIdx); }
/// <summary> /// KeepColumns is used to select a list of columns that the user wants to keep on a given an input. Any column not specified /// will be dropped from the output output schema. /// </summary> /// <param name="catalog">The transform's catalog.</param> /// <param name="columnsToKeep">The array of column names to keep.</param> public static ColumnSelectingEstimator KeepColumns(this TransformsCatalog catalog, params string[] columnsToKeep) => ColumnSelectingEstimator.KeepColumns(CatalogUtils.GetEnvironment(catalog), columnsToKeep);