Train() public method

Train using stochastic gradient descent
public Train ( ) : void
return void
示例#1
0
    static IList<double> MergeScores(IList<IList<double>> scores, Dictionary<int, IList<int>> candidates, Dictionary<int, IList<int>> hits)
    {
        double[] weights;

        if (log_reg)
        {
            var lr = new LogisticRegression();
            lr.LearnRate = learn_rate;
            lr.NumIter = num_it;
            lr.Regularization = regularization;

            lr.PredictorVariables = new Matrix<double>(scores);

            var targets = new byte[scores[0].Count];
            int pos = 0;
            foreach (int u in candidates.Keys)
                foreach (int i in candidates[u])
                    targets[pos++] = hits[u].Contains(i) ? (byte) 1 : (byte) 0;
            lr.TargetVariables = targets;

            lr.Train();
            //lr.InitModel();

            weights = lr.parameters.ToArray();

            /*
            for (int i = 0; i < weights.Length; i++)
                Console.Error.WriteLine(weights[i]);
            */
        }
        else
        {
            weights = new double[scores.Count];
            for (int i = 0; i < weights.Length; i++)
                weights[i] = 1;
        }

        return MergeScores(scores, weights);
    }