问题 大值RRS提要的不正确ML时间序列预测

vlad.ua96

成员
已加入
2020年11月22日
留言内容
5
编程经验
3-5
嘿)正在制作非常简单的股票预测应用程序(Simple Colege Project)。对于广播,我使用了Microsoft ML时间序列模型。它工作得很好,但是我注意到当我对诸如1700或3800这样的大数值进行数据预测时,它会做出非常不正确的预测。例如,如果csv文件具有较小的值(如20.21或10.63),则效果很好,并预测该范围内或接近该范围的相似值。但是,如果csv文件中的列具有很高的值(例如3700左右),它就会发疯并将预测值分成两半。例如,对于范围3136中的值,它的预测1800或700取决于模型参数。
C#:
var context = new MLContext();
    var data = context.Data.LoadFromTextFile<StockData>(@"C:\Users\Vlad Mishyn\Desktop\DIPLOM1\ASIX\ASIX\bin\x64\Debug\FinalCsvFile.csv", hasHeader: true, separatorChar: ',');

    var pipeline = context.Forecasting.ForecastBySsa(
                                        "Forecast",
                                        nameof(StockData.Close),
                                        windowSize: 7,
                                        seriesLength: 30,
                                        trainSize:365,
                                        horizon: 7,
                                        confidenceLevel: 0.95f,
                                        confidenceLowerBoundColumn: "LowerBoundRentals",
                                        confidenceUpperBoundColumn: "UpperBoundRentals"
                                        );


    var model = pipeline.Fit(data);

    var forecastingEngine = model.CreateTimeSeriesEngine<StockData, StockForecast>(context);

    var forecasts = forecastingEngine.Predict();

internal class StockForecast
    {
        public float [] Forecast { get; set; }

    }

internal class StockData
    {
        [LoadColumn(0)]
        public DateTime Date { get; set; }

        [LoadColumn(1)]
        public float Close { get; set; }

        [LoadColumn(2)]
        public float Volume { get; set; }


        [LoadColumn(3)]
        public float Open { get; set; }

        [LoadColumn(4)]
        public float High { get; set; }


        [LoadColumn(5)]
        public float Law { get; set; }

    }

我以为也许我选择了错误的模型进行预测,但是我看到很多人都在使用该模型来获得更大价值的价格。为了找到最佳参数,我正在使用所有模型参数,但这并没有帮助。我是数据预测主题的新手,但是即使在Python模型中,我也没有见过这种模型行为。只是真的很感兴趣我们对此的看法。这是csv文件的外观。不幸的是,整个文件没有附加到该帖子上

日期,收盘价,成交量,开盘价,高价,法律
11/13 / 2020,19.61,6527357,19.06,19.3581,18.69
11/12 / 2020,18.93,8879036,19.21,19.3581,18.69
11/11 / 2020,19.36,9736736,19.92,19.3581,18.69
11/10 / 2020,19.87,11227230,19.77,19.3581,18.69
11/09 / 2020,19.73,13947140,19.92,19.3581,18.69
11/06 / 2020,19.25,6515724,19.1,19.3581,18.69
11/05 / 2020,19.13,8926402,18.6,19.3581,18.69
11/04 / 2020,18.28,8512730,18.64,19.3581,18.69
11/03 / 2020,18.62,6340196,18.68,19.3581,18.69
11/02 / 2020,18.41,7499051,18.18,19.3581,18.69
10/30 / 2020,17.96,7883718,17.63,19.3581,18.69
10/29 / 2020,17.78,7722001,17.28,19.3581,18.69
 
由主持人最后编辑:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,536
地点
弗吉尼亚州切萨皮克
编程经验
10+
请记住将您的代码放在代码标签中。这次我为您做了。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,536
地点
弗吉尼亚州切萨皮克
编程经验
10+
您知道该引擎的学习和预测背后的数学吗?如果是这样,您是否尝试过手动计算?您得到的结果是否与引擎计算的结果相似或不同。

机器学习不是魔术。这都是数学的应用-尤其是统计和概率。
 

vlad.ua96

成员
已加入
2020年11月22日
留言内容
5
编程经验
3-5
您知道该引擎的学习和预测背后的数学吗?如果是这样,您是否尝试过手动计算?您得到的结果是否与引擎计算的结果相似或不同。

机器学习不是魔术。这都是数学的应用-尤其是统计和概率。
是的,最近我尝试在Python中进行相同的预测,并且效果很好,结果与训练数据在同一范围内。我只是想念一些东西,但不明白到底是什么错。它适用于小数字,但不适用于大数字。
 
最佳 底部