0

Schema mismatch for feature column 'Features': expected Vector, got Vector Parameter name: inputSchema That error occur on following code

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

Error is on line with Code

var model = pipeline.Fit(data);

my class 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 file in my project

Ayesha Sheikh
  • 13
  • 1
  • 5

1 Answers1

0

Your Features column needs to be a Vector of floats. But you are creating a Vector of strings.

You will need to convert those strings to numbers. One way to do it is to use OneHotEncoding. See https://learn.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/prepare-data-ml-net#work-with-categorical-data

Eric Erhardt
  • 2,286
  • 15
  • 19