.net - ML .net 读取制表符分隔的数据集
问题描述
这是我第一次使用 ML.net 0.8,我在数据集中加载时遇到了麻烦。
var mlContext = new MLContext();
String dataPath = "ML Data 3.txt";
var trainingDataView = mlContext.Data.ReadFromTextFile(
columns: new TextLoader.Column[]
{
new TextLoader.Column("Product", DataKind.Text,0),
new TextLoader.Column("Streat", DataKind.R4, 1),
new TextLoader.Column("Overspray", DataKind.R4,2),
new TextLoader.Column("MLS",DataKind.R4,3),
new TextLoader.Column("Moisture",DataKind.R4,4)
}, path: dataPath );
var data = trainingDataView.Preview();
var pipeline = mlContext.Transforms.Concatenate("Features", "Product", "Streat", "Overspray", "MLS")
.Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent(labelColumn: "Moisture", featureColumn: "Features"))
.Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedMoisture"));
var model = pipeline.Fit(trainingDataView);
数据预览看起来不错,但是当它尝试拟合以执行拟合操作时,我收到以下错误:
System.InvalidOperationException:'列'Streat'的值是R4,这与之前观察到的文本类型不同。'
我检查了数据,数据文件中没有文本元素,除了产品列。
任何建议都非常受欢迎。
解决方案
MulticlassClassification
算法不适用于文本特征,仅适用于数字。如果Product
是某种标识符,则最好将其从Concatenate
调用中排除,因为它不是功能:
mlContext.Transforms.Concatenate("Features", "Streat", "Overspray", "MLS")
如果它是某种类别并且应该用作特征,则可以使用其中一种转换将其转换为数字,例如OneHotEncoding
:
var pipeline = mlContext.Transforms.Categorical.OneHotEncoding("Product")
.Append(mlContext.Transforms.Concatenate("Features", "Product", "Streat", "Overspray", "MLS"))
.Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent(labelColumn: "Moisture", featureColumn: "Features"))
.Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedMoisture"));
推荐阅读
- reactjs - React Native, passing function with argument from child to parent
- haskell - 当我尝试使用 ghci 加载此 Haskell 代码时,为什么会出现错误?
- c - 如何使用 *x 显示 Hello World
- c# - 出队方法 C#
- javascript - Puppeteer 中的嵌套选择器
- firebase - FCM 发送到 vs 主题 vs 添加条件
- node.js - 如何在茉莉花中测试包装在 setImmediate 中的调用
- javascript - 检索 JSON api 数据时出错:Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
- apache-spark - 在 Databricks 中创建 SQL 用户
- c# - 我如何循环一个在每个循环中变化的随机整数