отображение входного столбца при загрузке из перечисляемого - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь сопоставить входной столбец с выходным столбцом в ML.NET Пример документации объясняет Загрузить из текстового файла

 var pivotDataView = mlContext.Data.LoadFromTextFile(path: pivotCsv,
                                            columns: new[]
                                                        {
                                                        new TextLoader.Column(DefaultColumnNames.Features, DataKind.Single, new[] {new TextLoader.Range(0, 31) }),
                                                        new TextLoader.Column(nameof(PivotData.LastName), DataKind.String, 32)
                                                        },
                                            hasHeader: true,
                                            separatorChar: ',');

                //STEP 2: Configure data transformations in pipeline
                var dataProcessPipeline = mlContext.Transforms.Projection.ProjectToPrincipalComponents(outputColumnName: "PCAFeatures", inputColumnName: DefaultColumnNames.Features, rank: 2)
                 .Append(mlContext.Transforms.Categorical.OneHotEncoding(new[]{
                    new OneHotEncodingEstimator.ColumnOptions(name:"LastNameKey", inputColumnName:nameof(PivotData.LastName),
                                                     OneHotEncodingTransformer.OutputKind.Ind)
                }));

в моем случае я хочу загрузить из Enumerable, я попробовал это

  var temp = context.Transforms.Concatenate("Features", new[]
                        {"Function1", "Function2", "Function3", "Function4"
                            , "Function5", "Function6", "Function7", "Function8"
                            ,"Function9", "Function10"})
                        .Append(context.Clustering.Trainers.KMeans(featureColumnName: "Features", clustersCount: 3))
                        .Append(context.Transforms
.Projection
.ProjectToPrincipalComponents(outputColumnName: "PCAFeatures",
                        inputColumnName: DefaultColumnNames.Features, rank: 2)
                        )
    .Append(context.Transforms.Categorical.OneHotEncoding(new[]{
                            new OneHotEncodingEstimator.ColumnOptions(name:"LastNameKey", inputColumnName:nameof(ClusteringPrediction.LastNameKey),
                                OneHotEncodingTransformer.OutputKind.Ind)
                        }))
                        ;

но я получаю

Невозможно привязать столбец IDataView «LastNameKey» типа «Vec» к поле или свойство 'LastNameKey' типа 'System.String'. '

...