Example #1
0
    //**************************************************************************************

    public static WekaLinearRegression CreateNew(int iParamtersID, List <ClassifierParameter> iParameters, Candlestick.Period iPeriod, int iProfitTime, List <int> iTrainingPoints, bool iEliminateColinearAttributes, bool iMinimal)
    {
        // Create WekaInfo and retrive ID
        var info = new WekaInfo(null, typeof(WekaJ48), iParamtersID, iPeriod, iProfitTime);

        WekaInfo.InsertToDB(info);

        if (info.ID is null)
        {
            throw new Exception("Could not deduct ID");
        }

        // Create LinearRegressionInfo
        var lrInfo = new WekaLinearRegressionInfo((int)info.ID, iEliminateColinearAttributes, iMinimal);

        WekaLinearRegressionInfo.UpdateDB(lrInfo);

        // Save training points
        if (iTrainingPoints != null)
        {
            SaveTrainingPoints(iTrainingPoints, "Data/TrainingPoints/Classifier_" + info.ID.ToString() + ".dat");
        }

        // Create classifier
        return(new WekaLinearRegression(info, iParameters, lrInfo));
    }
Example #2
0
    //**************************************************************************************

    public static WekaJ48 CreateNew(int iParamtersID, List <ClassifierParameter> iParameters, Candlestick.Period iPeriod, int iProfitTime, List <int> iTrainingPoints)
    {
        // Create WekaInfo and retrive ID
        var info = new WekaInfo(null, typeof(WekaJ48), iParamtersID, iPeriod, iProfitTime);

        WekaInfo.InsertToDB(info);

        if (info.ID is null)
        {
            throw new Exception("Could not deduct ID");
        }

        // Create J48Info
        var j48Info = new WekaJ48Info((int)info.ID);

        WekaJ48Info.UpdateDB(j48Info);

        // Save training points
        if (iTrainingPoints != null)
        {
            SaveTrainingPoints(iTrainingPoints, "Data/TrainingPoints/Classifier_" + info.ID.ToString() + ".dat");
        }

        // Create classifier
        return(new WekaJ48(info, iParameters, j48Info));
    }
Example #3
0
    //**************************************************************************************

    /// <summary>
    /// Inserts info to DB
    /// </summary>
    public static void InsertToDB(WekaInfo iInfo)
    {
        var sql = "INSERT INTO Classifiers (Type, ParametersID, Period, ProfitTime) output INSERTED.ID VALUES(@Type, @ParametersID, @Period, @ProfitTime)";

        using (var connection = new SqlConnection(Program.SQLConnectionName))
        {
            connection.Open();
            {
                var cmd = new SqlCommand(sql, connection);
                cmd.Parameters.AddWithValue("@Type", iInfo.Type.Name);
                cmd.Parameters.AddWithValue("@ParametersID", iInfo.ParametersID);
                cmd.Parameters.AddWithValue("@Period", iInfo.Period.ToString());
                cmd.Parameters.AddWithValue("@ProfitTime", iInfo.ProfitTime);

                var dataAdapter = new SqlDataAdapter
                {
                    InsertCommand = cmd
                };

                int id = (int)dataAdapter.InsertCommand.ExecuteScalar();
                iInfo.ID = id;

                dataAdapter.InsertCommand.Dispose();
            }
        }
    }
Example #4
0
    //**************************************************************************************

    public override void RemoveClassifier()
    {
        if (!Exist(ID))
        {
            return;
        }

        Console.WriteLine("Removing classifier: " + ID);

        // Start removal from children
        foreach (var i in J48Info.ChildrenID)
        {
            if (i != null)
            {
                var c = Find((int)i);
                if (c != null)
                {
                    c.RemoveClassifier();
                }
            }
        }
        // Remove model
        DeleteModel(ID);

        // Remove training data
        DeleteTrainingPoints(ID);

        // Remove info from parents
        if (J48Info.ParentID != null)
        {
            if (Find((int)J48Info.ParentID) is WekaJ48 parent)
            {
                for (int i = 0; i < parent.J48Info.ChildrenID.Length; i++)
                {
                    if (parent.J48Info.ChildrenID[i] == ID)
                    {
                        parent.J48Info.ChildrenID[i] = null;
                        WekaJ48Info.UpdateDB(parent.J48Info);
                    }
                }
            }
        }

        // Remove info
        WekaJ48Info.RemoveFromDB(ID);
        WekaInfo.RemoveFromDB(ID);

        // Remove target classifier from static list
        classifiers.Remove(ID);
    }
Example #5
0
    //**************************************************************************************

    public override void RemoveClassifier()
    {
        if (!Exist(ID))
        {
            return;
        }

        Console.WriteLine("Removing classifier: " + ID);

        // Remove model
        DeleteModel(ID);

        // Remove training data
        DeleteTrainingPoints(ID);

        WekaInfo.RemoveFromDB(ID);
        WekaLinearRegressionInfo.RemoveFromDB(ID);

        // Remove target classifier from static list
        classifiers.Remove(ID);
    }
Example #6
0
    //**************************************************************************************

    public WekaJ48(WekaInfo iInfo, List <ClassifierParameter> iParameters, WekaJ48Info iJ48Info)
        : base(iInfo, iParameters)
    {
        J48Info = iJ48Info ?? throw new ArgumentNullException("iJ48Info");
    }
Example #7
0
    //**************************************************************************************

    public WekaLinearRegression(WekaInfo iInfo, List <ClassifierParameter> iParameters, WekaLinearRegressionInfo iLRInfo)
        : base(iInfo, iParameters)
    {
        LRInfo = iLRInfo ?? throw new ArgumentNullException("iLRInfo");
    }