Example #1
0
 public Model(MultinomialLogisticRegression regression, Featurizer featurizer, FeatureSpace featureSpace, HashSet<Target> targets)
 {
     this.regression = regression;
     this.FeatureSpace = featureSpace;
     this.Featurizer = featurizer;
     this.Targets = targets;
 }
Example #2
0
        public Model Learn(IEnumerable<MLEntity> entities, int numberOfEntities, FeatureSpace featureSpace, HashSet<Target> targets)
        {
            var featureMatrix = new double[numberOfEntities][];
            var labels = new int[numberOfEntities];

            int counter = 0;
            var targetToInt = Model.GetTargetToInt(targets);

            foreach (var entity in entities)
            {
                featureMatrix[counter] = this.featurizer.CreateFeatureVector(entity.WebSite, featureSpace);
                labels[counter] = targetToInt[entity.Label];
                ++counter;
            }

            Logger.Log("Features extracted");

            var regression = new MultinomialLogisticRegression(inputs: featureSpace.Size, categories: targets.Count);
            LowerBoundNewtonRaphson lbnr = new LowerBoundNewtonRaphson(regression);

            double delta;
            int iteration = 0;
            do
            {
                Logger.Log("Iteration: {0}", iteration);
                delta = lbnr.Run(featureMatrix, labels);
                iteration++;
            } while (iteration < 10 && delta > 1e-6);

            return new Model(regression, this.featurizer, featureSpace, targets);
        }
        public static FeatureSpace LoadFromFile(string path)
        {
            int count = 0;
            var featureSpace = new FeatureSpace();
            foreach (var line in System.IO.File.ReadLines(path))
            {
                featureSpace.features.Add(line, count);
                ++count;
            }

            return featureSpace;
        }