《現(xiàn)代庫存管理:模型、算法與Python實(shí)現(xiàn)》 課件 第2章-需求預(yù)測_第1頁
《現(xiàn)代庫存管理:模型、算法與Python實(shí)現(xiàn)》 課件 第2章-需求預(yù)測_第2頁
《現(xiàn)代庫存管理:模型、算法與Python實(shí)現(xiàn)》 課件 第2章-需求預(yù)測_第3頁
《現(xiàn)代庫存管理:模型、算法與Python實(shí)現(xiàn)》 課件 第2章-需求預(yù)測_第4頁
《現(xiàn)代庫存管理:模型、算法與Python實(shí)現(xiàn)》 課件 第2章-需求預(yù)測_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

現(xiàn)代庫存管理:模型、算法與Python實(shí)現(xiàn)第2章需求預(yù)測基礎(chǔ)2.1需求預(yù)測的基本結(jié)構(gòu)一般認(rèn)為需求的實(shí)現(xiàn)值由兩部分構(gòu)成:可預(yù)測的需求模式:這部分由商品特征、經(jīng)濟(jì)規(guī)律等客觀規(guī)律決定不可預(yù)測的隨機(jī)因素:由一些難以刻畫的顧客購買行為和隨機(jī)影響導(dǎo)致

2.1需求預(yù)測的基本結(jié)構(gòu)

2.1需求預(yù)測的基本結(jié)構(gòu)產(chǎn)品的需求模式同時(shí)受到內(nèi)在規(guī)律和外生因素的影響內(nèi)在規(guī)律可以進(jìn)一步分解為趨勢性、季節(jié)性這兩種共通的需求變動(dòng)規(guī)律和產(chǎn)品本身決定的需求特性,由產(chǎn)品本身的性質(zhì)決定外生影響的來源則非常廣泛,往往需要針對具體的產(chǎn)品進(jìn)行具體分析和刻畫2.2需求預(yù)測方法的分類時(shí)間序列方法

宏觀趨勢

2.2需求預(yù)測方法的分類時(shí)間序列方法在使用時(shí)間序列模型時(shí),最重要的是理解模型采用了哪一種分解模型,以及刻畫的是序列中的哪一部分

宏觀因素微觀因素

趨勢性季節(jié)性一元多元簡單指數(shù)平滑√√

Holt-Winters√√

ARIMA

sARIMA

√√

VARMA

√sVARMA

√HTS

√prophet√√√

