之前我们已经讲过了如何在Windows系统下安装Python版本的Prophet。详细见这里。

接下来的几个部分,我们说下如何使用Prophet,以此来体验下Prophet的丰富内容。内容会比较多,主要翻译自官方文档。教程中使用的数据集可在 Prophet 的 github 主页 中的 examples 文件夹 内下载得到。

目录

一、简易入门

二、饱和预测

2.1 预测饱和增长

2.2 预测饱和减少

 三、趋势突变点 

3.1 Prophet 中的自动监测突变点

3.2 调整趋势的灵活性

3.3 指定突变点的位置

四、季节性,假期效果和回归量 

4.1 对假期和特征事件建模

4.2 季节性的傅里叶级数

4.3 自定义季节性因素

4.4 对节假日和季节性设定先验规模

4.5 附加的回归量

五、乘法季节性 

六、预测区间

6.1 趋势的不确定性

6.2 季节的不确定性

七、异常值

八、非日数据

8.1 子日数据

8.2 有规则间隔的数据

8.3 月数据

九、诊断

十、与机器学习算法的对比


一、简易入门

Prophet 遵循 sklearn 库建模的应用程序接口。我们创建了一个 Prophet 类的实例,其中使用了“拟合模型” fit 和“预测” predict 方法。

Prophet 的输入量往往是一个包含两列的数据框:ds 和 y 。ds 列必须包含日期(YYYY-MM-DD)或者是具体的时间点(YYYY-MM-DD HH:MM:SS)。 y 列必须是数值变量,表示我们希望去预测的量。

下面实例中使用的是 佩顿 · 曼宁的维基百科主页 每日访问量的时间序列数据(2007/12/10 - 2016/01/20)。我们使用 R 中的 Wikipediatrend 包获取该数据集。这个数据集具有多季节周期性、不断变化的增长率和可以拟合特定日期(例如佩顿 · 曼宁的决赛和超级碗)的情况等 Prophet 适用的性质,因此可以作为一个不错的例子。(注:佩顿 · 曼宁为前美式橄榄球四分卫)

首先,我们导入数据,该数据已经做过了log处理(即,做过df['y'] = np.log(df['y'])操作)。

# Python
import pandas as pd
from fbprophet import Prophet
# 读入数据集
df = pd.read_csv('examples/example_wp_log_peyton_manning.csv')
df.head()

1_1

通过对一个 Prophet 对象进行实例化来拟合模型,任何影响预测过程的设置都将在构造模型时被指定。接下来,就可以使用 fit 方法代入历史数据集来拟合模型,拟合过程应当花费 1 - 5 秒。

# 拟合模型
m = Prophet()
m.fit(df)

预测过程则需要建立在包含日期 ds 列的数据框基础上。通过使用辅助的方法 Prophet.make_future_dataframe 来将未来的日期扩展指定的天数,得到一个合规的数据框。默认情况下,这样做会自动包含历史数据的日期,因此我们也可以用来查看模型对于历史数据的拟合效果。

# 构建待预测日期数据框,periods = 365 代表除历史数据的日期外再往后推 365 天
future = m.make_future_dataframe(periods=365)
future.tail()

predict 方法将会对每一行未来 future 日期得到一个预测值(称为 yhat )。如果你传入了历史数据的日期,它将会提供样本的模型拟合值。预测 forecast 创建的对象应当是一个新的数据框,其中包含一列预测值 yhat ,以及成分的分析和置信区间。

# 预测数据集
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

通过 Prophet.plot 方法传入预测得到的数据框,可以对预测的效果进行绘图。

# 展示预测结果
m.plot(forecast);

 如果想查看预测的成分分析,可以使用 Prophet.plot_components 方法。默认情况下,将展示趋势、时间序列的年度季节性和周季节性。如果之前包含了节假日,也会展示出来。

# 预测的成分分析绘图,展示预测中的趋势、周效应和年度效应
m.plot_components(forecast);

注: 一个很核心的问题是我们应该怎么样理解上图的3个子图。通过对forecast这个Dataframe分析我们就可以得到结论。

我们先看下forecast都有哪些列。

print(forecast.columns)
Index(['ds', 'trend', 'trend_lower', 'trend_upper', 'yhat_lower', 'yhat_upper','additive_terms', 'additive_terms_lower', 'additive_terms_upper','multiplicative_terms', 'multiplicative_terms_lower','multiplicative_terms_upper', 'weekly', 'weekly_lower', 'weekly_upper','yearly', 'yearly_lower', 'yearly_upper', 'yhat'],dtype='object')

通过对数据的分析,我们就可以知道:

①图1是根据trend画出来的,图2是根据weekly画出来的,图3是根据yearly画出来的。

②因为是加法模型,有:forecast['additive_terms'] = forecast['weekly'] + forecast['yearly'];有:forecast['yhat']  = forecast['trend'] +  forecast['additive_terms'] 。因此:forecast['yhat']  = forecast['trend'] +forecast['weekly'] + forecast['yearly']

如果有节假日因素,那么就会有forecast['yhat']  = forecast['trend'] +forecast['weekly'] + forecast['yearly'] + forecast['holidays']。

在第四部分,我们会讲到节假日因素,对于那些是节假日的天数,forecast['holidays']才会有值,不是节假日的天数,forecast['holidays']为0。

