我正在尝试学习ML.NET/进入机器学习,但遇到了一个问题。
我的目标是创建一个训练模型,该模型可用于根据输入来预测城市。
此代码:
var dataPath = "cities.csv";
var mlContext = new MLContext();
var loader = mlContext.Data.CreateTextLoader<CityData>(hasHeader: false, separatorChar: ',');
var data = loader.Load(dataPath);
string featuresColumnName = "Features";
var pipeline = mlContext.Transforms.Concatenate(featuresColumnName, "PostalCode", "CityName")
.Append(mlContext.Clustering.Trainers.KMeans(featuresColumnName, clustersCount: 3));
var model = pipeline.Fit(data);
应该以CSV作为输入(其中包含城市列表(列0 =邮政编码,列1 = CityName),然后将这些功能添加到管道中,出现以下错误:
Unhandled Exception: System.ArgumentOutOfRangeException: Schema mismatch for feature column 'Features': expected Vector<R4>, got Vector<Text>
在“适合”功能上。
我已经在GitHub Repo上做了一些挖掘,但是我似乎找不到解决方案。我正在使用“虹膜”示例(here)(当然,需要我的修改)
有什么想法吗?
答案 0 :(得分:0)
使用FeaturizeText将字符串功能转换为浮点数组功能
var pipeline = mlContext.Transforms
.Text.FeaturizeText("PostalCodeF", "PostalCode")
.Append(mlContext.Transforms.Text.FeaturizeText("CityNameF", "CityName"))
.Append(mlContext.Transforms.Concatenate(featuresColumnName, "PostalCodeF", "CityNameF"))
.Append(mlContext.Clustering.Trainers.KMeans(featuresColumnName, clustersCount: 3));
var model = pipeline.Fit(data);