2.2需求預(yù)測方法的分類機(jī)器學(xué)習(xí)方法特點(diǎn)優(yōu)勢劣勢線性模型簡單的線性回歸形式,可以通過正則化項(xiàng)演化為LASSO或Ridge模型形式簡單只能擬合線性關(guān)系CART樹基于二分樹的結(jié)構(gòu)構(gòu)建,是后續(xù)許多集成方法的基礎(chǔ)結(jié)構(gòu)簡單,擬合能力強(qiáng)大對數(shù)據(jù)敏感,容易過擬合神經(jīng)網(wǎng)絡(luò)由線性變換、非線性激活函數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)組成多層網(wǎng)絡(luò)理論上可以以任意精度逼近任意函數(shù),具有強(qiáng)大的擬合能力網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,模型參數(shù)較多,容易調(diào)試不當(dāng)或過擬合隨機(jī)森林以并行的決策樹為基礎(chǔ)模型,通過簡單加權(quán)集成最終結(jié)果相比決策樹更加穩(wěn)健,可以并行運(yùn)算,計(jì)算速度快相比于GBDT集成方法效果較差XGBoost以決策樹為基礎(chǔ)模型,不斷強(qiáng)化對殘差的學(xué)習(xí)基于GBDT思想改進(jìn),能在實(shí)現(xiàn)較好模型效果同時(shí)以較快的速度完成運(yùn)算對于較大的數(shù)據(jù)運(yùn)行較慢;參數(shù)設(shè)置復(fù)雜,容易過擬合lightGBM以決策樹為基礎(chǔ)模型,不斷強(qiáng)化對殘差的學(xué)習(xí)在海量數(shù)據(jù)的場景下,能夠以較小的內(nèi)存和較快的速度完成計(jì)算參數(shù)設(shè)置復(fù)雜,容易過擬合Stacking以多種預(yù)測模型為基礎(chǔ)模型,通過機(jī)器學(xué)習(xí)模型集成最終結(jié)果模型形式簡單,效果強(qiáng)大,能夠集成不同模型的優(yōu)勢,包容性強(qiáng)容易過擬合2.2需求預(yù)測方法的分類比較和總結(jié)機(jī)器學(xué)習(xí)方法是數(shù)據(jù)驅(qū)動(dòng)的,時(shí)間序列方法是模型驅(qū)動(dòng)的機(jī)器學(xué)習(xí)模型的效果受到特征選擇、模型選擇、參數(shù)選擇等諸多因素的影響,實(shí)際運(yùn)用效果還要取決于業(yè)務(wù)場景、數(shù)據(jù)性質(zhì)和模型調(diào)試等諸多方面由于強(qiáng)大的擬合能力,在一個(gè)數(shù)據(jù)規(guī)模相對較小或是內(nèi)在規(guī)律簡單的數(shù)據(jù)集上,機(jī)器學(xué)習(xí)很容易過度擬合隨機(jī)擾動(dòng)因素,從而導(dǎo)致較差的泛化能力;而時(shí)間序列則能夠集中于把握宏觀趨勢,較好地剔除隨機(jī)擾動(dòng)的偶然影響機(jī)器學(xué)習(xí)得到的結(jié)果往往較難得到直觀理解,解釋力較弱,較難結(jié)合已有經(jīng)驗(yàn)進(jìn)行輔助判斷和調(diào)整;時(shí)間序列模型具有簡單清晰的模型結(jié)構(gòu),非常便于使用、解讀和調(diào)整2.3數(shù)據(jù)預(yù)處理在進(jìn)行需求預(yù)測之前,通常要對數(shù)據(jù)進(jìn)行預(yù)處理及分析。盡管不同企業(yè)的業(yè)務(wù)場景與產(chǎn)品的需求規(guī)律不同,但數(shù)據(jù)處理的步驟與方法是類似的本節(jié)以食品飲料快消品公司W(wǎng)2018年1月1日~2020年7月30日77個(gè)產(chǎn)品在18個(gè)分銷中心(distributioncenter,DC)的銷售數(shù)據(jù)為對象一般而言,盡管原始數(shù)據(jù)的具體格式不盡相同,需求預(yù)測任務(wù)的數(shù)據(jù)集至少包含以下信息:

商品名,有時(shí)存在品類信息,構(gòu)成兩級及以上的產(chǎn)品類別層級結(jié)構(gòu)銷售地點(diǎn),有時(shí)存在國家/區(qū)域—城市—終端銷售點(diǎn)的地理層級結(jié)構(gòu)時(shí)間,一般以日為顆粒度實(shí)際銷量首先,從數(shù)據(jù)文件夾讀入銷售數(shù)據(jù)表格,并查看表格前十行,以獲得對數(shù)據(jù)結(jié)構(gòu)的基本了解注意數(shù)據(jù)路徑的設(shè)置,相比于將文件地址作為一個(gè)完整字段,單獨(dú)指定文件夾路徑和表格名稱更具靈活性,更適用于具有較多數(shù)據(jù)表格需要管理以及可能存在數(shù)據(jù)遷移的場景2.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作importpandasaspd

data_dir=

'../../data/forecast_data/'

sales_data=pd.read_csv(data_dir+

'sales_data.csv')

print(sales_data.head(10))2.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作可以看到,本節(jié)所使用的數(shù)據(jù)集恰好對應(yīng)了需求預(yù)測任務(wù)的四個(gè)基本元素,并通過dc_id和sku_id組合成unit_id,從而標(biāo)識更細(xì)致的顆粒度

datedc_idsku_idunit_idsale

02018-05-01DC001SKU024DC001_SKU0240

12018-05-01DC001SKU070DC001_SKU0700

22018-05-01DC001SKU078DC001_SKU0789

32018-05-01DC001SKU044DC001_SKU044589

42018-05-01DC001SKU051DC001_SKU05143

52018-05-01DC001SKU063DC001_SKU0632751

62018-05-01DC001SKU099DC001_SKU09996

72018-05-01DC001SKU100DC001_SKU100200

