Использование набора данных Titanic для создания модели логистической регрессии в ML.NET.У меня большая часть кода идет, но когда я пытаюсь создать прогноз в оценщике, я получаю ошибки компиляции.
Вот полный код:
var context = new MLContext();
var reader = TextLoader.CreateReader(context,
ctx => (
PassengerId: ctx.LoadFloat(0),
HasSurvived: ctx.LoadBool(1),
PClass: ctx.LoadFloat(2),
Name: ctx.LoadText(3),
Gender: ctx.LoadText(4),
Age: ctx.LoadFloat(5),
NumOfSiblingsOrSpouses: ctx.LoadFloat(6),
NumOfParentOrChildAboard: ctx.LoadFloat(7),
Ticket: ctx.LoadText(8),
Fare: ctx.LoadFloat(9),
Cabin: ctx.LoadText(10),
EmbarkedPort: ctx.LoadText(11)
),
hasHeader: true,
separator: ',');
var data = reader.Read("titanic.csv");
var (trainData, testData) = context.BinaryClassification.TrainTestSplit(data, testFraction: 0.2);
var pipeline = reader.MakeNewEstimator()
.Append(row => (
Target: row.HasSurvived,
Features: row.NumOfParentOrChildAboard.ConcatWith(
row.NumOfSiblingsOrSpouses, row.PClass, row.Age.ReplaceNaNValues(MissingValueReplacingTransformer.ColumnInfo.ReplacementMode.Mean)
)));
pipeline.Append(row => (
row.Target,
Prediction: context.BinaryClassification.Trainers.LogisticRegression(row.Target, row.Features)
));
Ошибка возникает в этомстрока - context.BinaryClassification.Trainers.LogisticRegression(row.Target, row.Features)
, говоря cannot convert from 'Microsoft.ML.StaticPipe.Scalar<bool>' to 'string'
.
Когда я изменяю аргументы на строки, я получаю другую ошибку: Type of item Prediction.PredictionKind is neither a PipelineColumn nor a ValueTuple, nor a class of an allowed form
.
Может кто-нибудь увидеть, что я делаю неправильнополучать эти ошибки или если я пропускаю шаг в конвейере?