我想针对特定问题开发自我训练算法.为了简单起见,我将其简化为简单的例子.
更新:我添加了一个有效的解决方案作为下面这个问题的答案.
假设我有一个来自数据库的大量实体列表.每个实体属于同一类型,并具有4个byte类型的属性.
public class Entity
{
public byte Prop1 { get; set; }
public byte Prop2 { get; set; }
public byte Prop3 { get; set; }
public byte Prop4 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在,我想根据一个简单的条件动态测试每个实体的一个或多个属性.这基本上意味着我想针对这种情况测试所有属性的所有可能组合.
为了完成这项工作,我为属性创建了一个位掩码.
[Flags]
public enum EEntityValues
{
Undefined = 0,
Prop1 = 1,
Prop2 = 2,
Prop3 = 4,
Prop4 = 8,
}
Run Code Online (Sandbox Code Playgroud)
并添加了一种获取位掩码最大值的方法.对于此示例,返回15(1 + 2 + 4 + 8).
public static int GetMaxValue<T>() where T : struct
{
return Enum.GetValues( typeof(T) ).Cast<int>().Sum();
} …Run Code Online (Sandbox Code Playgroud) 我在stackoverflow上找到了以下代码片段,但我遇到的问题是stdev变为NaN.任何想法如何解决这一问题?
public static void AddBollingerBands(ref SortedList<DateTime, Dictionary<string, double>> data, int period, int factor)
{
double total_average = 0;
double total_squares = 0;
for (int i = 0; i < data.Count(); i++)
{
total_average += data.Values[i]["close"];
total_squares += Math.Pow(data.Values[i]["close"], 2);
if (i >= period - 1)
{
double total_bollinger = 0;
double average = total_average / period;
double stdev = Math.Sqrt((total_squares - Math.Pow(total_average,2)/period) / period);
data.Values[i]["bollinger_average"] = average;
data.Values[i]["bollinger_top"] = average + factor * stdev;
data.Values[i]["bollinger_bottom"] = average - factor * …Run Code Online (Sandbox Code Playgroud) 我有一个DelegatingHandler我需要注册的类库中的自定义Autofac.webapi主机解析它对运行时的依赖性,因此主机没有对此库的引用.
public class LocalizationHandler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync( HttpRequestMessage request, CancellationToken cancellationToken )
{}
}
Run Code Online (Sandbox Code Playgroud)
在我的Autofac初始化程序类中,我尝试过以下方法:
protected override void Load( ContainerBuilder builder )
{
builder.RegisterType<LocalizationHandler>();
builder.Register(c => new LocalizationHandler());
}
Run Code Online (Sandbox Code Playgroud)
在主机中注册此类处理程序的常规方法是:
public static void Register(HttpConfiguration httpConfiguration)
{
httpConfiguration.MapHttpAttributeRoutes();
httpConfiguration.MessageHandlers.Add(new LocalizationHandler());
}
Run Code Online (Sandbox Code Playgroud)
但是我没有访问这里的主机项目.任何想法如何注入处理程序ContainerBuilder?