③因为是加法模型,'multiplicative_terms', 'multiplicative_terms_lower', 'multiplicative_terms_upper'这3列为空。

因此,基于上面的分析,weekly中的Monday为0.3的意思就是,在trend的基础上,加0.3;Saturday为-0.3的意思就是,在trend的基础上,减0.3。因此,这条线的高低也在一定程度上反应了“销量的趋势“。

注:许多方法的细节可以通过help(Prophet) 或者 help(Prophet.fit) 来获得。


二、饱和预测

2.1 预测饱和增长

默认情况下, Prophet 使用线性模型进行预测。当预测增长情况时,通常会存在可到达的最大极限值,例如:总市场规模、总人口数等等。这被称做承载能力(carrying capacity),那么预测时就应当在接近该值时趋于饱和。

Prophet 可使用 logistic 增长 趋势模型进行预测,同时指定承载能力。下面使用 R 语言的维基百科主页 访问量(取对数)的实例来进行说明。

首先,我们导入数据,该数据已经做过了log处理(即,做过df['y'] = np.log(df['y'])操作)。

import pandas as pd
from fbprophet import Prophet
df = pd.read_csv('examples/example_wp_log_R.csv')

新建一列 cap 来指定承载能力的大小。本实例中假设取某个特定的值,通常情况下这个值应当通过市场规模的数据或专业知识来决定。

df['cap'] = 8.5

值得注意的是数据框的每行都必须指定 cap 的值,但并非需要是恒定值。如果市场规模在不断地增长,那么 cap 也可以是不断增长的序列。

如之前教程所述来拟合模型,并且通过一个新增的参数来指定采用 logistic 增长:

m = Prophet(growth='logistic')
m.fit(df)

如前所述,我们可以创建一个数据框来预测未来值,不过这里要指定未来的承载能力。我们将未来的承载能力设定得和历史数据一样,并且预测未来 3 年的数据。

future = m.make_future_dataframe(periods=1826)
future['cap'] = 8.5
fcst = m.predict(future)
fig = m.plot(fcst)

预测结果如下图所示:

2.2 预测饱和减少

logistic增长模型还可以处理饱和最小值,方法与指定最大值的列的方式相同:

# Python
df['y'] = 10 - df['y']
df['cap'] = 6
df['floor'] = 1.5
future['cap'] = 6
future['floor'] = 1.5
m = Prophet(growth='logistic')
m.fit(df)
fcst = m.predict(future)
fig = m.plot(fcst)

结果如下图:


 三、趋势突变点 

在之前的部分,我们可以发现真实的时间序列数据往往在趋势中存在一些突变点。默认情况下, Prophet 将自动监测到这些点,并对趋势做适当地调整。不过,要是对趋势建模时发生了一些问题,例如:Prophet 不小心忽略了一个趋势速率的变化或者对历史数据趋势变化存在过拟合现象。如果我们希望对趋势的调整过程做更好地控制的话,那么下面将会介绍几种可以使用的方法。

3.1 Prophet 中的自动监测突变点

Prophet 首先是通过在大量潜在的突变点(变化速率突变)中进行识别来监测突变点的。之后对趋势变化的幅度做稀疏先验(等同于 L1 正则化)——实际上 Prophet 在建模时会存在很多变化速率突变的点,但只会尽可能少地使用它们。以 第一部分中佩顿 · 曼宁的数据为例,默认下, Prophet 会识别出 25 个潜在的突变点(均匀分布在在前 80% 的时间序列数据中)。下图中的竖线指出这些潜在的突变点所在的位置。

虽然存在很多变化速率可能会突变的点,但由于做了稀疏先验,绝大多数突变点并不会包含在建模过程中。如下图所示,通过观察对每个突变点绘制的速率变化值图,可以发现这一点。

 潜在突变点的数量可以通过设置 n_changepoints 参数来指定,但最好还是利用调整正则化过程来修正。

显著的突变点的位置可以通过以下代码获得:

# Python
from fbprophet.plot import add_changepoints_to_plot
fig = m.plot(forecast)
a = add_changepoints_to_plot(fig.gca(), m, forecast)

默认情况下,只有在时间序列的前80%才会推断出突变点,以便有足够的长度来预测未来的趋势,并避免在时间序列的末尾出现过度拟合的波动。这个默认值可以在很多情况下工作,但不是所有情况下都可以,可以使用changepoint_range参数进行更改。例如,Python中的m = Prophet(changepoint_range=0.9)。这意味着将在时间序列的前90%处寻找潜在的变化点。 

3.2 调整趋势的灵活性

如果趋势的变化被过度拟合(即过于灵活)或者拟合不足(即灵活性不够),可以利用输入参数 changepoint_prior_scale 来调整稀疏先验的程度。默认下,这个参数被指定为 0.05 。

增加这个值,会导致趋势拟合得更加灵活。代码和图如下所示:

df = pd.read_csv('examples/example_wp_log_peyton_manning.csv')# 拟合模型
m = Prophet(changepoint_prior_scale=0.5)
m.fit(df)future = m.make_future_dataframe(periods=365)forecast = m.predict(future)
fig = m.plot(forecast)

 