82018-05-01DC001SKU101DC001_SKU10142

92018-05-01DC001SKU102DC001_SKU102102.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作

數(shù)據(jù)類型轉(zhuǎn)換時(shí)間數(shù)據(jù)在csv等文件中常以字符串形式儲(chǔ)存,對這種格式的數(shù)據(jù)無法使用一些針對時(shí)間戳格式的便捷操作。因此,在讀入帶有時(shí)間的數(shù)據(jù)時(shí),往往需要確認(rèn)時(shí)間數(shù)據(jù)類型并進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換sales_data['date']=pd.to_datetime(sales_data['date'])2.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作

數(shù)據(jù)整理當(dāng)拿到的原始數(shù)據(jù)的排列并不按照商品、DC和時(shí)間順序進(jìn)行排列時(shí),我們并不知道數(shù)據(jù)從何時(shí)開始、到何時(shí)結(jié)束,也不知道究竟有多少種商品和DC。所以接下來我們進(jìn)行對表格的排序、時(shí)間范圍的識別、商品種類和DC個(gè)數(shù)的統(tǒng)計(jì)工作表格的排序#排序

sales_data=sales_data.sort_values(

by=['dc_id','sku_id','date']).reset_index(drop=True)

print(sales_data.head())

datedc_idsku_idunit_idsale

02018-02-02DC001SKU001DC001_SKU0017

12018-02-03DC001SKU001DC001_SKU0010

22018-02-04DC001SKU001DC001_SKU0010

32018-02-05DC001SKU001DC001_SKU0012

42018-02-06DC001SKU001DC001_SKU0010時(shí)間范圍的識別商品種類及DC個(gè)數(shù)的統(tǒng)計(jì)2.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作

#商品種類和DC個(gè)數(shù)統(tǒng)計(jì)

all_sku_list=sales_data['sku_id'].unique().tolist()

print(f'商品個(gè)數(shù)為:{len(all_sku_list)}')

all_dc_list=sales_data['dc_id'].unique().tolist()

print(f'DC個(gè)數(shù)為:{len(all_dc_list)}')#時(shí)間范圍的識別

print(f'數(shù)據(jù)起始時(shí)間為:{sales_data["date"].min()}')

print(f'數(shù)據(jù)結(jié)束時(shí)間為:{sales_data["date"].max()}')數(shù)據(jù)起始時(shí)間為:2018-01-0100:00:00

數(shù)據(jù)結(jié)束時(shí)間為:2020-07-3000:00:00

商品個(gè)數(shù)為:77

DC個(gè)數(shù)為:182.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作

部分?jǐn)?shù)據(jù)篩選上述數(shù)據(jù)表格包含了所擁有的全部信息,但當(dāng)我們僅需要其中部分信息時(shí),可以將這部分?jǐn)?shù)據(jù)存放到一個(gè)新的數(shù)據(jù)表中,便于之后取用unit_id=

'DC001_SKU044'

unit_df=sales_data[sales_data['unit_id']==unit_id]

print(unit_df.head())

datedc_idsku_idunit_idsale

212282018-01-01DC001SKU044DC001_SKU04479

212292018-01-02DC001SKU044DC001_SKU044492

212302018-01-03DC001SKU044DC001_SKU0441261

212312018-01-04DC001SKU044DC001_SKU0441067

212322018-01-05DC001SKU044DC001_SKU0445352.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作

描述性統(tǒng)計(jì)pandas自帶的數(shù)據(jù)分析函數(shù)describe()可以自動(dòng)統(tǒng)計(jì)數(shù)值型數(shù)據(jù)的均值方差等信息,也可以自動(dòng)統(tǒng)計(jì)非數(shù)值型數(shù)據(jù)的個(gè)數(shù)、唯一值數(shù)量、最高頻率等信息print(unit_df['sale'].describe())count940.000000

mean1199.408511

std913.354405

min0.000000

25%628.000000

50%1106.000000

75%1661.750000

max7777.000000

Name:sale,dtype:float642.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作

