diff --git a/src/Microsoft.ML.Ensemble/EntryPoints/DiversityMeasure.cs b/src/Microsoft.ML.Ensemble/EntryPoints/DiversityMeasure.cs index 889ba80411..b13cff3b35 100644 --- a/src/Microsoft.ML.Ensemble/EntryPoints/DiversityMeasure.cs +++ b/src/Microsoft.ML.Ensemble/EntryPoints/DiversityMeasure.cs @@ -17,21 +17,21 @@ namespace Microsoft.ML.Ensemble.EntryPoints { [TlcModule.Component(Name = DisagreementDiversityMeasure.LoadName, FriendlyName = DisagreementDiversityMeasure.UserName)] - public sealed class DisagreementDiversityFactory : ISupportDiversityMeasureFactory + public sealed class DisagreementDiversityFactory : ISupportBinaryDiversityMeasureFactory { - public IDiversityMeasure CreateComponent(IHostEnvironment env) => new DisagreementDiversityMeasure(); + public IBinaryDiversityMeasure CreateComponent(IHostEnvironment env) => new DisagreementDiversityMeasure(); } [TlcModule.Component(Name = RegressionDisagreementDiversityMeasure.LoadName, FriendlyName = DisagreementDiversityMeasure.UserName)] - public sealed class RegressionDisagreementDiversityFactory : ISupportDiversityMeasureFactory + public sealed class RegressionDisagreementDiversityFactory : ISupportRegressionDiversityMeasureFactory { - public IDiversityMeasure CreateComponent(IHostEnvironment env) => new RegressionDisagreementDiversityMeasure(); + public IRegressionDiversityMeasure CreateComponent(IHostEnvironment env) => new RegressionDisagreementDiversityMeasure(); } [TlcModule.Component(Name = MultiDisagreementDiversityMeasure.LoadName, FriendlyName = DisagreementDiversityMeasure.UserName)] - public sealed class MultiDisagreementDiversityFactory : ISupportDiversityMeasureFactory> + public sealed class MultiDisagreementDiversityFactory : ISupportMulticlassDiversityMeasureFactory { - public IDiversityMeasure> CreateComponent(IHostEnvironment env) => new MultiDisagreementDiversityMeasure(); + public IMulticlassDiversityMeasure CreateComponent(IHostEnvironment env) => new MultiDisagreementDiversityMeasure(); } } diff --git a/src/Microsoft.ML.Ensemble/OutputCombiners/IOutputCombiner.cs b/src/Microsoft.ML.Ensemble/OutputCombiners/IOutputCombiner.cs index d6a83070ba..512974b717 100644 --- a/src/Microsoft.ML.Ensemble/OutputCombiners/IOutputCombiner.cs +++ b/src/Microsoft.ML.Ensemble/OutputCombiners/IOutputCombiner.cs @@ -46,7 +46,6 @@ public interface IMultiClassOutputCombiner : IOutputCombiner> { } - [TlcModule.ComponentKind("EnsembleMulticlassOutputCombiner")] public interface ISupportMulticlassOutputCombinerFactory : IComponentFactory { @@ -63,7 +62,7 @@ public interface ISupportRegressionOutputCombinerFactory : IComponentFactory + public class DisagreementDiversityMeasure : BaseDisagreementDiversityMeasure, IBinaryDiversityMeasure { public const string UserName = "Disagreement Diversity Measure"; public const string LoadName = "DisagreementDiversityMeasure"; diff --git a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/MultiDisagreementDiversityMeasure.cs b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/MultiDisagreementDiversityMeasure.cs index 1ccf9b2f65..fe4632791d 100644 --- a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/MultiDisagreementDiversityMeasure.cs +++ b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/MultiDisagreementDiversityMeasure.cs @@ -14,7 +14,7 @@ namespace Microsoft.ML.Runtime.Ensemble.Selector.DiversityMeasure { - public class MultiDisagreementDiversityMeasure : BaseDisagreementDiversityMeasure> + public class MultiDisagreementDiversityMeasure : BaseDisagreementDiversityMeasure>, IMulticlassDiversityMeasure { public const string LoadName = "MultiDisagreementDiversityMeasure"; diff --git a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/RegressionDisagreementDiversityMeasure.cs b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/RegressionDisagreementDiversityMeasure.cs index 5a55545fe0..62724d387e 100644 --- a/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/RegressionDisagreementDiversityMeasure.cs +++ b/src/Microsoft.ML.Ensemble/Selector/DiversityMeasure/RegressionDisagreementDiversityMeasure.cs @@ -12,7 +12,7 @@ namespace Microsoft.ML.Runtime.Ensemble.Selector.DiversityMeasure { - public class RegressionDisagreementDiversityMeasure : BaseDisagreementDiversityMeasure + public class RegressionDisagreementDiversityMeasure : BaseDisagreementDiversityMeasure, IRegressionDiversityMeasure { public const string LoadName = "RegressionDisagreementDiversityMeasure"; diff --git a/src/Microsoft.ML.Ensemble/Selector/IDiversityMeasure.cs b/src/Microsoft.ML.Ensemble/Selector/IDiversityMeasure.cs index 814cbe317c..01589c4714 100644 --- a/src/Microsoft.ML.Ensemble/Selector/IDiversityMeasure.cs +++ b/src/Microsoft.ML.Ensemble/Selector/IDiversityMeasure.cs @@ -2,8 +2,10 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System; using System.Collections.Concurrent; using System.Collections.Generic; +using Microsoft.ML.Runtime.Data; using Microsoft.ML.Runtime.Ensemble.Selector.DiversityMeasure; using Microsoft.ML.Runtime.EntryPoints; @@ -17,8 +19,25 @@ List> CalculateDiversityMeasure(IList : IComponentFactory> + public interface IBinaryDiversityMeasure : IDiversityMeasure + { } + public interface IRegressionDiversityMeasure : IDiversityMeasure + { } + public interface IMulticlassDiversityMeasure : IDiversityMeasure> + { } + + [TlcModule.ComponentKind("EnsembleBinaryDiversityMeasure")] + public interface ISupportBinaryDiversityMeasureFactory : IComponentFactory + { + } + + [TlcModule.ComponentKind("EnsembleRegressionDiversityMeasure")] + public interface ISupportRegressionDiversityMeasureFactory : IComponentFactory + { + } + + [TlcModule.ComponentKind("EnsembleMulticlassDiversityMeasure")] + public interface ISupportMulticlassDiversityMeasureFactory : IComponentFactory { } } diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseDiverseSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseDiverseSelector.cs index fbf3c02839..56f7e1edfc 100644 --- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseDiverseSelector.cs +++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BaseDiverseSelector.cs @@ -5,10 +5,9 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -using Microsoft.ML.Runtime.CommandLine; using Microsoft.ML.Runtime.Data; using Microsoft.ML.Runtime.Ensemble.Selector.DiversityMeasure; -using Microsoft.ML.Runtime.Internal.Internallearn; +using Microsoft.ML.Runtime.EntryPoints; using Microsoft.ML.Runtime.Internal.Utilities; using Microsoft.ML.Runtime.Training; @@ -19,27 +18,21 @@ public abstract class BaseDiverseSelector : SubModelD { public abstract class DiverseSelectorArguments : ArgumentsBase { - [Argument(ArgumentType.Multiple, HelpText = "The metric type to be used to find the diversity among base learners", ShortName = "dm", SortOrder = 50)] - [TGUI(Label = "Diversity Measure Type")] - public ISupportDiversityMeasureFactory DiversityMetricType; } - private readonly ISupportDiversityMeasureFactory _diversityMetricType; + private readonly IComponentFactory> _diversityMetricType; private ConcurrentDictionary>, TOutput[]> _predictions; - protected abstract ISupportDiversityMeasureFactory DefaultDiversityMetricType { get; } - - protected internal BaseDiverseSelector(IHostEnvironment env, DiverseSelectorArguments args, string name) + protected internal BaseDiverseSelector(IHostEnvironment env, DiverseSelectorArguments args, string name, + IComponentFactory> diversityMetricType) : base(args, env, name) { - _diversityMetricType = args.DiversityMetricType; + _diversityMetricType = diversityMetricType; _predictions = new ConcurrentDictionary>, TOutput[]>(); } protected IDiversityMeasure CreateDiversityMetric() { - if (_diversityMetricType == null) - return DefaultDiversityMetricType.CreateComponent(Host); return _diversityMetricType.CreateComponent(Host); } diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorBinary.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorBinary.cs index b3deb891f0..75d25df9d6 100644 --- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorBinary.cs +++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorBinary.cs @@ -7,10 +7,12 @@ using System.Collections.Generic; using Microsoft.ML.Ensemble.EntryPoints; using Microsoft.ML.Runtime; +using Microsoft.ML.Runtime.CommandLine; using Microsoft.ML.Runtime.Ensemble.Selector; using Microsoft.ML.Runtime.Ensemble.Selector.DiversityMeasure; using Microsoft.ML.Runtime.Ensemble.Selector.SubModelSelector; using Microsoft.ML.Runtime.EntryPoints; +using Microsoft.ML.Runtime.Internal.Internallearn; [assembly: LoadableClass(typeof(BestDiverseSelectorBinary), typeof(BestDiverseSelectorBinary.Arguments), typeof(SignatureEnsembleSubModelSelector), BestDiverseSelectorBinary.UserName, BestDiverseSelectorBinary.LoadName)] @@ -24,17 +26,20 @@ public sealed class BestDiverseSelectorBinary : BaseDiverseSelector DefaultDiversityMetricType => new DisagreementDiversityFactory(); - [TlcModule.Component(Name = LoadName, FriendlyName = UserName)] public sealed class Arguments : DiverseSelectorArguments, ISupportBinarySubModelSelectorFactory { + [Argument(ArgumentType.Multiple, HelpText = "The metric type to be used to find the diversity among base learners", ShortName = "dm", SortOrder = 50)] + [TGUI(Label = "Diversity Measure Type")] + public ISupportBinaryDiversityMeasureFactory DiversityMetricType = new DisagreementDiversityFactory(); + public IBinarySubModelSelector CreateComponent(IHostEnvironment env) => new BestDiverseSelectorBinary(env, this); } public BestDiverseSelectorBinary(IHostEnvironment env, Arguments args) - : base(env, args, LoadName) + : base(env, args, LoadName, args.DiversityMetricType) { + } public override List> CalculateDiversityMeasure(IList> models, diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorMultiClass.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorMultiClass.cs index 853297970d..8856982f00 100644 --- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorMultiClass.cs +++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorMultiClass.cs @@ -7,11 +7,13 @@ using System.Collections.Generic; using Microsoft.ML.Ensemble.EntryPoints; using Microsoft.ML.Runtime; +using Microsoft.ML.Runtime.CommandLine; using Microsoft.ML.Runtime.Data; using Microsoft.ML.Runtime.Ensemble.Selector; using Microsoft.ML.Runtime.Ensemble.Selector.DiversityMeasure; using Microsoft.ML.Runtime.Ensemble.Selector.SubModelSelector; using Microsoft.ML.Runtime.EntryPoints; +using Microsoft.ML.Runtime.Internal.Internallearn; [assembly: LoadableClass(typeof(BestDiverseSelectorMultiClass), typeof(BestDiverseSelectorMultiClass.Arguments), typeof(SignatureEnsembleSubModelSelector), BestDiverseSelectorMultiClass.UserName, BestDiverseSelectorMultiClass.LoadName)] @@ -24,16 +26,18 @@ public sealed class BestDiverseSelectorMultiClass : BaseDiverseSelector> DefaultDiversityMetricType => new MultiDisagreementDiversityFactory(); - [TlcModule.Component(Name = BestDiverseSelectorMultiClass.LoadName, FriendlyName = UserName)] + [TlcModule.Component(Name = LoadName, FriendlyName = UserName)] public sealed class Arguments : DiverseSelectorArguments, ISupportMulticlassSubModelSelectorFactory { + [Argument(ArgumentType.Multiple, HelpText = "The metric type to be used to find the diversity among base learners", ShortName = "dm", SortOrder = 50)] + [TGUI(Label = "Diversity Measure Type")] + public ISupportMulticlassDiversityMeasureFactory DiversityMetricType = new MultiDisagreementDiversityFactory(); public IMulticlassSubModelSelector CreateComponent(IHostEnvironment env) => new BestDiverseSelectorMultiClass(env, this); } public BestDiverseSelectorMultiClass(IHostEnvironment env, Arguments args) - : base(env, args, LoadName) + : base(env, args, LoadName, args.DiversityMetricType) { } diff --git a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorRegression.cs b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorRegression.cs index d4d6979fe1..cbd2d47330 100644 --- a/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorRegression.cs +++ b/src/Microsoft.ML.Ensemble/Selector/SubModelSelector/BestDiverseSelectorRegression.cs @@ -7,10 +7,12 @@ using System.Collections.Generic; using Microsoft.ML.Ensemble.EntryPoints; using Microsoft.ML.Runtime; +using Microsoft.ML.Runtime.CommandLine; using Microsoft.ML.Runtime.Ensemble.Selector; using Microsoft.ML.Runtime.Ensemble.Selector.DiversityMeasure; using Microsoft.ML.Runtime.Ensemble.Selector.SubModelSelector; using Microsoft.ML.Runtime.EntryPoints; +using Microsoft.ML.Runtime.Internal.Internallearn; [assembly: LoadableClass(typeof(BestDiverseSelectorRegression), typeof(BestDiverseSelectorRegression.Arguments), typeof(SignatureEnsembleSubModelSelector), BestDiverseSelectorRegression.UserName, BestDiverseSelectorRegression.LoadName)] @@ -24,16 +26,17 @@ public sealed class BestDiverseSelectorRegression : BaseDiverseSelector DefaultDiversityMetricType => new RegressionDisagreementDiversityFactory(); - [TlcModule.Component(Name = LoadName, FriendlyName = UserName)] public sealed class Arguments : DiverseSelectorArguments, ISupportRegressionSubModelSelectorFactory { + [Argument(ArgumentType.Multiple, HelpText = "The metric type to be used to find the diversity among base learners", ShortName = "dm", SortOrder = 50)] + [TGUI(Label = "Diversity Measure Type")] + public ISupportRegressionDiversityMeasureFactory DiversityMetricType = new RegressionDisagreementDiversityFactory(); public IRegressionSubModelSelector CreateComponent(IHostEnvironment env) => new BestDiverseSelectorRegression(env, this); } public BestDiverseSelectorRegression(IHostEnvironment env, Arguments args) - : base(env, args, LoadName) + : base(env, args, LoadName, args.DiversityMetricType) { } diff --git a/src/Microsoft.ML.Ensemble/Trainer/Multiclass/EnsembleMultiClassPredictor.cs b/src/Microsoft.ML.Ensemble/Trainer/Multiclass/EnsembleMultiClassPredictor.cs index f846d3f80a..558d0afd6e 100644 --- a/src/Microsoft.ML.Ensemble/Trainer/Multiclass/EnsembleMultiClassPredictor.cs +++ b/src/Microsoft.ML.Ensemble/Trainer/Multiclass/EnsembleMultiClassPredictor.cs @@ -4,17 +4,22 @@ using System; using System.Threading.Tasks; +using Microsoft.ML.Runtime; using Microsoft.ML.Runtime.Data; +using Microsoft.ML.Runtime.Ensemble; using Microsoft.ML.Runtime.Ensemble.OutputCombiners; using Microsoft.ML.Runtime.Model; +[assembly: LoadableClass(typeof(EnsembleMultiClassPredictor), null, typeof(SignatureLoadModel), + EnsembleMultiClassPredictor.UserName, EnsembleMultiClassPredictor.LoaderSignature)] + namespace Microsoft.ML.Runtime.Ensemble { using TVectorPredictor = IPredictorProducing>; - public sealed class EnsembleMultiClassPredictor : - EnsemblePredictorBase>, - IValueMapper + + public sealed class EnsembleMultiClassPredictor : EnsemblePredictorBase>, IValueMapper { + public const string UserName = "Ensemble Multiclass Executor"; public const string LoaderSignature = "EnsemMcExec"; public const string RegistrationName = "EnsembleMultiClassPredictor"; diff --git a/src/Microsoft.ML.StandardLearners/FactorizationMachine/FieldAwareFactorizationMachineUtils.cs b/src/Microsoft.ML.StandardLearners/FactorizationMachine/FieldAwareFactorizationMachineUtils.cs index 0438fcc49b..73b3f1051f 100644 --- a/src/Microsoft.ML.StandardLearners/FactorizationMachine/FieldAwareFactorizationMachineUtils.cs +++ b/src/Microsoft.ML.StandardLearners/FactorizationMachine/FieldAwareFactorizationMachineUtils.cs @@ -53,7 +53,6 @@ internal static bool LoadOneExampleIntoBuffer(ValueGetter>[] gett } } - internal sealed class FieldAwareFactorizationMachineScalarRowMapper : ISchemaBoundRowMapper { private readonly FieldAwareFactorizationMachinePredictor _pred; diff --git a/src/Microsoft.ML/CSharpApi.cs b/src/Microsoft.ML/CSharpApi.cs index 12402b3993..d5e7894c48 100644 --- a/src/Microsoft.ML/CSharpApi.cs +++ b/src/Microsoft.ML/CSharpApi.cs @@ -16132,6 +16132,15 @@ public sealed class UPEarlyStoppingCriterion : EarlyStoppingCriterion internal override string ComponentName => "UP"; } + public abstract class EnsembleBinaryDiversityMeasure : ComponentKind {} + + + + public sealed class DisagreementDiversityMeasureEnsembleBinaryDiversityMeasure : EnsembleBinaryDiversityMeasure + { + internal override string ComponentName => "DisagreementDiversityMeasure"; + } + public abstract class EnsembleBinaryOutputCombiner : ComponentKind {} @@ -16206,7 +16215,7 @@ public sealed class BestDiverseSelectorEnsembleBinarySubModelSelector : Ensemble /// The metric type to be used to find the diversity among base learners /// [JsonConverter(typeof(ComponentSerializer))] - public EnsembleDiversityMeasure DiversityMetricType { get; set; } + public EnsembleBinaryDiversityMeasure DiversityMetricType { get; set; } = new DisagreementDiversityMeasureEnsembleBinaryDiversityMeasure(); /// /// The proportion of best base learners to be selected. The range is 0.0-1.0 @@ -16257,29 +16266,6 @@ public sealed class BestPerformanceSelectorEnsembleBinarySubModelSelector : Ense internal override string ComponentName => "BestPerformanceSelector"; } - public abstract class EnsembleDiversityMeasure : ComponentKind {} - - - - public sealed class DisagreementDiversityMeasureEnsembleDiversityMeasure : EnsembleDiversityMeasure - { - internal override string ComponentName => "DisagreementDiversityMeasure"; - } - - - - public sealed class MultiDisagreementDiversityMeasureEnsembleDiversityMeasure : EnsembleDiversityMeasure - { - internal override string ComponentName => "MultiDisagreementDiversityMeasure"; - } - - - - public sealed class RegressionDisagreementDiversityMeasureEnsembleDiversityMeasure : EnsembleDiversityMeasure - { - internal override string ComponentName => "RegressionDisagreementDiversityMeasure"; - } - public abstract class EnsembleFeatureSelector : ComponentKind {} @@ -16301,6 +16287,15 @@ public sealed class RandomFeatureSelectorEnsembleFeatureSelector : EnsembleFeatu internal override string ComponentName => "RandomFeatureSelector"; } + public abstract class EnsembleMulticlassDiversityMeasure : ComponentKind {} + + + + public sealed class MultiDisagreementDiversityMeasureEnsembleMulticlassDiversityMeasure : EnsembleMulticlassDiversityMeasure + { + internal override string ComponentName => "MultiDisagreementDiversityMeasure"; + } + public abstract class EnsembleMulticlassOutputCombiner : ComponentKind {} @@ -16391,7 +16386,7 @@ public sealed class BestDiverseSelectorMultiClassEnsembleMulticlassSubModelSelec /// The metric type to be used to find the diversity among base learners /// [JsonConverter(typeof(ComponentSerializer))] - public EnsembleDiversityMeasure DiversityMetricType { get; set; } + public EnsembleMulticlassDiversityMeasure DiversityMetricType { get; set; } = new MultiDisagreementDiversityMeasureEnsembleMulticlassDiversityMeasure(); /// /// The proportion of best base learners to be selected. The range is 0.0-1.0 @@ -16436,6 +16431,15 @@ public sealed class BestPerformanceSelectorMultiClassEnsembleMulticlassSubModelS internal override string ComponentName => "BestPerformanceSelectorMultiClass"; } + public abstract class EnsembleRegressionDiversityMeasure : ComponentKind {} + + + + public sealed class RegressionDisagreementDiversityMeasureEnsembleRegressionDiversityMeasure : EnsembleRegressionDiversityMeasure + { + internal override string ComponentName => "RegressionDisagreementDiversityMeasure"; + } + public abstract class EnsembleRegressionOutputCombiner : ComponentKind {} @@ -16481,7 +16485,7 @@ public sealed class BestDiverseSelectorRegressionEnsembleRegressionSubModelSelec /// The metric type to be used to find the diversity among base learners /// [JsonConverter(typeof(ComponentSerializer))] - public EnsembleDiversityMeasure DiversityMetricType { get; set; } + public EnsembleRegressionDiversityMeasure DiversityMetricType { get; set; } = new RegressionDisagreementDiversityMeasureEnsembleRegressionDiversityMeasure(); /// /// The proportion of best base learners to be selected. The range is 0.0-1.0 diff --git a/test/BaselineOutput/Common/EntryPoints/core_manifest.json b/test/BaselineOutput/Common/EntryPoints/core_manifest.json index 0acb5971b0..6918781805 100644 --- a/test/BaselineOutput/Common/EntryPoints/core_manifest.json +++ b/test/BaselineOutput/Common/EntryPoints/core_manifest.json @@ -19980,6 +19980,17 @@ } ] }, + { + "Kind": "EnsembleBinaryDiversityMeasure", + "Components": [ + { + "Name": "DisagreementDiversityMeasure", + "Desc": null, + "FriendlyName": "Disagreement Diversity Measure", + "Settings": [] + } + ] + }, { "Kind": "EnsembleBinaryOutputCombiner", "Components": [ @@ -20023,7 +20034,7 @@ { "Name": "WeightedAverage", "Desc": null, - "FriendlyName": "Stacking", + "FriendlyName": "Weighted Average", "Settings": [ { "Name": "WeightageName", @@ -20069,7 +20080,7 @@ "Name": "DiversityMetricType", "Type": { "Kind": "Component", - "ComponentKind": "EnsembleDiversityMeasure" + "ComponentKind": "EnsembleBinaryDiversityMeasure" }, "Desc": "The metric type to be used to find the diversity among base learners", "Aliases": [ @@ -20078,7 +20089,9 @@ "Required": false, "SortOrder": 50.0, "IsNullable": false, - "Default": null + "Default": { + "Name": "DisagreementDiversityMeasure" + } }, { "Name": "LearnersSelectionProportion", @@ -20165,29 +20178,6 @@ } ] }, - { - "Kind": "EnsembleDiversityMeasure", - "Components": [ - { - "Name": "DisagreementDiversityMeasure", - "Desc": null, - "FriendlyName": "Disagreement Diversity Measure", - "Settings": [] - }, - { - "Name": "MultiDisagreementDiversityMeasure", - "Desc": null, - "FriendlyName": "Disagreement Diversity Measure", - "Settings": [] - }, - { - "Name": "RegressionDisagreementDiversityMeasure", - "Desc": null, - "FriendlyName": "Disagreement Diversity Measure", - "Settings": [] - } - ] - }, { "Kind": "EnsembleFeatureSelector", "Components": [ @@ -20218,6 +20208,17 @@ } ] }, + { + "Kind": "EnsembleMulticlassDiversityMeasure", + "Components": [ + { + "Name": "MultiDisagreementDiversityMeasure", + "Desc": null, + "FriendlyName": "Disagreement Diversity Measure", + "Settings": [] + } + ] + }, { "Kind": "EnsembleMulticlassOutputCombiner", "Components": [ @@ -20354,7 +20355,7 @@ "Name": "DiversityMetricType", "Type": { "Kind": "Component", - "ComponentKind": "EnsembleDiversityMeasure" + "ComponentKind": "EnsembleMulticlassDiversityMeasure" }, "Desc": "The metric type to be used to find the diversity among base learners", "Aliases": [ @@ -20363,7 +20364,9 @@ "Required": false, "SortOrder": 50.0, "IsNullable": false, - "Default": null + "Default": { + "Name": "MultiDisagreementDiversityMeasure" + } }, { "Name": "LearnersSelectionProportion", @@ -20444,6 +20447,17 @@ } ] }, + { + "Kind": "EnsembleRegressionDiversityMeasure", + "Components": [ + { + "Name": "RegressionDisagreementDiversityMeasure", + "Desc": null, + "FriendlyName": "Disagreement Diversity Measure", + "Settings": [] + } + ] + }, { "Kind": "EnsembleRegressionOutputCombiner", "Components": [ @@ -20498,7 +20512,7 @@ "Name": "DiversityMetricType", "Type": { "Kind": "Component", - "ComponentKind": "EnsembleDiversityMeasure" + "ComponentKind": "EnsembleRegressionDiversityMeasure" }, "Desc": "The metric type to be used to find the diversity among base learners", "Aliases": [ @@ -20507,7 +20521,9 @@ "Required": false, "SortOrder": 50.0, "IsNullable": false, - "Default": null + "Default": { + "Name": "RegressionDisagreementDiversityMeasure" + } }, { "Name": "LearnersSelectionProportion",