2023年第十一屆泰迪杯數(shù)據(jù)挖掘挑戰(zhàn)賽B題
責(zé)任編輯:傳說的落葉 時間:2024-09-24 11:17
[導(dǎo)讀]【2023年第十一屆泰迪杯數(shù)據(jù)挖掘挑戰(zhàn)賽】B題:產(chǎn)品訂單的數(shù)據(jù)分析與需求預(yù)測 建模及python代碼詳解 問題一
1 題目
一.問題背景
近年來企業(yè)外部環(huán)境越來越不確定,復(fù)雜多變的外部環(huán)境,讓企業(yè)供應(yīng)鏈面臨較多難題。
需求預(yù)測作為企業(yè)供應(yīng)鏈的第一道防線,重要程度不言而喻,然而需求預(yù)測受多種因素的影響,導(dǎo)致預(yù)測準(zhǔn)確率普遍較低,因此需要更加優(yōu)秀的算法來解決這個問題。需求預(yù)測是基于歷史數(shù)據(jù)和未來的預(yù)判得出的有理論依據(jù)的結(jié)論,有利于公司管理層對未來的銷售及運(yùn)營計(jì)劃、目標(biāo),資金預(yù)算做決策參考;其次,需求預(yù)測有助于采購計(jì)劃和安排生產(chǎn)計(jì)劃的制定, 減少受業(yè)務(wù)波動的影響。如果沒有需求預(yù)測或者預(yù)測不準(zhǔn),公司內(nèi)部很多關(guān)于銷售、采購、財(cái)務(wù)預(yù)算等決策都只能根據(jù)經(jīng)驗(yàn)而來了,會導(dǎo)致對市場預(yù)測不足,產(chǎn)生庫存和資金的積壓或不足等問題,增加企業(yè)庫存成本。
二.?dāng)?shù)據(jù)說明
附件中的訓(xùn)練數(shù)據(jù)(order_train1.csv)提供了國內(nèi)某大型制造企業(yè)在 2015 年 9 月 1日至 2018 年 12 月 20 日面向經(jīng)銷商的出貨數(shù)據(jù)(格式見表 1),反應(yīng)了該企業(yè)產(chǎn)品在不同銷售區(qū)域的價(jià)格和需求等信息,包括:order_date(訂單日期)、sales_region_code(銷售區(qū)域編碼)、item_code(產(chǎn)品編碼)、first_cate_code (產(chǎn)品大類編碼)、second_cate_code (產(chǎn)品細(xì)類編碼)、sales_chan_name (銷售渠道名稱)、item_price (產(chǎn)品價(jià)格)和 ord_qty (訂單需求量)。
表1:訓(xùn)練數(shù)量(歷史數(shù)據(jù))的數(shù)據(jù)格式
其中“訂單日期”為某個需求量的日期;一個“產(chǎn)品大類編碼”會對應(yīng)多個“產(chǎn)品細(xì)類編碼”;“銷售渠道名稱”分為 online(線上)和 offline(線下),“線上”是指淘寶和京東等電商平臺,“線下”是指線下實(shí)體經(jīng)銷商。
附件中的預(yù)測數(shù)據(jù)(predict_sku1.csv)提供了需要預(yù)測產(chǎn)品的銷售區(qū)域編碼、產(chǎn)品編碼、產(chǎn)品品類和產(chǎn)品細(xì)品類(格式見表 2)。
表2:需要預(yù)測的產(chǎn)品的數(shù)據(jù)樣例
三.需要解決的問題
- 請對附件中的訓(xùn)練數(shù)據(jù)(order_train1.csv)進(jìn)行深入地分析,可參照但不限于下述主
題。
(1) 產(chǎn)品的不同價(jià)格對需求量的影響;
(2) 產(chǎn)品所在區(qū)域?qū)π枨罅康挠绊懀约安煌瑓^(qū)域的產(chǎn)品需求量有何特性;
(3) 不同銷售方式(線上和線下)的產(chǎn)品需求量的特性;
(4) 不同品類之間的產(chǎn)品需求量有何不同點(diǎn)和共同點(diǎn);
(5) 不同時間段(例如月頭、月中、月末等)產(chǎn)品需求量有何特性;
(6) 節(jié)假日對產(chǎn)品需求量的影響;
(7) 促銷(如 618、雙十一等)對產(chǎn)品需求量的影響;
(8) 季節(jié)因素對產(chǎn)品需求量的影響。
- 基于上述分析,建立數(shù)學(xué)模型,對附件預(yù)測數(shù)據(jù)(predict_sku1.csv)中給出的產(chǎn)品,預(yù)測未來 3 月(即 2019 年 1 月、2 月、3 月)的月需求量,將預(yù)測結(jié)果按照表 3 的格式保存為文件 result1.xlsx,與論文一起提交。請分別按天、周、月的時間粒度進(jìn)行預(yù)測,試分析不同的預(yù)測粒度對預(yù)測精度會產(chǎn)生什么樣的影響。
2 問題分析
2.1 問題一
(1)產(chǎn)品的不同價(jià)格對需求量的影響
首先,讀取數(shù)據(jù)并提取item_price和ord_qty兩列數(shù)據(jù); 然后,根據(jù)item_price進(jìn)行分組統(tǒng)計(jì),計(jì)算每個價(jià)格區(qū)間的平均需求量; 最后,通過散點(diǎn)圖將不同價(jià)格區(qū)間的平均需求量進(jìn)行可視化展示。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
# 讀取數(shù)據(jù)
df = pd.read_csv('data/order_train0.csv')
# 按照產(chǎn)品價(jià)格分組,并計(jì)算平均值
grouped = df.groupby('item_price')['ord_qty'].mean().reset_index()
# 使用 Matplotlib 畫圖
plt.figure(figsize=(10, 6))
plt.plot(grouped['item_price'], grouped['ord_qty'], 'o-')
plt.xlabel('Product Price')
plt.ylabel('Average Order Quantity')
plt.title('Relationship between Product Price and Order Quantity')
plt.savefig('img/1.png',dpi=300)
# 使用 Seaborn 畫圖
sns.set_style('darkgrid')
plt.figure(figsize=(10, 6))
sns.lineplot(x='item_price', y='ord_qty', data=grouped)
plt.xlabel('Product Price')
plt.ylabel('Average Order Quantity')
plt.title('Relationship between Product Price and Order Quantity')
plt.savefig('img/2.png',dpi=300)
從圖表中可以看出,產(chǎn)品價(jià)格與平均訂單需求量之間呈現(xiàn)出U形關(guān)系,即價(jià)格較低或較高時,訂單需求量較高;而當(dāng)價(jià)格處于中間區(qū)間時,訂單需求量較低。這可能是因?yàn)閮r(jià)格過低會讓消費(fèi)者覺得產(chǎn)品質(zhì)量不高,而價(jià)格過高則會讓消費(fèi)者覺得不值得購買。因此,合理的定價(jià)策略可以在一定程度上提高產(chǎn)品的銷售量。
也可以使用回歸模型(例如線性回歸、多項(xiàng)式回歸等)對產(chǎn)品價(jià)格和需求量之間的關(guān)系進(jìn)行建模和預(yù)測,從而確定價(jià)格對需求量的影響。
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 讀取數(shù)據(jù)
df = pd.read_csv('order_train1.csv')
# 繪制散點(diǎn)圖
sns.scatterplot(x='item_price', y='ord_qty', data=df)
# 繪制箱線圖
sns.boxplot(x='item_price', y='ord_qty', data=df)
# 使用線性回歸模型擬合
x = df[['item_price']]
y = df[['ord_qty']]
model = LinearRegression()
model.fit(x, y)
# 輸出模型系數(shù)和截距
print('Coefficients:', model.coef_)
print('Intercept:', model.intercept_)
(2)產(chǎn)品所在區(qū)域?qū)π枨罅康挠绊懀约安煌瑓^(qū)域的產(chǎn)品需求量有何特性
可以通過對不同區(qū)域的需求量進(jìn)行可視化分析,例如繪制直方圖、箱線圖等,查看需求量的分布情況。也可以使用ANOVA方差分析等方法來判斷不同區(qū)域之間的需求量是否存在顯著差異,從而確定產(chǎn)品所在區(qū)域?qū)π枨罅康挠绊憽?/p>
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import f_oneway
# 讀取數(shù)據(jù)
df = pd.read_csv('order_train1.csv')
# 繪制直方圖
sns.histplot(x='ord_qty', hue='sales_region_code', data=df, kde=True)
# 繪制箱線圖
sns.boxplot(x='sales_region_code', y='ord_qty', data=df)
# 進(jìn)行ANOVA方差分析
grouped_data = df.groupby('sales_region_code')['ord_qty'].apply(list)
。。。略,請下載完整代碼
print('F-value:', f_value)
print('P-value:', p_value)
(3)不同銷售方式(線上和線下)的產(chǎn)品需求量的特性
可以通過繪制不同銷售方式的需求量直方圖、箱線圖等方法來查看產(chǎn)品需求量的分布情況和差異。也可以使用t檢驗(yàn)等方法來確定不同銷售方式之間的需求量是否存在顯著差異。
然后,我們可以按照銷售渠道名稱(sales_chan_name
)將數(shù)據(jù)分為線上和線下兩類,計(jì)算它們的訂單需求量(ord_qty
)的基本統(tǒng)計(jì)量,包括均值、中位數(shù)、最大值、最小值、標(biāo)準(zhǔn)差等,以了解它們的分布情況和差異性。
import pandas as pd
# 讀取數(shù)據(jù)
data = pd.read_csv('order_train1.csv')
# 查看數(shù)據(jù)
print(data.head())
# 將數(shù)據(jù)按照銷售渠道名稱分為線上和線下兩類
online_data = data[data['sales_chan_name'] == 'online']
offline_data = data[data['sales_chan_name'] == 'offline']
# 計(jì)算線上和線下訂單需求量的基本統(tǒng)計(jì)量
print('線上訂單需求量的基本統(tǒng)計(jì)量:')
print(online_data['ord_qty'].describe())
print('線下訂單需求量的基本統(tǒng)計(jì)量:')
print(offline_data['ord_qty'].describe())
除了計(jì)算訂單需求量的基本統(tǒng)計(jì)量之外,我們還可以通過可視化方式更加直觀地了解不同銷售方式下產(chǎn)品需求量的特性。在 Python 中,我們可以使用 Matplotlib 或者 Seaborn 庫進(jìn)行數(shù)據(jù)可視化。
import seaborn as sns
# 設(shè)置圖形風(fēng)格
sns.set(style="ticks", palette="pastel")
# 繪制箱線圖,分析線上和線下訂單需求量的分布情況
sns.boxplot(x="sales_chan_name", y="ord_qty", data=data)
# 顯示圖形
sns.despine(trim=True)
運(yùn)行上述代碼,可以得到一個箱線圖,展示了線上和線下訂單需求量的分布情況。通過比較箱線圖的位置、大小和形狀等特征,我們可以了解不同銷售方式下產(chǎn)品需求量的差異性和分布情況。例如,如果線上訂單需求量的中位數(shù)明顯高于線下訂單需求量的中位數(shù),那么我們可以判斷線上銷售渠道對產(chǎn)品需求量的貢獻(xiàn)較大。
import matplotlib.pyplot as plt
# 提取線上和線下訂單需求量
online_ord_qty = data[data["sales_chan_name"] == "online"]["ord_qty"]
offline_ord_qty = data[data["sales_chan_name"] == "offline"]["ord_qty"]
# 繪制線上和線下訂單需求量直方圖
。。。略,請下載完整代碼
labels = ['Online', 'Offline']
plt.bar(labels, X)
plt.title('Distribution of Sales Channels')
plt.xlabel('Sales Channels')
plt.ylabel('Sales Volume')
plt.show()
核密度圖可以更加直觀地展示數(shù)據(jù)的分布情況,它可以通過對數(shù)據(jù)進(jìn)行平滑處理,得到一條連續(xù)的曲線,反映了數(shù)據(jù)的概率密度分布情況。
import seaborn as sns
# 提取線上和線下訂單需求量
online_ord_qty = data[data["sales_chan_name"] == "online"]["ord_qty"]
offline_ord_qty = data[data["sales_chan_name"] == "offline"]["ord_qty"]
# 繪制線上和線下訂單需求量核密度圖
sns.kdeplot(online_ord_qty, shade=True, label="Online")
sns.kdeplot(offline_ord_qty, shade=True, label="Offline")
plt.legend(loc="upper right")
plt.title("Distribution of Order Quantity by Sales Channel")
plt.xlabel("Order Quantity")
plt.ylabel("Density")
plt.show()
從核密度圖中可以看出,線下銷售方式下的產(chǎn)品需求量分布相對于線上銷售方式更加集中,呈現(xiàn)出一個明顯的峰態(tài);而線上銷售方式下的產(chǎn)品需求量分布比較平滑,沒有出現(xiàn)明顯的峰態(tài)。同時,線下銷售方式下的產(chǎn)品需求量整體偏高,而線上銷售方式下的產(chǎn)品需求量整體偏低。
# 繪制散點(diǎn)圖
sns.scatterplot(data=train_data, x="item_price", y="ord_qty", hue="sales_chan_name")
從散點(diǎn)圖中可以看出,線下銷售方式下產(chǎn)品價(jià)格與需求量之間的關(guān)系似乎比線上銷售方式下更加緊密,而且線下銷售方式下有一些高價(jià)格、高需求量的異常值。但是需要注意的是,由于數(shù)據(jù)中的產(chǎn)品價(jià)格和需求量都是離散值,所以散點(diǎn)圖中的點(diǎn)是會有重疊的。
(4)不同品類之間的產(chǎn)品需求量有何不同點(diǎn)和共同點(diǎn);
- 按照品類分組,計(jì)算每個品類的訂單需求量的平均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計(jì)指標(biāo);
- 繪制每個品類的訂單需求量的分布直方圖;
- 對于不同品類之間的需求量進(jìn)行比較分析,找出不同品類之間的不同點(diǎn)和共同點(diǎn)。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 讀取數(shù)據(jù)
data = pd.read_csv('order_train1.csv')
# 按照品類分組,計(jì)算每個品類的訂單需求量的平均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計(jì)指標(biāo)
category_demand = data.groupby('second_cate_code')['ord_qty'].agg(['mean', 'median', 'std'])
。。。略,請下載完整代碼
# 繪制每個品類的訂單需求量的分布直方圖
category_list = data['second_cate_code'].unique().tolist()
for category in category_list:
demand = data.loc[data['second_cate_code'] == category, 'ord_qty']
plt.hist(demand, bins=30)
plt.title(f'Cate:{category}')
plt.xlabel('Demand')
plt.ylabel('Frequency')
plt.show()
# 對于不同品類之間的需求量進(jìn)行比較分析,找出不同品類之間的不同點(diǎn)和共同點(diǎn)
# 可以使用t檢驗(yàn)、方差分析等統(tǒng)計(jì)方法
(5)不同時間段(例如月頭、月中、月末等)產(chǎn)品需求量有何特性;
- 將訂單日期按月份進(jìn)行分組,計(jì)算每個月份的訂單需求量的平均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計(jì)指標(biāo);
- 繪制每個月份的訂單需求量的趨勢圖;
- 將每個月份的訂單需求量按照日期進(jìn)行分組,分別計(jì)算月初、月中、月末的訂單需求量的平均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計(jì)指標(biāo);
- 對于不同時間段之間的需求量進(jìn)行比較分析,找出不同時間段之間的不同點(diǎn)和共同點(diǎn)。
為了研究不同時間段產(chǎn)品需求量的特性,我們需要首先將訂單日期進(jìn)行拆分,提取出月初、月中和月末三個時間段的需求量。可以使用 pandas 中的 dt 屬性來獲取日期時間中的年、月、日、小時等信息。在這里,我們可以使用 pandas 中的 cut 函數(shù)對訂單日期進(jìn)行分段,然后對不同時間段的訂單需求量進(jìn)行統(tǒng)計(jì)。
import pandas as pd
# 讀取數(shù)據(jù)
data = pd.read_csv('order_train1.csv')
# 轉(zhuǎn)換訂單日期格式為 datetime 類型
data['order_date'] = pd.to_datetime(data['order_date'], format='%y/%m/%d')
# 根據(jù)訂單日期將數(shù)據(jù)進(jìn)行排序
data = data.sort_values(by='order_date')
# 按照月初、月中、月末將訂單需求量進(jìn)行分組
。。。略,請下載完整代碼
time_bins = [0, 10, 20, 31]
data['order_date_category'] = pd.cut(data['order_date'].dt.day, bins=time_bins, labels=time_labels)
# 統(tǒng)計(jì)不同時間段的訂單需求量
demand_by_time = data.groupby('order_date_category')['ord_qty'].sum()
# 繪制不同時間段的訂單需求量柱狀圖
demand_by_time.plot(kind='bar')
(6)節(jié)假日對產(chǎn)品需求量的影響:
節(jié)假日通常會對消費(fèi)者的購買行為產(chǎn)生影響,因此對產(chǎn)品需求量也會有影響。在此問題中,我們可以選取國內(nèi)的法定節(jié)假日,對節(jié)假日和非節(jié)假日進(jìn)行對比分析。
為了分析節(jié)假日對產(chǎn)品需求量的影響,可以先對數(shù)據(jù)進(jìn)行處理,找出所有的節(jié)假日以及對應(yīng)的日期。在本數(shù)據(jù)集中,可以通過觀察訂單日期(order_date)列來確定節(jié)假日日期,例如春節(jié)、國慶節(jié)等。然后,可以計(jì)算出每個節(jié)假日的平均需求量,將其與普通日的需求量進(jìn)行比較,從而分析節(jié)假日對產(chǎn)品需求量的影響。
- 加載數(shù)據(jù)集并進(jìn)行數(shù)據(jù)預(yù)處理,將訂單日期(order_date)轉(zhuǎn)換為日期格式,然后根據(jù)日期確定是否為節(jié)假日,將其標(biāo)記為1,否則標(biāo)記為0。
- 根據(jù)標(biāo)記將數(shù)據(jù)集分成兩部分,一部分為節(jié)假日數(shù)據(jù),一部分為非節(jié)假日數(shù)據(jù)。
- 對于節(jié)假日數(shù)據(jù)和非節(jié)假日數(shù)據(jù),計(jì)算每天的平均需求量。
- 將結(jié)果可視化,比較節(jié)假日和非節(jié)假日的平均需求量,觀察是否存在明顯差異。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime
import holidays
# 加載數(shù)據(jù)集并進(jìn)行數(shù)據(jù)預(yù)處理
df = pd.read_csv('data/order_train0.csv')
df['order_date'] = pd.to_datetime(df['order_date'])
df['is_holiday'] = df['order_date'].isin(holidays.China(years=[2015,2016,2017,2018]))
df['is_holiday'] = df['is_holiday'].astype(int)
# 將數(shù)據(jù)集分成兩部分:節(jié)假日數(shù)據(jù)和非節(jié)假日數(shù)據(jù)
。。。略,請下載完整代碼
# 計(jì)算每天的平均需求量
holiday_demand = holiday_df.groupby(['order_date'])['ord_qty'].mean()
non_holiday_demand = non_holiday_df.groupby(['order_date'])['ord_qty'].mean()
# 可視化比較節(jié)假日和非節(jié)假日的平均需求量
plt.figure(figsize=(10,6))
plt.plot(holiday_demand.index, holiday_demand.values, label='Holiday')
plt.plot(non_holiday_demand.index, non_holiday_demand.values, label='Non-Holiday')
plt.title('Average demand on holiday vs non-holiday')
plt.xlabel('Date')
plt.ylabel('Average demand')
plt.legend()
plt.show()
(7)促銷對產(chǎn)品需求量的影響:
促銷活動通??梢蕴岣弋a(chǎn)品的銷售量,因此對產(chǎn)品需求量也會有影響。在此問題中,我們可以選取一些促銷活動,對促銷期和非促銷期進(jìn)行對比分析。
- 對于促銷日數(shù)據(jù)和非促銷日數(shù)據(jù),計(jì)算每天的平均需求量。
- 將結(jié)果可視化,比較促銷日和非促銷日的平均需求量,觀察是否存在明顯差異。
- 比較促銷期和非促銷期的平均訂單需求量,以分析促銷對產(chǎn)品需求量的影響。
import pandas as pd
import matplotlib.pyplot as plt
# 加載數(shù)據(jù)集
df = pd.read_csv('data/order_train0.csv', parse_dates=['order_date'])
df['order_date'] = pd.to_datetime(df['order_date'], format='%y/%m/%d')
# 按照促銷日期將數(shù)據(jù)集分成兩部分
promo_dates = [pd.to_datetime('2016-06-18'), pd.to_datetime('2016-11-11')]
df_promo = df[df['order_date'].isin(promo_dates)]
df_nonpromo = df[~df['order_date'].isin(promo_dates)]
# 計(jì)算促銷和非促銷期間的每天平均需求量
。。。略,請下載完整代碼
# 可視化結(jié)果
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(promo_mean_qty.index, promo_mean_qty.values, label='Promo')
ax.plot(nonpromo_mean_qty.index, nonpromo_mean_qty.values, label='Non-Promo')
ax.set_xlabel('Date')
ax.set_ylabel('Average Demand')
ax.set_title('Impact of Promotions on Product Demand')
ax.legend()
plt.show()
比較促銷期和非促銷期的平均訂單需求量,以分析促銷對產(chǎn)品需求量的影響。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 1. 確定促銷期
promotions = ['2015/6/18', '2015/11/11', '2016/6/18', '2016/11/11', '2017/6/18', '2017/11/11', '2018/6/18']
# 2. 加載并預(yù)處理數(shù)據(jù)
df = pd.read_csv('data/order_train0.csv', parse_dates=['order_date'], dtype={'sales_region_code': 'str'})
df['is_promotion'] = df['order_date'].isin(promotions).astype(int)
df_agg = df.groupby(['order_date'])['ord_qty'].sum().reset_index()
# 3. 計(jì)算促銷期和非促銷期的訂單需求量
df_promo = df_agg[df_agg['order_date'].isin(promotions)]
df_nonpromo = df_agg[~df_agg['order_date'].isin(promotions)]
promo_mean = df_promo['ord_qty'].mean()
nonpromo_mean = df_nonpromo['ord_qty'].mean()
# 4. 可視化比較促銷期和非促銷期的訂單需求量
。。。略,請下載完整代碼
ax.bar(['Promotion', 'Non-promotion'], [promo_mean, nonpromo_mean])
ax.set_xlabel('Period')
ax.set_ylabel('Average order quantity')
ax.set_title('Effect of promotions on order quantity')
plt.show()
從條形圖中可以看出,參與促銷的產(chǎn)品平均需求量比沒有參與促銷的產(chǎn)品平均需求量要高。這表明促銷活動對產(chǎn)品需求量有積極的影響。
8、季節(jié)因素對產(chǎn)品需求量的影響
- 將訂單日期轉(zhuǎn)換為季節(jié),按季度聚合訂單需求量。
- 對于每個季節(jié),繪制訂單需求量的直方圖和核密度圖,以及訂單需求量與產(chǎn)品價(jià)格的散點(diǎn)圖。
import pandas as pd
import matplotlib.pyplot as plt
# 讀取數(shù)據(jù)
df = pd.read_csv('order_train1.csv')
# 將訂單日期轉(zhuǎn)換為季節(jié)
def date_to_season(date):
year, month, day = map(int, date.split('/'))
if month in (3, 4, 5):
return 'Spring'
elif month in (6, 7, 8):
return 'Summer'
elif month in (9, 10, 11):
return 'Autumn'
else:
return 'Winter'
df['Season'] = df['order_date'].apply(date_to_season)
# 按季度聚合訂單需求量
。。。略,請下載完整代碼
# 繪制直方圖和核密度圖
for season in ['Spring', 'Summer', 'Autumn', 'Winter']:
plt.figure(figsize=(8,6))
plt.hist(df[df['Season'] == season]['ord_qty'], bins=20, alpha=0.5, color='blue')
df[df['Season'] == season]['ord_qty'].plot(kind='density', secondary_y=True)
plt.title('Demand Distribution in ' + season)
plt.xlabel('Order Demand')
plt.ylabel('Frequency / Density')
plt.show()
# 繪制散點(diǎn)圖
for season in ['Spring', 'Summer', 'Autumn', 'Winter']:
plt.figure(figsize=(8,6))
plt.scatter(df[df['Season'] == season]['item_price'], df[df['Season'] == season]['ord_qty'], alpha=0.5)
plt.title('Demand vs. Price in ' + season)
plt.xlabel('Item Price')
plt.ylabel('Order Demand')
plt.show()
從結(jié)果中可以看出,不同季節(jié)的訂單需求量分布存在差異,例如冬季的訂單需求量普遍較高,而夏季的訂單需求量則普遍較低。此外,不同季節(jié)的訂單需求量與產(chǎn)品價(jià)格之間的關(guān)系也存在一定的差異,例如在春季和秋季,訂單需求量與產(chǎn)品價(jià)格之間存在一定的正相關(guān)關(guān)系,而在夏季和冬季則不存在明顯的相關(guān)性。
2.2 問題二
【2023年第十一屆泰迪杯數(shù)據(jù)挖掘挑戰(zhàn)賽】B題:產(chǎn)品訂單的數(shù)據(jù)分析與需求預(yù)測 建模及python代碼詳解 問題二
3 完整代碼
電腦瀏覽器打開
betterbench.top/#/49/detail
- 分享到:
- 萬元大獎 南平市文化2024年11月13日
- 2024年長沙聯(lián)通智家品2024年11月11日
- 宣城市新聞傳媒中心2024年11月11日
- 安陽市文物考古研究2024年11月11日
- 西南巖溶國家公園形2024年11月11日
- 東方市漁業(yè)公用品牌2024年11月11日
- 桂林南藥首屆文創(chuàng)產(chǎn)2024年10月23日
- 第二屆長治文化創(chuàng)意2024年10月23日
- 第七屆“東風(fēng)夢想車2024年10月23日
- 2024中國制造之美終評2024年10月23日
-
超市貨架3d模型專題 羅馬柱3d模型專題 排版設(shè)計(jì)專題 maya2008下載專題 沙漏燈專題 創(chuàng)意文具專題 概念摩托車設(shè)計(jì)專題 中秋節(jié)創(chuàng)意禮品專題 耳機(jī)設(shè)計(jì)專題 卡通形象設(shè)計(jì)專題 服裝設(shè)計(jì)專題 鼠標(biāo)墊設(shè)計(jì)專題 床3d模型下載專題 創(chuàng)意壁紙專題 模特3d模型下載專題 直播預(yù)告專題 創(chuàng)意格子專題 辦公環(huán)境設(shè)計(jì)專題 3d吧臺模型專題 房子設(shè)計(jì)專題