Esempio n. 1
0
        /*---------------------------------
         * Description: Update Mining Model with parameters
         * Input:
         *  mm: Mining Model
         *  strStockCode: Code of Stock
         *  bPrev: True: move to previous; False: loop
         * Output:
         *  True: Loop; False: Stop
         * ----------------------------------- */
        public static bool UpdateMM(Microsoft.AnalysisServices.MiningModel mm, string strStockCode, bool bPrev)
        {
            mm.AlgorithmParameters.Clear();
            // Default:10; 10:5 -> from 0 to (n-10)/5
            //mm.AlgorithmParameters.Add("MINIMUM_SUPPORT", 10);

            // 0.1:0.05 -> from 0 to (1-0.1)/0.05=18
            mm.AlgorithmParameters.Add("COMPLEXITY_PENALTY", COMPLEXITY_PENALTY);

            // {5,20,60}, 0:0.1 -> from 0 to (1-0.1)/0.05=18
            mm.AlgorithmParameters.Add("PERIODICITY_HINT", "{5,20,60}");
            mm.AlgorithmParameters.Add("AUTO_DETECT_PERIODICITY", AUTO_DETECT_PERIODICITY);

            // Defeult: 1, 10
            mm.AlgorithmParameters.Add("HISTORIC_MODEL_COUNT", HISTORIC_MODEL_COUNT);
            mm.AlgorithmParameters.Add("HISTORIC_MODEL_GAP", HISTORIC_MODEL_GAP);

            // Max, Min Time Series
            mm.AlgorithmParameters.Add("MAXIMUM_SERIES_VALUE", MAXIMUM_SERIES_VALUE);
            mm.AlgorithmParameters.Add("MINIMUM_SERIES_VALUE", MINIMUM_SERIES_VALUE);

            mm.Update();
            mm.Process(ProcessType.ProcessFull);
            if (bPrev)
            {
                return(false);
            }
            else
            {
                return(ADOMDLib.CheckResult(strStockCode));
            }
        }