我的问题很简单,我知道我遗漏了一些非常明显的东西,我就是不知道它是什么。。。。
我对霍尔特·温特斯的测试预测结果是南,我不知道为什么。有人能帮忙吗?
我正在使用Jupyter笔记本电脑,并试图使用霍尔特-温特斯方法预测一个SKU的销售额。我甚至用了
以下是我使用的代码:
# Import the libraries needed to execute Holt-Winters
import pandas as pd
import numpy as np
%matplotlib inline
df = pd.read_csv('../Data/M1045_White.csv',index_col='Month',parse_dates=True)
# Set the month column as the index column
df.index.freq = 'MS'
df.index
df.head()
df.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 48 entries, 2015-05-01 to 2019-04-01
Freq: MS
Data columns (total 7 columns):
Sales 48 non-null int64
EWMA12 48 non-null float64
SES12 47 non-null float64
DESadd12 47 non-null float64
DESmul12 47 non-null float64
TESadd12 48 non-null float64
TESmul12 12 non-null float64
dtypes: float64(6), int64(1)
memory usage: 3.0 KB
from statsmodels.tsa.holtwinters import SimpleExpSmoothing
# Train Test Split
train_data = df.iloc[:36] # Goes up to but not including 36
test_data = df.iloc[12:]
# Fit the Model
fitted_model = exponentialSmoothing(train_data['Sales'],trend='mul',seasonal='mul',seasonal_periods=12).fit()
test_predictions = fitted_model.forecast(12).rename('HW M1045 White Forecast')
test_predictions
Here is the output of my predictions:
2018-05-01 NaN
2018-06-01 NaN
2018-07-01 NaN
2018-08-01 NaN
2018-09-01 NaN
2018-10-01 NaN
2018-11-01 NaN
2018-12-01 NaN
2019-01-01 NaN
2019-02-01 NaN
2019-03-01 NaN
2019-04-01 NaN
Freq: MS, Name: HW M1045 White Forecast, dtype: float64
有人能指出我可能遗漏了什么吗?这似乎是一个简单的问题和一个简单的解决方案,但它踢我的屁股。
谢谢
您的训练数据包含一些NaN,因此无法建模或预测。
df.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 48 entries, 2015-05-01 to 2019-04-01
Freq: MS
Data columns (total 7 columns):
Sales 48 non-null int64
EWMA12 48 non-null float64
SES12 47 non-null float64
DESadd12 47 non-null float64
DESmul12 47 non-null float64
TESadd12 48 non-null float64
TESmul12 12 non-null float64
dtypes: float64(6), int64(1)
memory usage: 3.0 KB
检查数据框中是否有任何缺失值
df.isnull().sum()
在您的情况下,在训练模型之前需要进行缺失值处理。
答案与将seasonal_periods
变量设置为12
有关。如果更新为6
,则预测会产生实际值。我不是指数平滑的统计专家,无法理解为什么会这样。
问题内容: 我似乎无法弄清楚为什么我的JFrame为空。我要去哪里错了? 导入javax.swing。*; 导入java.awt.FlowLayout; 公共类GUIExample扩展JFrame { } 问题答案: 您忘记在jFrame中添加contentPane了,就像这样 我注意到您正在使用继承来构建jFrame,因此在这种情况下,您需要实例化自己的类。我已经用最小的代码重构了您的代码以运行
我在Spring Boot项目中使用Resilience4J调用REST客户机,如下所示: 看到示例中包含了一个回退方法,我决定添加它,尽管我并不真的想调用不同的方法,我只想再次调用我的原始方法。 不管怎样,我指定了一个回落: 现在,我看到回退方法被重试,但是每次都会抛出HttpServerErrorException,这意味着使用者将收到一个异常作为对其调用的响应。 谢谢
问题内容: 我正在尝试进行布尔测试,以便如果其中一个胎压低于35或超过45,则系统会输出“不良充气”。 在我的课堂上,我必须使用布尔值,这是我尝试过的。但是,返回的布尔值始终为true。我不明白为什么。 问题答案: 更改为: 甚至更好: 布尔比较运算符为和。该是赋值运算符。 另外,在检查是否违反条件之前,需要进行初始设置。
问题内容: 发生了最奇怪的事情,我的测试运行正常,但现在不再,我完全没有更改代码,这里是一个例外: 问题答案: 我看到您正在使用Eclipse,但您是否还在使用其他外部构建/测试工具,例如Ant或Maven?有时,在同时使用其他外部工具时,Eclipse可能会不同步。 如果使用外部工具,请执行清理生成的工件所需的所有操作(例如mvn clean)。然后刷新Eclipse项目并按照前面的建议进行干净
问题内容: 我的应用程序在Linux上作为后台进程运行。当前在“终端”窗口的命令行中启动。 最近,一个用户执行该应用程序一段时间后,它神秘地死了。文本: 被杀 在航站楼上。这发生了两次。我问其他终端是否有人使用kill命令杀死进程?没有。 Linux在什么情况下会决定终止我的进程?我相信外壳程序显示为“ killed”,因为该进程在收到kill(9)信号后就死了。如果Linux发送了kill信号,
问题内容: 我们正在重用一个使用spring java- config(使用@Configuration)定义其bean的项目,并且在一个此类中有一个init方法。 这里的预期行为是什么?何时调用此方法?关于豆子,那就是。即,此方法的行为是否完全像配置类是Bean一样(实际上是一个吗?) 我们观察到的是,根据操作系统的不同,可以在初始化进入配置类的Bean之前调用它,从而最终导致不完全依赖项的工作