private static IDataView ApplyConvert(List <ConvertTransform.Column> cvt, IDataView viewTrain, IHostEnvironment env)
 {
     Contracts.AssertValueOrNull(cvt);
     Contracts.AssertValue(viewTrain);
     Contracts.AssertValue(env);
     if (Utils.Size(cvt) > 0)
     {
         viewTrain = new ConvertTransform(env,
                                          new ConvertTransform.Arguments()
         {
             Column = cvt.ToArray(), ResultType = DataKind.R4
         }, viewTrain);
     }
     return(viewTrain);
 }
        public static CommonOutputs.TransformOutput PrepareRegressionLabel(IHostEnvironment env, RegressionLabelInput input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("PrepareRegressionLabel");

            host.CheckValue(input, nameof(input));
            EntryPointUtils.CheckInputArgs(host, input);

            int labelCol;

            if (!input.Data.Schema.TryGetColumnIndex(input.LabelColumn, out labelCol))
            {
                throw host.Except($"Column '{input.LabelColumn}' not found.");
            }
            var labelType = input.Data.Schema.GetColumnType(labelCol);

            if (labelType == NumberType.R4 || !labelType.IsNumber)
            {
                var nop = NopTransform.CreateIfNeeded(env, input.Data);
                return(new CommonOutputs.TransformOutput {
                    Model = new TransformModel(env, nop, input.Data), OutputData = nop
                });
            }

            var args = new ConvertTransform.Arguments()
            {
                Column = new[]
                {
                    new ConvertTransform.Column()
                    {
                        Name       = input.LabelColumn,
                        Source     = input.LabelColumn,
                        ResultType = DataKind.R4
                    }
                }
            };
            var xf = new ConvertTransform(host, args, input.Data);

            return(new CommonOutputs.TransformOutput {
                Model = new TransformModel(env, xf, input.Data), OutputData = xf
            });
        }