本文整理汇总了C#中IContinuousDistribution类的典型用法代码示例。如果您正苦于以下问题:C# IContinuousDistribution类的具体用法?C# IContinuousDistribution怎么用?C# IContinuousDistribution使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
IContinuousDistribution类属于命名空间,在下文中一共展示了IContinuousDistribution类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Create2DimTeachingVectors
public static List<PatternClass> Create2DimTeachingVectors(double p1, double p2, IContinuousDistribution generatorFirstFeature1, IContinuousDistribution generatorFirstFeature2, IContinuousDistribution generatorSecondFeature1, IContinuousDistribution generatorSecondFeature2, int nrOfTeachingVectors)
{
List<PatternClass> createdTeachingVectors = new List<PatternClass>();
if (probabilityGenerator == null)
{
probabilityGenerator = new ContinuousUniform(0, 1);
probabilityGenerator.RandomSource = new Random(DateTime.Now.Millisecond + 10);
}
for (int i = 0; i < nrOfTeachingVectors; i++)
{
double value = 0;
double value1 = 0;
int classNumber = CreateClass(p1, p2);
if (classNumber == 1)
{
value = generatorFirstFeature1.Sample();
value1 = generatorSecondFeature1.Sample();
}
else if (classNumber == 2)
{
value = generatorFirstFeature2.Sample();
value1 = generatorSecondFeature2.Sample();
}
createdTeachingVectors.Add(new PatternClass(new FeatureVector(value,value1), classNumber));
}
return createdTeachingVectors;
}
示例2: Create2dimSampleObject
public static List<PatternClass> Create2dimSampleObject(IContinuousDistribution generator, IContinuousDistribution generator1, int count, int classNumber)
{
List<PatternClass> sampleObjects = new List<PatternClass>();
probabilityGenerator = new ContinuousUniform(0, 1);
probabilityGenerator.RandomSource = new Random(DateTime.Now.Millisecond + 10);
for (int i = 0; i < count; i++)
{
sampleObjects.Add(new PatternClass(new FeatureVector(generator.Sample(), generator1.Sample()), classNumber));
}
return sampleObjects;
}
示例3: SyntheticFeatureAlignmentData
public static IEnumerable<Tuple<PointF, PointF>> SyntheticFeatureAlignmentData(
int numGoodAlignments,
int numBadAlignments,
IContinuousDistribution featureNoise,
IContinuousDistribution pointDistribution)
{
var rigidTrans = DenseMatrix.CreateRandom(3, 2, pointDistribution);
var sourcePoints = randSourceMatrix(numGoodAlignments, pointDistribution);
var targetPoints = NoisyTransform(sourcePoints, rigidTrans, featureNoise);
return alignedPointsFromRows(sourcePoints.RowEnumerator(), targetPoints.RowEnumerator())
.Concat(alignedPointsFromRows(randSourceMatrix(numBadAlignments, pointDistribution).RowEnumerator(), DenseMatrix.CreateRandom(numBadAlignments, 2, pointDistribution).RowEnumerator()));
}
示例4: CalculateBayesRiskUniformDistribution
public static double CalculateBayesRiskUniformDistribution(IContinuousDistribution generator1, IContinuousDistribution generator2, double P1, double P2)
{
double dens1 = generator1.Density(generator1.Mean);
double dens2 = generator2.Density(generator2.Mean);
if (dens1 > dens2)
{
double range = generator1.Maximum - generator2.Minimum;
if (range > 0.0)
{
return range * dens2 * 100;
}
}
else if (dens2 > dens1)
{
double range = generator2.Maximum - generator1.Minimum;
if (range > 0.0)
{
return range * dens1 * 100;
}
}
else
{
double range1 = generator2.Maximum - generator1.Minimum;
double range2 = generator1.Maximum - generator2.Minimum;
if (range1 > 0.0)
{
return range1 * dens1*100;
}
if (range2 > 0.0)
{
return range2 * dens1 * 100;
}
}
return 0.0;
}
示例5: CreateRandom
/// <summary>
/// Create a new dense matrix with values sampled from the provided random distribution.
/// </summary>
public static DenseMatrix CreateRandom(int rows, int columns, IContinuousDistribution distribution)
{
var storage = new DenseColumnMajorMatrixStorage<Complex>(rows, columns);
for (var i = 0; i < storage.Data.Length; i++)
{
storage.Data[i] = new Complex(distribution.Sample(), distribution.Sample());
}
return new DenseMatrix(storage);
}
示例6: Random
/// <summary>
/// Generates a vector with random elements
/// </summary>
/// <param name="length">Number of elements in the vector.</param>
/// <param name="randomDistribution">Continuous Random Distribution or Source</param>
/// <returns>
/// A vector with n-random elements distributed according
/// to the specified random distribution.
/// </returns>
/// <exception cref="ArgumentNullException">If the length vector is non poisitive<see langword="null" />.</exception>
public override Vector Random(int length, IContinuousDistribution randomDistribution)
{
if (length < 0)
{
throw new ArgumentException(Resources.ArgumentMustBePositive, "length");
}
var v = (SparseVector)this.CreateVector(length);
for (var index = 0; index < v.Count; index++)
{
v[index] = randomDistribution.Sample();
}
return v;
}
示例7: CreateRandom
/// <summary>
/// Create a new diagonal matrix with diagonal values sampled from the provided random distribution.
/// </summary>
public static DiagonalMatrix CreateRandom(int rows, int columns, IContinuousDistribution distribution)
{
return new DiagonalMatrix(new DiagonalMatrixStorage<double>(rows, columns, Generate.Random(Math.Min(rows, columns), distribution)));
}
示例8: GeneratorSource
/// <summary>
/// Create a sample source from a continuous generator.
/// </summary>
public GeneratorSource(IContinuousDistribution distribution)
{
_distribution = distribution;
}
示例9: CreateDistributionSerie
private Series CreateDistributionSerie(IContinuousDistribution distributionn)
{
Series createdSerie = new Series();
createdSerie.ChartType = SeriesChartType.SplineArea;
for (double i = distributionn.Mean - (8 * distributionn.StdDev); i < distributionn.Mean + (8 * distributionn.StdDev); i += 0.5)
{
if (distributionn is ContinuousUniform)
{
createdSerie.Points.Add(new DataPoint((int)i, distributionn.Density(i)));
}
else
{
createdSerie.Points.Add(new DataPoint(i, distributionn.Density(i)));
}
}
return createdSerie;
}
示例10: ContinuousVapnikChervonenkisTest
/// <summary>
/// Vapnik Chervonenkis test.
/// </summary>
/// <param name="epsilon">The error we are willing to tolerate.</param>
/// <param name="delta">The error probability we are willing to tolerate.</param>
/// <param name="s">The samples to use for testing.</param>
/// <param name="dist">The distribution we are testing.</param>
public static void ContinuousVapnikChervonenkisTest(double epsilon, double delta, double[] s, IContinuousDistribution dist)
{
// Using VC-dimension, we can bound the probability of making an error when estimating empirical probability
// distributions. We are using Theorem 2.41 in "All Of Nonparametric Statistics".
// http://books.google.com/books?id=MRFlzQfRg7UC&lpg=PP1&dq=all%20of%20nonparametric%20statistics&pg=PA22#v=onepage&q=%22shatter%20coe%EF%AC%83cients%20do%20not%22&f=false .</para>
// For intervals on the real line the VC-dimension is 2.
Assert.Greater(s.Length, Math.Ceiling(32.0 * Math.Log(16.0 / delta) / epsilon / epsilon));
var histogram = new Histogram(s, NumberOfHistogramBuckets);
for (var i = 0; i < NumberOfHistogramBuckets; i++)
{
var p = dist.CumulativeDistribution(histogram[i].UpperBound) - dist.CumulativeDistribution(histogram[i].LowerBound);
var pe = histogram[i].Count/(double)s.Length;
Assert.Less(Math.Abs(p - pe), epsilon, dist.ToString());
}
}
示例11: CreateRandom
/// <summary>
/// Create a new diagonal matrix with diagonal values sampled from the provided random distribution.
/// </summary>
public static DiagonalMatrix CreateRandom(int rows, int columns, IContinuousDistribution distribution)
{
return new DiagonalMatrix(DiagonalMatrixStorage<Complex>.OfInit(rows, columns,
i => new Complex(distribution.Sample(), distribution.Sample())));
}
示例12: CreateRandom
/// <summary>
/// Create a new dense vector with values sampled from the provided random distribution.
/// </summary>
public static DenseVector CreateRandom(int length, IContinuousDistribution distribution)
{
return new DenseVector(DenseVectorStorage<double>.OfInit(length,
i => distribution.Sample()));
}
示例13: CalculateIntegral1
private static double CalculateIntegral1(IContinuousDistribution dist1, IContinuousDistribution dist2, double commonPoint, double p1, double p2)
{
double sum = 0.0;
double sum1 = 0.0;
for (double i = dist1.Mean - (8 * dist1.StdDev); i < dist1.Mean + (8 * dist1.StdDev); i += 0.0001)
{
double d1 = p1*dist1.Density(i);
double d2 = p2*dist2.Density(i);
if (d1 <= d2)
{
sum += 0.0001 * d1;
}
else
{
sum += 0.0001 * d2;
}
}
return sum;
}
示例14: CalculateIntegralUniform
private static double CalculateIntegralUniform(IContinuousDistribution dist1, IContinuousDistribution dist2,double p1, double p2)
{
bool found = false;
double zakresDist1 = dist1.Maximum - dist1.Minimum;
double zakresDist2 = dist2.Maximum - dist2.Minimum;
if (dist2.Maximum <= dist1.Maximum && dist1.Maximum < dist2.Maximum )
{
}
double sum = 0.0;
if (p1 > p2)
return p2 * sum;
else
return p1 * sum;
}
示例15: FindCommonPointNormalDistribution
/// <summary>
/// Find the common point beetwen 2 distributions
/// </summary>
/// <param name="dist1">First Distribution</param>
/// <param name="dist2">Second Distribution</param>
/// <param name="commonPoint"></param>
/// <returns></returns>
public static bool FindCommonPointNormalDistribution(IContinuousDistribution dist1,IContinuousDistribution dist2,ref double commonPoint)
{
bool found = false;
double step = 0.0;
if (dist2.Mean > dist1.Mean)
step = 0.001;
else
step = -0.001;
for (double i = dist1.Mean; i < dist2.Mean; i += 0.001)
{
if (Math.Abs(dist1.Density(i) - dist2.Density(i)) < 0.00001)
{
commonPoint = i;
found = true;
break;
}
}
return found;
}