减少这个值,会导致趋势拟合得灵活性降低。代码和图如下所示: 

m = Prophet(changepoint_prior_scale=0.001)
m.fit(df)
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)
m.plot(forecast);

 

3.3 指定突变点的位置

如果你希望手动指定潜在突变点的位置而不是利用自动的突变点监测,可以使用 changepoints 参数。

代码和图如下所示:

m = Prophet(changepoints=['2014-01-01'])
m.fit(df)
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)
m.plot(forecast);


四、季节性,假期效果和回归量 

4.1 对假期和特征事件建模

如果需要专门对节假日或者其它的事件进行建模,你就必须得为此创建一个新的dataframe,其中包含两列(节假日 holiday 和日期戳 ds ),每行分别记录了每个出现的节假日。这个数据框必须包含所有出现的节假日,不仅是历史数据集中还是待预测的时期中的。如果这些节假日并没有在待预测的时期中被注明, Prophet 也会利用历史数据对它们建模,但预测未来时却不会使用这些模型来预测。

注:也就是说,在待预测的日期里,我们也必须指定所有出现的节假日。

你可以在这个数据框基础上再新建两列 lower_window 和 upper_window ,从而将节假日的时间扩展成一个区间 lower_window , upper_window ] 。举例来说,如果想将平安夜也加入到 “圣诞节” 里,就设置 lower_window = -1 , upper_window = 0 ;如果想将黑色星期五加入到 “感恩节” 里,就设置 lower_window = 0 , upper_window = 1 。

下面我们创建一个数据框,其中包含了所有佩顿 · 曼宁参加过的决赛日期:

playoffs = pd.DataFrame({'holiday': 'playoff','ds': pd.to_datetime(['2008-01-13', '2009-01-03', '2010-01-16','2010-01-24', '2010-02-07', '2011-01-08','2013-01-12', '2014-01-12', '2014-01-19','2014-02-02', '2015-01-11', '2016-01-17','2016-01-24', '2016-02-07']),'lower_window': 0,'upper_window': 1,
})
superbowls = pd.DataFrame({'holiday': 'superbowl','ds': pd.to_datetime(['2010-02-07', '2014-02-02', '2016-02-07']),'lower_window': 0,'upper_window': 1,
})
holidays = pd.concat((playoffs, superbowls))

上述代码中,我们将超级碗的日期既记录在了决赛的日期数据框中,也记录在了超级碗的日期数据框中。这就会造成超级碗日期的效应会在决赛日期的作用下叠加两次。

一旦这个数据框创建好了,就可以通过传入 holidays 参数使得在预测时考虑上节假日效应。这里我们仍以第一部分中佩顿 · 曼宁的数据为例:

df = pd.read_csv('examples/example_wp_log_peyton_manning.csv')m = Prophet(holidays=holidays)
m.fit(df)
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)

可通过 forecast 数据框,来展示节假日效应:

# 看一下假期的最后10行数据
forecast[(forecast['playoff'] + forecast['superbowl']).abs() > 0][['ds', 'playoff', 'superbowl']][-10:]

在成分分析的图中,如下所示,也可以看到节假日效应。我们可以发现,在决赛日期附近有一个穿透,而在超级碗日期时穿透则更为明显。 

fig = m.plot_components(forecast)

 

可以使用 plot_forecast_component(从fbprophet.plot导入)来画出独立的节假日的成分。类似如下代码:

from fbprophet.plot import plot_forecast_component
m.plot_forecast_component(forecast, 'superbowl')

 

 

4.2 季节性的傅里叶级数

季节性是用部分傅里叶和估计的。有关完整的细节,请参阅论文,以及维基百科上的这个图,以说明部分傅里叶和如何近似于一个线性周期信号。部分和(order)中的项数是一个参数,它决定了季节性的变化有多快。为了说明这一点, 我们仍似乎用第一部分中佩顿 · 曼宁的数据。每年季节性的默认傅立叶级数是10,这就产生了这样的拟合:

# Python
from fbprophet.plot import plot_yearly
m = Prophet().fit(df)
a = plot_yearly(m)

 

默认值10通常是合适的,但是当季节性需要适应更高频率的变化时,它们可以增加,并且通常不那么平滑。在实例化模型时,可以为每个内置季节性指定傅立叶级数,这里增加到20: 

from fbprophet.plot import plot_yearly
m = Prophet(yearly_seasonality=20).fit(df)
a = plot_yearly(m)

 

可以看到,曲线更加的多变了。增加傅立叶项的数量可以使季节性适应更快的变化周期,但也可能导致过度拟合:N个傅立叶项对应于用于建模周期的2N个变量。

4.3 自定义季节性因素

如果时间序列超过两个周期,Prophet将默认适合每周每年的季节性。对于子日(sub-daily )时间序列,它也将适合每日的季节性。在Python中,可以使用add_seasality方法添加其它季节性(如每月、每季、每小时)。

这个函数的输入是一个名字,季节性的周期,以及季节性的傅里叶order。作为参考,默认情况下,Prophet为周季节性设定的傅立叶order为3,为年季节性设定的为10。add_seasality的一个可选输入是该季节性组件的先验规模。

作为一个例子,我们仍使用佩顿 · 曼宁的数据,但是用每月的季节性替换每周的季节性。每月的季节性将出现在组件图中:

m = Prophet(weekly_seasonality=False)
m.add_seasonality(name='monthly', period=30.5, fourier_order=5)
forecast = m.fit(df).predict(future)
fig = m.plot_components(forecast)

 

4.4 对节假日和季节性设定先验规模

如果发现节假日效应被过度拟合了,通过设置参数 holidays_prior_scale 可以调整它们的先验规模来使之平滑,默认下该值取 10 。

减少这个参数会降低假期效果:

m = Prophet(holidays=holidays, holidays_prior_scale=0.05).fit(df)
forecast = m.predict(future)
forecast[(forecast['playoff'] + forecast['superbowl']).abs() > 0][['ds', 'playoff', 'superbowl']][-10:]

代码输出结果如下所示:

和之前相比,节假日效应的规模被减弱了,特别是对观测值较少的超级碗而言。类似的,还有一个 seasonality_prior_scale 参数可以用来调整模型对于季节性的拟合程度。 

可以通过在节假日的dataframe中包含一个列prior_scale来单独设置先验规模。独立的季节性的先验规模可以作为add_seasonality的参数传递。例如,可以使用以下方法设置每周季节性的先验规模:

m = Prophet()
m.add_seasonality(name='weekly', period=7, fourier_order=3, prior_scale=0.1)

4.5 附加的回归量

 可以使用add_regressor方法将附加的回归量添加到模型的线性部分。包含回归值的列需要同时出现在拟合数据格式(fit)和预测数据格式(predict)中。例如,我们可以在NFL赛季的周日添加附加的效果。在成分图上,这种效果会出现在“extra_regre_”图中:

# 判断是否是NFL赛季的周日
def nfl_sunday(ds):date = pd.to_datetime(ds)if date.weekday() == 6 and (date.month > 8 or date.month < 2):return 1else:return 0
df['nfl_sunday'] = df['ds'].apply(nfl_sunday)m = Prophet()
m.add_regressor('nfl_sunday')
m.fit(df)future['nfl_sunday'] = future['ds'].apply(nfl_sunday)forecast = m.predict(future)
fig = m.plot_components(forecast)

NFL周日也可以使用之前描述的“节假日”的接口,通过创建一个过去和未来NFL周日的list。add_regressor函数为定义附加的线性回归函数提供了一个更通用的接口,特别是它不要求回归函数是二进制指示器。

add_regressor函数具有可选的参数,用于指定先验规模(默认情况下使用节假日先验规模),和指定是否标准化回归量。help(Prophet.add_regressor)可以查看相关参数。

附加的回归量必须要知道历史和未来的日期。因此,它要么是已知未来值(比如nfl_sunday),要么是其他地方已经单独预测出的结果。如果回归量在整个历史中都是不变的,则Prophet会引发一个错误,因为没有任何东西可以fit它。

附加的回归量被放在模型的线性分量中,所以依赖于附加的回归量时间序列作为底层模型的加法或乘法因子。


五、乘法季节性 

默认情况下,Prophet能够满足附加的季节性,这意味着季节性的影响是加到趋势中得到了最后的预报(yhat)。航空旅客数量的时间序列是一个附加的季节性不起作用的例子:

df = pd.read_csv('../examples/example_air_passengers.csv')
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(50, freq='MS')
forecast = m.predict(future)
fig = m.plot(forecast)

这个时间序列有一个明显的年度周期,但预测中的季节性在时间序列开始时太大,在结束时又太小。在这个时间序列中,季节性并不是Prophet所假定的是一个恒定的加性因子,而是随着趋势在增长。这就是乘法季节性(multiplicative seasonality)。 

Prophet可以通过设置seasonality_mode='multiplicative'来建模乘法季节性:

m = Prophet(seasonality_mode='multiplicative')
m.fit(df)
forecast = m.predict(future)
fig = m.plot(forecast)

看一下乘法的成分图:

fig = m.plot_components(forecast)

与第一部分对成分图分析类似,我们这里对乘法模型的成分图进行一个分析:

①图1是根据trend画出来的,图2是根据yearly画出来的。

②因为是乘法模型,有:forecast['multiplicative_terms'] = forecast['yearly'];因此:forecast['yhat']  = forecast['trend'] * (1+forecast['multiplicative_terms'])

使用seasonality_mode='multiplicative',节假日也将被建模为乘法效果。

③因为是乘法模型,'additive_terms', 'additive_terms_lower', 'additive_terms_upper'这3列为0。

 

默认情况下,任何添加的季节性或额外的回归量都可以使用seasality_mode设置为加法或者是乘法。但假如在添加季节性或回归量时,可以通过指定mode=' addiative 'mode=' ative'作为参数来覆盖之前的设定。 

例如,这个模块将内置的季节性设置为乘法,但使用一个附加的季度季节性来覆盖原本的乘法,这时候季度季节性就是加法了。

# Python
m = Prophet(seasonality_mode='multiplicative')
m.add_seasonality('quarterly', period=91.25, fourier_order=8, mode='additive')

额外的加法的季度季节性将出现在成分图的单独的面板上。 

 这个时候是时间序列的混合模型forecast['yhat'] = forecast['trend']  * (1+forecast['multiplicative_terms']) + forecast['additive_terms']。


