ML.NET: 特征列 ‘Features’ 的架构不匹配

我在尝试学习 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为城市名称),然后将这些特征添加到管道中,但出现了以下错误:

Unhandled Exception: System.ArgumentOutOfRangeException: Schema mismatch for feature column 'Features': expected Vector<R4>, got Vector<Text>

错误发生在 “Fit” 函数上。

我在 GitHub 仓库中做了一些研究,但似乎找不到解决方案。我是基于 Iris 示例(https://learn.microsoft.com/en-us/dotnet/machine-learning/tutorials/iris-clustering)进行修改的。

有什么想法吗?


回答:

使用 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);

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注