我刚刚开始尝试学习ML.NET,并且我有一个csv表示客户购买的产品,因此我有userId和productId列。我想对此进行转换,以便为每个产品ID分配一列,为每个用户分配行,其值为1或NaN,这取决于他们是否购买了该商品。 ML.NET中的IDataView是否可以实现?谢谢
答案 0 :(得分:0)
看看CustomMapping。您可以在其他列上基于自定义逻辑添加列,例如在下面的示例中,IsUnderThirty是根据Age的值添加的。
// Get a small dataset as an IEnumerable and convert it to an IDataView.
var samples = new List<InputData>
{
new InputData { Age = 26 },
new InputData { Age = 35 },
new InputData { Age = 34 },
new InputData { Age = 28 },
};
var data = mlContext.Data.LoadFromEnumerable(samples);
// We define the custom mapping between input and output rows that will be applied by the transformation.
Action<InputData, CustomMappingOutput > mapping =
(input, output) => output.IsUnderThirty = input.Age < 30;