六、预测区间

默认情况下, Prophet 的返回结果中会包括预测值 yhat 的预测区间。当然,预测区间的估计需建立在一些重要的假设前提下。

在预测时,不确定性主要来源于三个部分:趋势中的不确定性、季节效应估计中的不确定性和观测值的噪声影响

6.1 趋势的不确定性

预测中,不确定性最大的来源就在于未来趋势改变的不确定性。在之前的时间序列实例中,我们可以发现历史数据具有明显的趋势性。 Prophet 能够监测并去拟合它,但是我们期望得到的趋势改变究竟会如何走向呢?或许这是无解的,因此我们尽可能地做出最合理的推断,假定 “未来将会和历史具有相似的趋势” 。尤其重要的是,我们假定未来趋势的平均变动频率和幅度和我们观测到的历史值是一样的,从而预测趋势的变化并通过计算,最终得到预测区间。

这种衡量不确定性的方法具有以下性质:变化速率灵活性更大时(通过增大参数 changepoint_prior_scale 的值),预测的不确定性也会随之增大。原因在于如果将历史数据中更多的变化速率加入了模型,也就代表我们认为未来也会变化得更多,就会使得预测区间成为反映过拟合的标志。

预测区间的宽度(默认下,是 80% )可以通过设置 interval_width 参数来控制:

m = Prophet(interval_width=0.95).fit(df)
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)

由于预测区间估计时假定未来将会和过去保持一样的变化频率和幅度,而这个假定可能并不正确,所以预测区间的估计不可能完全准确。 

6.2 季节的不确定性

默认情况下, Prophet 只会返回趋势中的不确定性和观测值噪声的影响。你必须使用贝叶斯取样的方法来得到季节效应的不确定性,可通过设置 mcmc.samples 参数(默认下取 0 )来实现。下面使用佩顿 · 曼宁的数据为例:

m = Prophet(mcmc_samples=500).fit(df)
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)
# 报错:UnboundLocalError: local variable 'pool' referenced before assignment

上述代码将最大后验估计( MAP )取代为马尔科夫蒙特卡洛取样 ( MCMC ),并且将计算时间从 10 秒延长到 10 分钟

如果做了全取样,就能通过绘图看到季节效应的不确定性了:

m.plot_components(forecast);

可以使用m.predictive_samples(future)方法在Python中访问原始的后验预测样本。

在PyStan有一些针对Windows的上游问题,这使得MCMC采样非常缓慢。在Windows中,MCMC采样的最佳选择是在Linux VM中使用R或Python。

因此,我的上述代码会出错,季节的不确定性在我windows的python中跑不动,暂时忽略,了解即可。


七、异常值

异常值主要通过两种方式影响 Prophet 预测结果。下面我们使用之前使用过的 R 语言维基百科主页对数访问量的数据来建模预测,只不过使用存在时间间隔并不完整的数据:


df = pd.read_csv('examples/example_wp_log_R_outliers1.csv')
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(periods=1096)
forecast = m.predict(future)
m.plot(forecast);

如上输出图所示,趋势预测看似合理,预测区间的估计却过于广泛。 Prophet 虽能够处理历史数据中的异常值,但仅仅是将它们与趋势的变化拟合在一起,认为未来也会有类似的趋势变化。

处理异常值最好的方法是移除它们,而 Prophet 是能够处理缺失数据的。如果在历史数据中某行的值为空( NA ),但是在待预测日期数据框 future 中仍保留这个日期,那么 Prophet 依旧可以给出该行的预测值。

# 将2010年一年的数据设为缺失
df.loc[(df['ds'] > '2010-01-01') & (df['ds'] < '2011-01-01'), 'y'] = None
model = Prophet().fit(df)
model.plot(model.predict(future));

 

上述这个实例虽然影响了不确定性的估计,却没有影响到主要的预测值 yhat 。但是,现实往往并非如此,接下来,在上述数据集基础上加入新的异常值后再建模预测: 

df = pd.read_csv('examples/example_wp_log_R_outliers2.csv')
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(periods=1096)
forecast = m.predict(future)
m.plot(forecast);

这里 2015年 6 月存在一些异常值破坏了季节效应的估计,因此未来的预测也会永久地受到这个影响。最好的解决方法就是移除这些异常值: 

# 将2015年前半年的数据设为缺失
df.loc[(df['ds'] > '2015-06-01') & (df['ds'] < '2015-06-30'), 'y'] = None
m = Prophet().fit(df)
m.plot(m.predict(future));

 


八、非日数据

8.1 子日数据

Prophet可以通过在ds列中传递一个带有时间戳的dataframe来对时间序列进行子日(Sub-daily)观测。时间戳的格式应该是YYYY-MM-DD - HH:MM:SS。当使用子日数据时,日季节性将自动匹配。在这里,我们用5分钟的分辨率数据集(约塞米蒂的每日温度)对Prophet进行数据匹配:

df = pd.read_csv('examples/example_yosemite_temps.csv')
m = Prophet(changepoint_prior_scale=0.01).fit(df)
future = m.make_future_dataframe(periods=300, freq='H')
fcst = m.predict(future)
fig = m.plot(fcst)

成分图中的日季节性: 

fig = m.plot_components(fcst)

 

8.2 有规则间隔的数据

