0

特征列“特征”的架构不匹配:预期向量,得到向量参数名称:inputSchema 该错误发生在以下代码上

 static readonly string _dataPat=Path.Combine(Environment.CurrentDirectory, "Data", "train_data.csv"); 
static void Main(string[] args)
    {

            var mlContext = new MLContext(seed: 0);

        IDataView data = mlContext.Data.LoadFromTextFile<IrisData>(_dataPath, separatorChar: ',', hasHeader: true);

        string featuresColumnName = "Features";

            var pipeline = mlContext.Transforms
                .Concatenate(featuresColumnName,"Class", "Sex", "AgeGroup", "Embarked")
                .Append(mlContext.Clustering.Trainers.KMeans(featuresColumnName, numberOfClusters: 2));

            var model = pipeline.Fit(data);

错误与代码一致

var model = pipeline.Fit(data);

我的班级 IrisData

public class IrisData
{
    [LoadColumn(0)]
    public string Class;

    [LoadColumn(1)]
    public string Sex;

    [LoadColumn(2)]
    public string AgeGroup;

    [LoadColumn(3)]
    public string Embarked;
}

我项目中的 CSV 文件

4

1 回答 1

0

您的Features列需要是floats 的向量。但是你正在创建一个strings 的向量。

您需要将这些字符串转换为数字。一种方法是使用 OneHotEncoding。请参阅https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/prepare-data-ml-net#work-with-categorical-data

于 2019-08-26T18:21:50.967 回答