我对机器学习很陌生,我偶然发现了以下问题。考虑一个官方的纽约市出租车票价预测教程,假设我想预测另一个真实值,例如TripTime
。我修改了我的代码如下:
public class TripFarePrediction // this class is used to store prediction result
{
[ColumnName("Score")]
public float FareAmount { get; set; }
[ColumnName("Score2")]
public float TripTime { get; set; }
}
private static ITransformer Train(MLContext mlContext, string trainDataPath)
{
IDataView dataView = _textLoader.Read(trainDataPath);
var pipelineForTripTime = mlContext.Transforms.CopyColumns("Label", "TripTime")
.Append(mlContext.Transforms.Categorical.OneHotEncoding("VendorId"))
.Append(mlContext.Transforms.Categorical.OneHotEncoding("RateCode"))
.Append(mlContext.Transforms.Categorical.OneHotEncoding("PaymentType"))
.Append(mlContext.Transforms.Concatenate("Features", "VendorId", "RateCode", "PassengerCount", "TripDistance", "PaymentType"))
.Append(mlContext.Regression.Trainers.FastTree());
var pipelineForFareAmount = mlContext.Transforms.CopyColumns("Label", "FareAmount")
.Append(mlContext.Transforms.Categorical.OneHotEncoding("VendorId"))
.Append(mlContext.Transforms.Categorical.OneHotEncoding("RateCode"))
.Append(mlContext.Transforms.Categorical.OneHotEncoding("PaymentType"))
.Append(mlContext.Transforms.Concatenate("Features", "VendorId", "RateCode", "PassengerCount", "TripDistance", "PaymentType"))
.Append(mlContext.Regression.Trainers.FastTree());
var model = pipelineForTripTime.Append(pipelineForFareAmount).Fit(dataView);
SaveModelAsFile(mlContext, model);
return model;
}
第一个值 ( FareAmount
) 被“正确”预测(值不为零),但第二个值 ( TripTime
) 为零。我的问题是如何一次或至少使用相同的模型预测两个或多个标签?这甚至可能吗?我正在使用 .NET Core 2.2 和 ML.NET 0.10.0 来完成这项任务。预先感谢您的任何帮助。