假设上面的数据集只有每天早上6点之前的观测值:

df2 = df.copy()
df2['ds'] = pd.to_datetime(df2['ds'])
# 只保留每天早上6点之前的数据
df2 = df2[df2['ds'].dt.hour < 6]
m = Prophet().fit(df2)
future = m.make_future_dataframe(periods=300, freq='H')
fcst = m.predict(future)
fig = m.plot(fcst)

这个预测看起来很差,未来的波动比历史上看到的要大得多。这里的问题是,我们将每天的循环安排在一个时间序列中,这个时间序列中只有一天的一部分数据(12a到6a)。因此,每天的季节性在一天剩下的时间里是不受约束的,估计也不准确。解决方案是只对有历史数据的时间窗进行预测。这里,这意味着限制未来dataframe的时间(从12a到6a):

future2 = future.copy()
future2 = future2[future2['ds'].dt.hour < 6]
fcst = m.predict(future2)
fig = m.plot(fcst)

同样的原理也适用于数据中有规则间隔的其他数据集。例如,如果历史只包含工作日,那么应该只对工作日进行预测,因为不会很好地估计每周的季节性。

8.3 月数据

可以使用Prophet来匹配每月的数据。然而,Prophet 的基本模型是连续时间的,这意味着如果将模型与每月的数据相匹配,然后要求每天的预测,我们会得到奇怪的结果。

下面使用美国零售业销售量数据来预测未来 10 年的情况:

df = pd.read_csv('examples/example_retail_sales.csv')
m = Prophet().fit(df)
future = m.make_future_dataframe(periods=3652)
fcst = m.predict(future)
m.plot(fcst);

预测结果看起来非常杂乱,原因正是在于这个特殊的数据集使用的是月数据。当我们拟合年度效应时,只有每个月第一天的数据,而且对于其他天的周期效应是不可测且过拟合的。当你使用 Prophet 拟合月度数据时,可以通过在 make_future_dataframe 中传入频率参数只做月度的预测。 

future = m.make_future_dataframe(periods=120, freq='M')
fcst = m.predict(future)
m.plot(fcst);


九、诊断

Prophet包含时间序列交叉验证功能,以测量使用历史数据的预测误差。这是通过在历史记录中选择截止点来完成的,对于每一个都只使用该截止点之前的数据来拟合模型。然后,我们可以将预测值与实际值进行比较。这张图展示了对Peyton Manning数据集的模拟历史预测,该模型适用于5年的初始历史,并在1年的时间范围内进行了预测。

源论文中进一步描述了模拟的历史预测。

这个交叉验证过程可以使用cross_validation函数自动完成一系列历史截断。我们指定预测水平(horizon),然后选择初始训练期(initial)的大小和截断之间的间隔(period)。默认情况下,初始训练期设置为horizon的三倍,每半个horizon就有一个截断。

注:这里需要解释下horizon,initial和period的意义:initial代表了一开始的时间是多少,period代表每隔多长时间设置一个cutoff,horizon代表每次从cutoff往后预测多少天。

cross_validation的输出是一个dataframe,在每个模拟预测日期和每个截断日期都有真实值y和样本预测值yhat。特别地,对在cutoffcutoff + horizon之间的每一个观测点都进行了预测。然后,这个dataframe可以用来度量yhaty的错误。

在这里,我们做交叉验证来评估预测horizon在365天的性能,从第一次截止时730天的训练数据开始,然后每180天进行一次预测。在这个8年的时间序列中,这相当于11个总预测。

注:Peyton Manning数据一共大约8年多(2007/12/10 - 2016/01/20)的数据。

根据上面对horizon,initial和period的解释:容易得到为什么是11个总预测。因为最后一个也要预测365天,所有最后一个cutoff在2015-01-20,从2007-12-19数730天是2010-02-15,则在2010-02-15到2015-01-20共有1800天,对应着10个cutoff,最后1个cutoff在2015-01-20,因此共11个cutoff。

from fbprophet.diagnostics import cross_validation
df_cv = cross_validation(m, initial='730 days', period='180 days', horizon = '365 days')
df_cv.head()

performance_metrics作为离截止点(预测的未来距离)的函数,可用于计算关于预测性能的一些有用统计数据(如与y相比时yhat、yhat_loweryhat_upper)。计算得到的统计信息包括均方误差(mean squared error, MSE)、均方根误差(root mean squared error, RMSE)、平均绝对误差(mean absolute error, MAE)、平均绝对误差(mean absolute percent error, MAPE)以及yhat_lower和yhat_upper估计的覆盖率。这些都是在df_cv中通过horizon (ds - cutoff)排序后预测的滚动窗口中计算出来的。默认情况下,每个窗口都会包含10%的预测,但是可以通过rolling_window参数来更改。 

from fbprophet.diagnostics import performance_metrics
df_p = performance_metrics(df_cv)
df_p.head()

交叉验证性能指标可以用plot_cross_validation_metric可视化,这里显示的是MAPE。点表示df_cv中每个预测的绝对误差百分比。蓝线显示的是MAPE,均值被取到滚动窗口的圆点。我们可以看到,对于一个月后的预测,误差在5%左右,而对于一年之后的预测,误差会增加到11%左右。 

