本文整理汇总了C#中Beta.GetLogProb方法的典型用法代码示例。如果您正苦于以下问题:C# Beta.GetLogProb方法的具体用法?C# Beta.GetLogProb怎么用?C# Beta.GetLogProb使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Beta
的用法示例。
在下文中一共展示了Beta.GetLogProb方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: drawBetaDistribution
private static void drawBetaDistribution(Rectangle rect, Beta dist)
{
GradientStopCollection gsc = new GradientStopCollection();
int numStops = 21;
double mean = dist.GetMean();
double meanDensity = Math.Exp(dist.GetLogProb(mean));
double inc = 1.0 / (numStops-1);
double curr = 0.0;
double maxLogProb = Double.MinValue;
double minLogProb = -5.0;
for (int i=0; i < numStops; i++)
{
double logProb = dist.GetLogProb(curr);
if (logProb > maxLogProb) maxLogProb = logProb;
curr += inc;
}
if (maxLogProb <= minLogProb)
maxLogProb = minLogProb + 1.0;
double diff = maxLogProb - minLogProb;
double mult = 1.0 / (maxLogProb - minLogProb);
curr = 0.0;
double blueLeft = 0; double blueRight = 0;
double redLeft = 255; double redRight = 255;
double greenLeft = 255; double greenRight = 255;
for (int i=0; i < numStops; i++)
{
double red, green, blue;
double logProb = dist.GetLogProb(curr);
if (logProb < minLogProb) logProb = minLogProb;
double level = mult * (logProb - minLogProb);
red = level * (mean * redRight + (1.0 - mean) * redLeft);
green = level * (mean * greenRight + (1.0 - mean) * greenLeft);
blue =level * (mean * blueRight + (1.0 - mean) * blueLeft);
byte redb = red < 0.0 ? (byte)0 : red > 255.0 ? (byte)255 : (byte)red;
byte greenb = green < 0.0 ? (byte)0 : green > 255.0 ? (byte)255 : (byte)green;
byte blueb = blue < 0.0 ? (byte)0 : blue > 255.0 ? (byte)255 : (byte)blue;
gsc.Add(new GradientStop { Color =new Color() { A = 255, R = redb, G = greenb, B = blueb } , Offset = curr});
curr += inc;
}
LinearGradientBrush brush = rect.Fill as LinearGradientBrush;
brush.GradientStops = gsc;
}
示例2: LogAverageFactor
/// <summary>
/// Evidence message for EP.
/// </summary>
/// <param name="prob">Constant value for 'prob'.</param>
/// <param name="mean">Constant value for 'mean'.</param>
/// <param name="totalCount">Constant value for 'totalCount'.</param>
/// <returns>Logarithm of the factor's average value across the given argument distributions.</returns>
/// <remarks><para>
/// The formula for the result is <c>log(sum_() p() factor(prob,mean,totalCount))</c>.
/// </para></remarks>
public static double LogAverageFactor(double prob, double mean, double totalCount)
{
var g = new Beta(mean * totalCount, (1 - mean) * totalCount);
return g.GetLogProb(prob);
}
示例3: LogAverageFactor
/// <summary>
/// Evidence message for EP
/// </summary>
/// <param name="logistic">Incoming message from 'logistic'.</param>
/// <param name="x">Constant value for 'x'.</param>
/// <returns>Logarithm of the factor's average value across the given argument distributions</returns>
/// <remarks><para>
/// The formula for the result is <c>log(sum_(logistic) p(logistic) factor(logistic,x))</c>.
/// </para></remarks>
public static double LogAverageFactor(Beta logistic, double x)
{
return logistic.GetLogProb(MMath.Logistic(x));
}