Skip to content

Commit

Permalink
Fix: during type inferencing, parse whitespace strings as NaN (dotnet…
Browse files Browse the repository at this point in the history
  • Loading branch information
daholste authored Mar 8, 2019
1 parent 2ea089e commit 2ba9664
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
8 changes: 7 additions & 1 deletion src/Microsoft.ML.Auto/Utils/MLNetUtils/Conversions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,13 @@ internal static class Conversions
public static bool TryParse(in TX src, out R4 dst)
{
var span = src.Span;
if (float.TryParse(span.ToString(), out dst))
var str = span.ToString();
if (string.IsNullOrWhiteSpace(str))
{
dst = R4.NaN;
return true;
}
if (float.TryParse(str, out dst))
{
return true;
}
Expand Down
4 changes: 2 additions & 2 deletions src/Test/ColumnInferenceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ public void IdentifyLabelColumnThroughIndexWithoutHeader()
[TestMethod]
public void DatasetWithEmptyColumn()
{
var result = new MLContext().Auto().InferColumns(Path.Combine("TestData", "DatasetWithEmptyColumn.txt"), DefaultColumnNames.Label);
var result = new MLContext().Auto().InferColumns(Path.Combine("TestData", "DatasetWithEmptyColumn.txt"), DefaultColumnNames.Label, groupColumns: false);
var emptyColumn = result.TextLoaderOptions.Columns.First(c => c.Name == "Empty");
Assert.AreEqual(DataKind.String, emptyColumn.DataKind);
Assert.AreEqual(DataKind.Single, emptyColumn.DataKind);
}

[TestMethod]
Expand Down
3 changes: 2 additions & 1 deletion src/Test/ConversionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ public void ConvertFloatMissingValues()
{
var missingValues = new string[]
{
"?",
"",
"?", " ",
"na", "n/a", "nan",
"NA", "N/A", "NaN", "NAN"
};
Expand Down

0 comments on commit 2ba9664

Please sign in to comment.