數(shù)據(jù)聚合對于非時(shí)間類型的類別信息,我們一般可以通過groupby方法,將原始數(shù)據(jù)按照某一類進(jìn)行聚合下面的代碼展示了將原始的銷售數(shù)據(jù)按照商品進(jìn)行聚合,統(tǒng)計(jì)每一類產(chǎn)品的日度銷售情況,并按照日期和商品類別進(jìn)行排序print(sales_data.groupby(['sku_id','date'])['sale']\

.agg(['sum','mean','median','std'])\

.sort_values(by=['date','sku_id']).reset_index()[:5])2.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作

數(shù)據(jù)聚合由于日度銷量往往波動(dòng)性較高,有時(shí)需要將原始的日銷量數(shù)據(jù)聚合為一段時(shí)間內(nèi)的總銷量數(shù)據(jù),例如周銷量、月銷量等可以通過resample方法實(shí)現(xiàn),下列代碼展示了我們?nèi)绾螌⒃紨?shù)據(jù)聚合得到每個(gè)unit的周銷量數(shù)據(jù)weekly_sales_df=sales_data.groupby('unit_id')[['date','sale']]\

.resample('W',on='date').sum().reset_index()

print(weekly_sales_df.head())2.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作缺失值處理由于對于真實(shí)數(shù)據(jù),往往需要考察其完整性,并對缺失值做出一定的處理一般地,我們需要針對每個(gè)商品單元考察記錄完整性,即每個(gè)商品標(biāo)識下的數(shù)據(jù)是否完整覆蓋了數(shù)據(jù)集時(shí)間對于缺失數(shù)據(jù),不同的成因?qū)?yīng)了不同的解決方式這可能是正常的商業(yè)現(xiàn)象,即某天的銷售量為零,對此我們可以用0填充缺失數(shù)據(jù);這可能是數(shù)據(jù)遺失導(dǎo)致的,缺失部分存在銷售,但銷量并未被記錄,此時(shí)可以用插值的方式進(jìn)行填充也可能是因?yàn)楫a(chǎn)品上市和銷售時(shí)間不一致,某些新品、促銷品、季節(jié)品本身在市時(shí)間就較短,此時(shí)可以選擇將這些產(chǎn)品與常規(guī)品區(qū)別開,單獨(dú)構(gòu)建模型,或者通過定性分析的方式單獨(dú)進(jìn)行分析和處理2.3數(shù)據(jù)預(yù)處理數(shù)據(jù)導(dǎo)入及基礎(chǔ)操作數(shù)據(jù)輸出在完成上述的基本數(shù)據(jù)整理工作后,我們可以將得到的新數(shù)據(jù)表格輸出,在后續(xù)進(jìn)行深入分析和模型構(gòu)建時(shí),可以直接讀取整理好的結(jié)果,從而避免重復(fù)的數(shù)據(jù)預(yù)處理工作weekly_sales_df.to_csv(data_dir+

'weekly_sales_data.csv',index=False)2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化導(dǎo)入Python中常用的可視化工具包,matplotlib和seaborn,并統(tǒng)一繪圖格式代碼示例#導(dǎo)入繪圖包

importmatplotlib.pyplotasplt

importseabornassns

#設(shè)置畫圖風(fēng)格

sns.set_theme(style='darkgrid')

#設(shè)置畫布大小

plt.rcParams['figure.figsize']=(12.0,6.0)

#設(shè)置清晰度

plt.rcParams['figure.dpi']=

500#導(dǎo)入繪圖包

importmatplotlib.pyplotasplt

importseabornassns

2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化(接上頁)#設(shè)置畫圖風(fēng)格

sns.set_theme(style='darkgrid')

importmatplotlib

matplotlib.rc('font',family='SongtiSC')

parameters={'figure.figsize':[12.0,6.0],

'figure.dpi':500,

'axes.labelsize':14,

'xtick.labelsize':14,

'ytick.labelsize':14,

'legend.fontsize':14,

'font.weight':'bold'

}

plt.rcParams.update(parameters)2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化下列代碼定義了針對某一個(gè)產(chǎn)品銷量的季節(jié)性繪制函數(shù),通過將不同年份的數(shù)據(jù)疊加,可以更直觀地看到不同年份間是否存在相似的季節(jié)性變動(dòng)

#季節(jié)性繪制函數(shù)

defplot_year_seasonality(data,date_col,qty_col):

