Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/14/17 17:53:30 (7 years ago)
Author:
gkronber
Message:

#2699: made a number of changes mainly to RBF regression model

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/KernelBase.cs

    r14386 r14872  
    3131namespace HeuristicLab.Algorithms.DataAnalysis {
    3232  [StorableClass]
    33   public abstract class KernelBase<T> : ParameterizedNamedItem, IKernelFunction<T> {
     33  public abstract class KernelBase : ParameterizedNamedItem, ICovarianceFunction {
    3434
    3535    #region Parameternames
     
    3838    #endregion
    3939    #region Parameterproperties
    40     public ValueParameter<IDistance<T>> DistanceParameter
    41     {
    42       get { return Parameters[DistanceParameterName] as ValueParameter<IDistance<T>>; }
     40    public ValueParameter<IDistance> DistanceParameter {
     41      get { return Parameters[DistanceParameterName] as ValueParameter<IDistance>; }
    4342    }
    4443
    45     public IFixedValueParameter<DoubleValue> BetaParameter
    46     {
     44    public IFixedValueParameter<DoubleValue> BetaParameter {
    4745      get { return Parameters[BetaParameterName] as FixedValueParameter<DoubleValue>; }
    4846    }
     
    5048    #endregion
    5149    #region Properties
    52     public IDistance<T> Distance
    53     {
     50    public IDistance Distance {
    5451      get { return DistanceParameter.Value; }
    5552    }
    5653
    57     public double Beta
    58     {
     54    public double Beta {
    5955      get { return BetaParameter.Value.Value; }
    6056    }
     
    6258    #endregion
    6359
    64     #region HLConstructors & Boilerplate
    6560    [StorableConstructor]
    6661    protected KernelBase(bool deserializing) : base(deserializing) { }
     
    6863    private void AfterDeserialization() { }
    6964
    70     protected KernelBase(KernelBase<T> original, Cloner cloner)
     65    protected KernelBase(KernelBase original, Cloner cloner)
    7166      : base(original, cloner) { }
    7267
    7368    protected KernelBase() {
    74       Parameters.Add(new ValueParameter<IDistance<T>>(DistanceParameterName, "The distance function used for kernel calculation"));
    75       DistanceParameter.Value = new EuclidianDistance() as IDistance<T>;
     69      Parameters.Add(new ValueParameter<IDistance>(DistanceParameterName, "The distance function used for kernel calculation"));
     70      DistanceParameter.Value = new EuclideanDistance();
    7671    }
    77     #endregion
    7872
    79     public double Get(T a, T b) {
     73    public double Get(object a, object b) {
    8074      return Get(Distance.Get(a, b));
    8175    }
     
    9387    public ParameterizedCovarianceFunction GetParameterizedCovarianceFunction(double[] p, int[] columnIndices) {
    9488      if (p == null || p.Length != 1) throw new ArgumentException("Illegal parametrization");
    95       var myClone = (KernelBase<T>)Clone(new Cloner());
     89      var myClone = (KernelBase)Clone(new Cloner());
    9690      myClone.BetaParameter.Value.Value = p[0];
    9791      var cov = new ParameterizedCovarianceFunction {
     
    107101    protected double GetNorm(double[,] x, double[,] xt, int i, int j, int[] columnIndices) {
    108102      var dist = Distance as IDistance<IEnumerable<double>>;
    109       if (dist == null) throw new ArgumentException("The Distance needs to apply to double-Vectors");
     103      if (dist == null) throw new ArgumentException("The distance needs to apply to double vectors");
    110104      var r1 = new IndexedEnumerable(x, i, columnIndices);
    111105      var r2 = new IndexedEnumerable(xt, j, columnIndices);
     
    142136      }
    143137
    144       public double Current
    145       {
     138      public double Current {
    146139        get { return data[row, column.Current]; }
    147140      }
    148141
    149       object IEnumerator.Current
    150       {
    151         get
    152         {
     142      object IEnumerator.Current {
     143        get {
    153144          return data[row, column.Current];
    154145        }
Note: See TracChangeset for help on using the changeset viewer.