Changeset 15249 for stable/HeuristicLab.Algorithms.DataAnalysis/3.4/KernelRidgeRegression/KernelFunctions/KernelBase.cs
- Timestamp:
- 07/15/17 10:29:40 (7 years ago)
- Location:
- stable
- Files:
-
- 3 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 14862-14863,14911,14936,15156-15158,15164,15169,15207-15209,15225,15227,15234,15248
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Algorithms.DataAnalysis
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Algorithms.DataAnalysis merged: 14862-14863,14911,14936,15156-15158,15164,15169,15207-15209,15225,15227,15234,15248
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Algorithms.DataAnalysis/3.4/KernelRidgeRegression/KernelFunctions/KernelBase.cs
r14887 r15249 28 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 29 30 namespace HeuristicLab.Algorithms.DataAnalysis .KernelRidgeRegression{30 namespace HeuristicLab.Algorithms.DataAnalysis { 31 31 [StorableClass] 32 32 public abstract class KernelBase : ParameterizedNamedItem, IKernel { 33 33 34 #region Parameternames35 34 private const string DistanceParameterName = "Distance"; 36 #endregion 37 #region Parameterproperties 38 public ValueParameter<IDistance> DistanceParameter { 39 get { return Parameters[DistanceParameterName] as ValueParameter<IDistance>; } 35 36 public IValueParameter<IDistance> DistanceParameter { 37 get { return (IValueParameter<IDistance>)Parameters[DistanceParameterName]; } 40 38 } 41 39 42 40 [Storable] 43 public double? Beta { get; set; } 44 #endregion 45 #region Properties 41 private double? beta; 42 public double? Beta { 43 get { return beta; } 44 set { 45 if (value != beta) { 46 beta = value; 47 RaiseBetaChanged(); 48 } 49 } 50 } 51 46 52 public IDistance Distance { 47 53 get { return DistanceParameter.Value; } 48 set { DistanceParameter.Value = value; } 54 set { 55 if (DistanceParameter.Value != value) { 56 DistanceParameter.Value = value; 57 } 58 } 49 59 } 50 51 #endregion52 60 53 61 [StorableConstructor] 54 62 protected KernelBase(bool deserializing) : base(deserializing) { } 55 [StorableHook(HookType.AfterDeserialization)]56 private void AfterDeserialization() { }57 63 58 64 protected KernelBase(KernelBase original, Cloner cloner) 59 65 : base(original, cloner) { 60 Beta = original.Beta; 66 beta = original.beta; 67 RegisterEvents(); 61 68 } 62 69 … … 64 71 Parameters.Add(new ValueParameter<IDistance>(DistanceParameterName, "The distance function used for kernel calculation")); 65 72 DistanceParameter.Value = new EuclideanDistance(); 73 RegisterEvents(); 74 } 75 76 [StorableHook(HookType.AfterDeserialization)] 77 private void AfterDeserialization() { 78 RegisterEvents(); 79 } 80 81 private void RegisterEvents() { 82 DistanceParameter.ValueChanged += (sender, args) => RaiseDistanceChanged(); 66 83 } 67 84 … … 82 99 public ParameterizedCovarianceFunction GetParameterizedCovarianceFunction(double[] p, int[] columnIndices) { 83 100 if (p.Length != GetNumberOfParameters(columnIndices.Length)) throw new ArgumentException("Illegal parametrization"); 84 var myClone = (KernelBase)Clone( new Cloner());101 var myClone = (KernelBase)Clone(); 85 102 myClone.SetParameter(p); 86 103 var cov = new ParameterizedCovarianceFunction { … … 101 118 return dist.Get(r1, r2); 102 119 } 120 121 #region events 122 public event EventHandler BetaChanged; 123 public event EventHandler DistanceChanged; 124 125 protected void RaiseBetaChanged() { 126 var handler = BetaChanged; 127 if (handler != null) handler(this, EventArgs.Empty); 128 } 129 130 protected void RaiseDistanceChanged() { 131 var handler = DistanceChanged; 132 if (handler != null) handler(this, EventArgs.Empty); 133 } 134 #endregion 103 135 } 104 136 }
Note: See TracChangeset
for help on using the changeset viewer.