"""

data:pd.DataFrame格式數(shù)據(jù)

date_col:data中標(biāo)識日期的列名,需轉(zhuǎn)換為日期格式

qty_col:data中標(biāo)識銷量的列名

"""

#以1-12月設(shè)置橫坐標(biāo)

month_all_list=list(range(1,12

+

1))

plt.xticks(range(len(month_all_list)),month_all_list,rotation=60)

#設(shè)置曲線顏色和曲線標(biāo)識

color=['#787878','#1c79d9','black']

marker=['o','^','s']

#初始化標(biāo)簽列表

legend_list=[]

2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化color=['#787878','#1c79d9','black']

marker=['o','^','s']

#初始化標(biāo)簽列表

legend_list=[]

#將傳入數(shù)據(jù)按照月份聚合

data=data.resample('M',on=date_col).agg({qty_col:'sum'})

#提取數(shù)據(jù)涉及年份,并逐年遍歷

plot_year=list(set(data.index.year))

color_idx=

0

foryearinplot_year:

#提取當(dāng)年所有數(shù)據(jù),以月份為橫坐標(biāo),月總銷量為縱坐標(biāo)繪制折線圖

data_year=data[data.index.year==year]

data_inds=data_year.index.month

data_val=data_year[qty_col]

plt.plot(data_inds-

1,data_val,c=color[color_idx],

marker=marker[color_idx])

#為曲線添加標(biāo)簽

legend_list.append(year)

#動(dòng)態(tài)改變下一次繪圖曲線顏色

color_idx+=

1

2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化

#展示繪制圖像

plt.xlabel('月份')

plt.ylabel('銷量')

plt.legend(legend_list,loc='upperright')

plt.show()

2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化分別考察’SKU044’和’SKU008’在’DC001’的銷量季節(jié)性??梢园l(fā)現(xiàn),’SKU044’的銷量季節(jié)性并不明顯,相比之下’SKU008’則呈現(xiàn)出一定的季節(jié)規(guī)律:在3-7月呈現(xiàn)出銷量上升的共同趨勢,在9月~次年2月呈現(xiàn)出銷量下降的共同趨勢2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化下列代碼定義了針對某一個(gè)產(chǎn)品銷量的趨勢性繪制函數(shù),利用產(chǎn)品的月銷量數(shù)據(jù)繪制折線圖,來直觀地考察其上升下降趨勢#趨勢性繪制函數(shù)

defplot_trend(data,date_col,qty_col):

data=data.resample('M',on=date_col).sum()

plt.plot(data['sale'],color='#1c79d9',marker='o')

plt.xlabel('時(shí)間')

plt.ylabel('銷量')

plt.show()

2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化選擇’DC001_SKU044’和’DC017_SKU002’兩個(gè)unit分別繪制其趨勢圖像??梢钥吹剑罢叱尸F(xiàn)出一定的上升趨勢,同時(shí)疊加了一定的季節(jié)性波動(dòng);而后者則出現(xiàn)了較為明顯的下降趨勢。在針對這兩個(gè)unit進(jìn)行需求預(yù)測時(shí),為了獲得更好的預(yù)測效果,需要將產(chǎn)品的趨勢性納入模型考慮2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化當(dāng)一個(gè)商品在多個(gè)地區(qū)進(jìn)行銷售時(shí),其在各區(qū)域之間的需求可能存在一定的相關(guān)性,這是由商品屬性決定的共同趨勢。同時(shí),不同產(chǎn)品之間也可能存在相互關(guān)聯(lián)不管是在模型構(gòu)建還是特征構(gòu)建中,我們都可以將相關(guān)因素納入其中,以提升預(yù)測模型的準(zhǔn)確性這一操作在經(jīng)過格式轉(zhuǎn)換的數(shù)據(jù)上可以通過調(diào)用內(nèi)置函數(shù)corr()實(shí)現(xiàn),同時(shí),也可以通過繪制熱力圖,更直觀地觀察相關(guān)性sku_df=sales_data[sales_data[‘sku_id’]==

‘SKU076’]

corr=sku_df[[‘date’,‘dc_id’,‘sale‘]]\

.pivot(index='date',columns='dc_id',values='sale').corr()

sns.heatmap(corr,annot=True,cmap="Blues")<AxesSubplot:xlabel='dc_id',ylabel='dc_id'>