# Python
from fbprophet.plot import plot_cross_validation_metric
fig = plot_cross_validation_metric(df_cv, metric='mape')

图中滚动窗口的大小可以通过可选参数rolling_window更改,该参数指定在每个滚动窗口中使用的预测比例。默认值为0.1,即每个窗口中包含的df_cv的10%行;增大值得话将导致图中平均曲线更平滑。

初始周期应该足够长,以捕获模型的所有特性,特别是季节性和额外的回归变量:对年的季节性至少保证一年,对周的季节性至少保证一周,等等。


十、与机器学习算法的对比

与先进的机器学习算法如LGBM相比,Prophet作为一个时间序列的工具,优点就是不需要特征工程就可以得到趋势,季节因素和节假日因素,但是这同时也是它的缺点之一,它无法利用更多的信息,如在预测商品的销量时,无法利用商品的信息,门店的信息,促销的信息等。

因此,寻找一种融合的方法是一个迫切的需求。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 步步测试完善Java中Socket通信图解法(一)

    目录 简介 Java中Socket通信简介 单线程一对一服务器1——>1客户端 单线程一对一服务器1<——>1客户端 多线程一对多服务器1<——>N客户端【非聊天室的服务器通过用户输入发送数据】 多线程一对多服务器1<——>N客户端【聊天室】 多线程最终服务器和客户端…...

    2024/4/20 3:43:32
  2. Dos命令入侵局域网电脑

    一, ping 用来检查网 络是否通畅或者网络连接速度的命令。作为一个生 活在网络上的管理员或者黑 客来说, ping 命令是第一个必须掌握的 DOS 命令,所利用的原理是这样的网络上的机器都有唯一确定的 IP 地址,给目标 IP 地址发送一个数据包,对方就要返回一个同样大小的数据包…...

    2024/4/21 0:34:35
  3. 2019 年天津科技大学电子设计竞赛:算法与策略

    . 一年一度的新星杯又再度拉开帷幕,每年的新星杯题目都是给大一的新生量身定做的,所以希望18级新生能够在比赛中收获知识与智慧,并且获得好成绩。 针对于这次比赛,我特地为此写了3个博客,一篇就是当前这个,还有另外两篇,每天都会在原网址更新内容。 以下是三篇博客的网址…...

    2024/4/21 0:34:34
  4. 交通事故预测 读书笔记

    Hetero-ConvLSTM: A Deep Learning Approach to Traffic Accident Prediction on Heterogeneous Spatio-Temporal Data(KDD2018)Author: Zhuoning Yuan, Xun Zhou, Tianbao Yang中文提示:交通事故预测摘要:预测交通事故是改善交通和公共安全以及安全路线的关键问题。由于空…...

    2024/4/21 0:34:33
  5. DOS入门教程。DOS的特点,DOS命令格式

    ...

    2024/4/20 21:00:44
  6. Java Socket 通信中传递Object对象注意的问题

    Java Socket通信中传递自定义对象时,出现了java.lang.ClassNotFoundException 网上查了半天,原因是 客户端和服务端传递的对象所在包的路径不一致, 也有人说必须添加serialVersionUID,并且一致,测试后发现不用添加也可以通信,...

    2024/4/20 21:00:43
  7. 2018年TI杯大学生电子设计竞赛题C-无线充电电动小车 题目加答案,非常详细

    2018年TI杯大学生电子设计竞赛C题:无线充电电动小车(本科)i 。.任务 设计并制作一个无线充电电动车,包括无线充电装置一套。电动小车机械部分可采用成品四轮玩具车改制。外形尺寸不大于30cm 26cm,高度重量不限。2.要求(1)制作一套无线充电装置,其发射器线圈放置在路…...

    2024/4/20 21:00:42
  8. DOS命令实现文件合并隐藏秘密

    我们都知道DOS命令Copy的主要作用是复制文件,可是你是否知道,它还有一个作用是合并文件呢? 一般情况下,它主要用于合并相同类型的文件,比如将两个文本文件合并为一个文本文件、将两个独立的MPEG视频文件合并为一个连续的视频文件等。那么,如果用它合并两个不同类型的文件…...

    2024/4/20 21:00:42
  9. 机器学习项目-预测波士顿房价-整体流程

    项目 1: 预测波士顿房价第一步. 导入数据在这个项目中,你将利用马萨诸塞州波士顿郊区的房屋信息数据训练和测试一个模型,并对模型的性能和预测能力进行测试。通过该数据训练后的好的模型可以被用来对房屋做特定预测---尤其是对房屋的价值。对于房地产经纪等人的日常工作来说,…...

    2024/4/21 0:34:33
  10. Java 和 Python 的 Socket 通信

    网络上两个程序通过一个双向通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket支持的协议有多种,这里主要介绍基于 TCP/IP 协议族的 Socket 编程。 首先,IP协议族决定了socket的地址类型,在通信中必须采用对应的地址。AF_INET(AF 表示 Adress Family)表示要…...

    2024/4/21 0:34:33
  11. 2019年杭州电子科技大学电子设计竞赛 題目:多种波形发生器

    2019年杭州电子科技大学电子设计竞赛題目:多种波形发生器任务 设计并制作一个如下图所示,基于STM32F103单片机、74LS74D触发器、LM324运放等芯片组成能产生方波、三角波、正弦波等多种波形的最小电子系统,并能完成频率设定和显示。设计制作要求 1.基本要求(1) 要求单路+10V…...

    2024/4/20 15:00:18
  12. Python调用Dos命令

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 写了几个批处理,主要是一些Android调试命令,现在想用python来搞,感觉更酷一些吧。O(∩_∩…...

    2024/4/21 0:34:29
  13. 深度学习:利用神经网络在少量数据情况下预测房价走势

    在前面两个神经网络的运用例子中,我们主要使用神经网络对输入数据预测出一个离散性结果,也就是预测的结果都是0,1,要不就是1到46中任意一个数,这些结果都是离散化,相互间不兼容。我们这节要用神经网络对输入数据预测出一个连续型结果,例如我们预测下个月房价的价格区间,…...

    2024/4/21 0:34:29
  14. Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码

    因版本问题原 sockAddr.sin_addr.S_addr = inet_addr(“127.0.0.1”); 会导致编译不通过查找不到 解决方案 改为:sockAddr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”); Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码 环境:Windows10 工具:visua…...

    2024/4/21 0:34:27
  15. 2019年 电赛C题 全国大学生电子设计竞赛试题解析与总结

    2019年全国大学生电子设计竞赛试题 电赛C题 分析与总结 线路负载及故障检测装置【本科组】 一、题目任务设计并制作线路负载及故障检测装置,示意图如图1所示。. 检测装置只通过两个连接端子与两根导线连接。导线上A、B两点距离各自连接端子约5cm,远端30cm范围内为连接负载和故…...

    2024/4/21 0:34:26
  16. java Socket通信实例

    一直做Java web,几乎没有做过CS方向上的东西。最近一同学来北京找工作,到我这儿来玩。说起笔试经历,说了这样一个程序题,大概是这样的;用C++编程实现一个简单的通信实例,要求服务器实时接受客户端发送来的消息。虽说没做过这方面的东西,但也知道需要用Java Socket来实现(…...

    2024/4/21 0:34:25
  17. [推荐]常用必备的DOS命令(原创)----简单的命令

    现在关于dos命令的教程啊说明啊到处都是,DOS时代早都过去但是我们还是很需要这些叫命令行的东西。今天我也来写一些常用的必备的DOS命令吧。那些cd啊,cls啊,dir啊什么的我就不说了。还有那些dos命令有N多个,一个命令有N多个参数,我今天主要说说常用必备的。。注意几乎所有…...

    2024/4/21 0:34:25
  18. 多元线性回归-波士顿房价预测问题python

    上一篇:一元线性回归的数学解析解 波士顿房价预测问题 波士顿房价数据集每一行代表一个样本,共有13列。数据集中的每一行数据都是对波士顿周边或城镇房价的情况描述,先说明一下具体的含义CRIM: 城镇人均犯罪率 ZN: 住宅用地所占比例 INDUS: 城镇中非住宅用地所占比例 CHAS: …...

    2024/4/21 0:34:23
  19. C++基于TCP和UDP的socket通信

    TCP和UDP属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它事先为要发送的数据开辟好连接通道(三次握手),然后再进行数据发送;而UDP则不为IP提供可靠性,一般用于实时的视频流传输,像rtp、rtsp就是建立在udp的基础上的。首先谈谈tcp sockettcp简单的三次握手过程如图…...

    2024/4/21 0:34:22
  20. 参加全国大学生电子设计竞赛有感

    参加全国大学生电子设计竞赛有感 写在前面本人大二电子信息工程专业在读,坐标杭州。算上真正接触电子信息课程有一年半的时间,电子信息专业学的科目多且繁杂,常常是学了之后没有一段时间复习就忘了,为了及时的巩固自己学习的知识并且记录自己的技术生涯,我决定开始学写一些…...

    2024/4/21 0:34:22

最新文章

  1. 【skill】移动云服务器80端口

    上个月玩CentOS7&#xff0c;提到alist端口问题&#xff0c;https://www.bilibili.com/read/cv33662501/ 云服务器不能被外网访问的原因 1 云服务器没放行端口 2 防火墙没放行端口 3 配置了端口转发 4 浏览器不支持搭建的网页 5 端口被其他软件占用 移动10086云服务的80端口…...

    2024/5/4 4:26:36
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Oracle备份和还原的几种方式

    1、使用数据泵方式 exp demo/demoorcl buffer1024 filed&#xff1a;\back.dmp fully demo&#xff1a;用户名、密码 buffer: 缓存大小 file: 具体的备份文件地址 full: 是否导出全部文件 ignore: 忽略错误&#xff0c;如果表已经存在&#xff0c;则也是覆盖 exp demo/de…...

    2024/4/30 4:18:57
  4. Go语言中如何实现继承

    完整课程请点击以下链接 Go 语言项目开发实战_Go_实战_项目开发_孔令飞_Commit 规范_最佳实践_企业应用代码-极客时间 Go语言中没有传统意义上的类和继承的概念&#xff0c;但可以通过嵌入类型&#xff08;embedded types&#xff09;来实现类似的功能。嵌入类型允许一个结构…...

    2024/4/30 4:14:53
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/3 23:10:03
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/4 2:59:34
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57