public static Estimate ( double inputs, int samples, DoubleRange &range ) : |
||
inputs | double | The data set. |
samples | int | The number of random samples to analyze. |
range | DoubleRange | The range of suitable values for sigma. |
return |
public static SparseLaplacian Estimate(double[][] inputs, int samples, out DoubleRange range)
{
if (samples > inputs.Length)
throw new ArgumentOutOfRangeException("samples");
double[] distances = Gaussian.Distances(inputs, samples);
double q1 = distances[(int)Math.Ceiling(0.15 * distances.Length)];
double q9 = distances[(int)Math.Ceiling(0.85 * distances.Length)];
double qm = distances.Median(alreadySorted: true);
range = new DoubleRange(q1, q9);
return new SparseLaplacian(sigma: qm);
}
}