Example #1
0
 public NeighborsSeeder(UserManager <User> userManager, RoleManager <Role> roleManager, NeighborsContext context, IMLEngine ml)
 {
     _userManager = userManager;
     _roleManager = roleManager;
     _context     = context;
     _ml          = ml;
 }
 public ProductsRepository(NeighborsContext neighborsContext, ICategoriesRepository catRepo, SignInManager <User> signinManager, IMLEngine ml)
 {
     _context       = neighborsContext;
     _catRepo       = catRepo;
     _signinManager = signinManager;
     _ml            = ml;
 }
Example #3
0
        public double Learn()
        {
            (List <DataSet> learnDataSets, List <DataSet> scoreDataSets) = SplitDataSet(_dataSetList);

            double[][] learnData =
                learnDataSets
                .SelectMany(ds => ds.Items, (ds, item) => new { ds, item })
                .SelectMany(c => c.item.charactersDouble)
                .ToArray();

            int[] learnLabel =
                learnDataSets
                .SelectMany(ds => ds.Items, (ds, item) => new { ds, item })
                .SelectMany(c => c.item.charactersLabelsInt)
                .ToArray();

            double[][] testData =
                scoreDataSets
                .SelectMany(ds => ds.Items, (ds, item) => new { ds, item })
                .SelectMany(c => c.item.charactersDouble)
                .ToArray();

            int[] testLabel =
                scoreDataSets
                .SelectMany(ds => ds.Items, (ds, item) => new { ds, item })
                .SelectMany(c => c.item.charactersLabelsInt)
                .ToArray();

            if (Engine != null)
            {
                return(Engine.Learn(learnData, learnLabel, testData, testLabel));
            }

            Log.Write(this.GetType(), "No ML engine defined, selecting automatically");

            List <Type> engineList = Assembly
                                     .GetExecutingAssembly()
                                     .GetTypes()
                                     .Where(t => !t.IsInterface && t.IsClass && MLEngineNamespace.Equals(t.Namespace) && t.Name.EndsWith(MLEngineSuffix))
                                     .ToList();

            List <(IMLEngine, double)> resultList = new List <(IMLEngine, double)>();

            Parallel.ForEach(engineList, e =>
            {
                IMLEngine engine = Activator.CreateInstance(e) as IMLEngine;
                double score     = engine.Learn(learnData, learnLabel, testData, testLabel);
                resultList.Add((engine, score));
            });

            (IMLEngine, double)best = resultList.OrderByDescending(v => v.Item2).First();

            Log.Write(this.GetType(), $"{best.Item1.GetType().Name} selected with score {best.Item2}");
            Engine = best.Item1;

            return(best.Item2);
        }
Example #4
0
 public CaptchaDecoder(IMLEngine engine)
 {
     this.Id     = Guid.NewGuid();
     this.Engine = engine;
     Log.Write(this.GetType(), $"Decoder created with Engine {Engine.GetType().Name} and ID {Id}");
 }
Example #5
0
 public OffersEngine(IMLEngine mlBL, SignInManager <User> signInManager)
 {
     _bl            = mlBL;
     _signInManager = signInManager;
 }