private protected LightGbmTrainerBase(IHostEnvironment env, string name, SchemaShape.Column label, string featureColumn, string weightColumn = null, string groupIdColumn = null, Action <LightGbmArguments> advancedSettings = null) : base(Contracts.CheckRef(env, nameof(env)).Register(name), TrainerUtils.MakeR4VecFeature(featureColumn), label, TrainerUtils.MakeR4ScalarWeightColumn(weightColumn)) { Args = new LightGbmArguments(); //apply the advanced args, if the user supplied any advancedSettings?.Invoke(Args); // check that the users didn't specify different label, group, feature, weights in the args, from what they supplied directly TrainerUtils.CheckArgsHaveDefaultColNames(Host, Args); Args.LabelColumn = label.Name; Args.FeatureColumn = featureColumn; if (weightColumn != null) { Args.WeightColumn = weightColumn; } if (groupIdColumn != null) { Args.GroupIdColumn = groupIdColumn; } InitParallelTraining(); }