2.3數(shù)據(jù)預(yù)處理時(shí)序數(shù)據(jù)可視化熱力圖解讀可以通過圖中標(biāo)注出的相關(guān)系數(shù)考察變量相關(guān)性,相關(guān)系數(shù)的取值范圍在-1到1之間,越接近于1表明正相關(guān)程度越高,越接近于-1表明負(fù)相關(guān)程度越高,越接近于0表明相關(guān)性越弱也可以結(jié)合圖例,從色塊顏色直觀地考察變量之間的相關(guān)性2.3數(shù)據(jù)預(yù)處理異常點(diǎn)檢驗(yàn)

2.3數(shù)據(jù)預(yù)處理異常點(diǎn)檢驗(yàn)下面兩個(gè)函數(shù)定義了上述兩種異常值檢測方法,輸入DataFrame格式的數(shù)據(jù)并指定要考察異常值的數(shù)據(jù)列名,函數(shù)便會(huì)返回離群值的標(biāo)識defsigma_outlier(data,qty_col):

upper=data[qty_col].mean()+

3

*data[qty_col].std()

lower=data[qty_col].mean()-

3

*data[qty_col].std()

returndata[

(data[qty_col]>upper)|(data[qty_col]<lower)].index.tolist()defquantile_outlier(data,qty_col):

q1=data[qty_col].quantile(q=0.25)

q3=data[qty_col].quantile(q=0.75)

upper=q3+

1.5

*(q3-q1)

lower=q1-

1.5

*(q3-q1)

returndata[(data[qty_col]>upper)|(data[qty_col]<lower)].index

2.4評價(jià)預(yù)測模型的方法在預(yù)測任務(wù)中,兩組不同的預(yù)測結(jié)果何者更好,往往并不直觀。在某些數(shù)據(jù)集上一種方法可能比另一種方法的預(yù)測結(jié)果更接近真實(shí)值,而在其他數(shù)據(jù)集上則可能反之因此,我們需要一套規(guī)范化的指標(biāo)對預(yù)測結(jié)果進(jìn)行評估,以便選擇最合適的預(yù)測方法2.4評價(jià)預(yù)測模型的方法樣本內(nèi)外誤差數(shù)據(jù)泄露(dataleakage):其實(shí)質(zhì)是進(jìn)行模型評估的數(shù)據(jù)同時(shí)被用于模型訓(xùn)練,為了更好地預(yù)測未來值,而不是最優(yōu)擬合歷史數(shù)據(jù),所以需要避免數(shù)據(jù)泄露模型在已知數(shù)據(jù)集上表現(xiàn)優(yōu)于在未知數(shù)據(jù)集上表現(xiàn)的現(xiàn)象,被稱為過擬合,這樣的模型被稱為泛化能力差。這種現(xiàn)象是預(yù)測中常常會(huì)遇到的,需要盡力避免進(jìn)行模型訓(xùn)練和模型評估所用的數(shù)據(jù)集應(yīng)該沒有交集,以避免因數(shù)據(jù)泄露導(dǎo)致的對模型的不公允評估與選擇2.4評價(jià)預(yù)測模型的方法樣本內(nèi)外誤差在實(shí)踐中,將數(shù)據(jù)集按照一定的比例切分為訓(xùn)練集(即用于模型訓(xùn)練的數(shù)據(jù))和測試集(即用于模型評估的數(shù)據(jù))在和時(shí)間順序無關(guān)的數(shù)據(jù)集中,一般隨機(jī)選擇數(shù)據(jù)劃分為這兩個(gè)集合,以保證兩個(gè)集合具有類似的數(shù)據(jù)結(jié)構(gòu)在時(shí)序場景下,需要遵循數(shù)據(jù)集的時(shí)間屬性,將靠前的數(shù)據(jù)劃分為訓(xùn)練集,靠后的數(shù)據(jù)劃分為測試集。在進(jìn)行切分的時(shí)候,也不再按照比例的方式?jīng)Q定兩個(gè)數(shù)據(jù)集合的大小,而是根據(jù)一個(gè)指定的時(shí)間,對數(shù)據(jù)進(jìn)行前后切分模型在訓(xùn)練集上給出的預(yù)測結(jié)果與真實(shí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論