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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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