Python 資料分析預測商品銷售額_其它 - 程式人生
文章推薦指數: 80 %
一、選題的背景選擇此題: 題目來源於Kaglge競賽平臺,具有一定的學習意義。
可以更好的理解機器學習和資料分析的券過程。
目標:根據商店的銷售資料預測 ...
程式人生>實用技巧>其它>Python資料分析預測商品銷售額
Python資料分析預測商品銷售額
阿新•來源:網路•發佈:2021-06-21
一、選題的背景
選擇此題:題目來源於Kaglge競賽平臺,具有一定的學習意義。
可以更好的理解機器學習和資料分析的券過程。
目標:根據商店的銷售資料預測商品的銷售額
社會:通過機器學習幫助商店老闆做出決策,可以提供貨物的資源利用率,促進社會經濟發展。
經濟:通過對銷售額的預測,可以更好的幫助老闆進貨和銷售,提高商店的收益。
技術:通過這一次的專案的學習,可以學到機器學習,資料探勘的全部流程。
從資料獲取,到資料處理,特徵選擇,模型建立各個方面全面掌握機器學習的流程。
可以更深入對機器學習總迴歸任務的理解。
二、大資料分析設計方案
1.資料集描述:訓練集樣本個數:8523,測試集樣本個數:5681。
資料集欄位說明:訓練集共11個特徵,1個標籤;測試集只有11個特徵,沒有標籤。
其中Item_Identifier,Item_Fat_Content等8個特徵的原始資料都是字串型別,其餘特徵是浮點數型別。
(具體特徵如下圖所示)
2.專案實現的主要思路
(1)觀察資料集各個特徵,ᨀ出猜想,結果可能和哪些因素有關
(2)檢查各個特徵的資料型別,將其轉化為樹枝型別方便計算
(3)觀察資料的缺失值,確定缺失值處理方法
(4)觀察訓練集和測試集的特徵分佈規律,看看有沒有需要刪除的
(5)樣本資料的標準化(歸到0-1之間)
(6)建模處理訓練集的異常值
(7)構建多個模型,分別使用交叉驗證和網格搜尋選出最有的引數
(8)使用融合的方法,對多個模型的結果加權求和
三、資料分析步驟
1.資料來源
資料來源https://datahack.analyticsvidhya.com/contest/practice-problem-big-mart-sales-iii/
2.資料清洗
非數值型別對映為數值型別
(1)統計Item_Weight特徵所有的變數,結果如下圖所示(圖片左邊一列表示該列出現的類別,右邊是計數。
如第一行LowFat5089表示Item_Weigh特徵所在列共有5089個樣本的特徵值為LowFat),雖然統計發現有四個欄位,但是發現LF,lowfat,LowFat都表示低脂,可以合為一項,用數字0代替。
Regular和reg都表示正常可合為一項,用數字1代替;
(2)統計Outlet_Size特徵所有的變數,結果如下圖所示,商店大小有三種類型,按如下規則:Small:用數值1代替;Medium:用數值2代替;High:用數值3代替
(3)統計Outlet_Location_Type特徵所有的變數,結果如下圖,商店地域有三種類型,按如下規則:Tier1:用數值1代替;Tier2:用數值2代替;Tier3:用數值3代替
(4)統計Item_Type特徵所有的變數,結果如下圖,發現有16種類型的變數,我們第一次嘗試將這16種類型對映到1-16共16個整數上,後來參考網上的其他人的做法,將這16種劃分為3大類,食物(FruitsandVegetables,SnackFoods,Meat,BakingGoods,Bread,Breakfast,FrozenFoods,Dairy,StarchyFoods),日用品(Household,Others,HealthandHygiene)酒水(SoftDrinks,HardDrinks)。
處理完的特徵較原來的特徵模型分數有所提高
1importpandasaspd
2importnumpyasnp
3importmatplotlib.pyplotasplt
4importseabornassns
5
6frommathimportsqrt
7fromsklearn.metricsimportmean_squared_error#計算均方誤差
8fromsklearn.metricsimportmake_scorer
9fromsklearn.model_selectionimporttrain_test_split
10
11fromsklearn.model_selectionimportGridSearchCV,RepeatedKFold,cross_val_score,cross_val_predict,KFold
12fromsklearn.ensembleimportRandomForestRegressor,GradientBoostingRegressor,AdaBoostRegressor
13fromsklearn.linear_modelimportLinearRegression,Lasso,Ridge,ElasticNet
14
15importwarnings
16warnings.filterwarnings("ignore")
17%matplotlibinline
18%configInlineBackend.figure_format='svg'
匯入資料集
1train_data=pd.read_csv("train_data.csv")
2test_data=pd.read_csv("test_data.csv")
3train_data.head()
4#len(test_data)
資料數值化操作
1defsmall_class_num(data):
2try:
3#Item_Fat_Content
4Item_Fat_Content={'LowFat':0,'Regular':1,"LF":0,"reg":1,"lowfat":0,}
5data["Item_Fat_Content"]=data["Item_Fat_Content"].apply(lambdax:Item_Fat_Content[x])
6#Outlet_Size
7#Outlet_Size={'Small':1,'Medium':2,'High':3,'NONE':4}
8#data["Outlet_Size"].fillna("NONE",inplace=True)#填充缺失值
9#data["Outlet_Size"]=data["Outlet_Size"].apply(lambdax:Outlet_Size[x])
10data["Outlet_Size"].replace({"Small":1,"Medium":2,"High":3},inplace=True)
11#Outlet_Location_Type
12Outlet_Location_Type={'Tier3':3,'Tier2':2,'Tier1':1}
13data["Outlet_Location_Type"]=data["Outlet_Location_Type"].apply(lambdax:Outlet_Location_Type[x])
14#Outlet_Type
15Outlet_Type={'SupermarketType1':1,'SupermarketType2':2,'SupermarketType3':3,'GroceryStore':4,}
16data["Outlet_Type"]=data["Outlet_Type"].apply(lambdax:Outlet_Type[x])
17except:
18print("數值化已經完成過,切勿重複操作")
19
20small_class_num(train_data)
21small_class_num(test_data)
1defitem_type_num(data):
2try:
3data["Item_Type"].replace({"FruitsandVegetables":"FD","Meat":"FD","Dairy":"FD","Breakfast":"FD"},inplace=True)
4data["Item_Type"].replace({"SnackFoods":"FD","FrozenFoods":"FD","Canned":"FD"},inplace=True)
5data["Item_Type"].replace({"BakingGoods":"FD","Breads":"FD","Canned":"FD","Seafood":"FD","StarchyFoods":"FD"},inplace=True)
6data["Item_Type"].replace({"Household":"NC","HealthandHygiene":"NC","Others":"NC"},inplace=True)
7data["Item_Type"].replace({"SoftDrinks":"DR","HardDrinks":"DR",},inplace=True)
8data["Item_Type"].value_counts()
9data["Item_Type"].replace({"FD":1,"NC":2,"DR":3},inplace=True)
10except:
11print("數值化已經完成過,切勿重複操作")
12item_type_num(train_data)
13item_type_num(test_data)
1train_data.isnull().sum()
缺失值處理
1defItem_Weight_filna(data):
2"""
3根據商品ID填充,沒有則填充平均值
4"""
5data[data.isnull().values==True]##檢視空行
6Item_Weight_Missing=data[data["Item_Weight"].isnull()].index.tolist()
7Item_Weight_Missing_ID=data["Item_Identifier"][Item_Weight_Missing].tolist()
8data["Item_Weight"]=data["Item_Weight"].fillna(-1)
9data_dict=data.groupby('Item_Identifier').Item_Weight.apply(list).to_dict()
10foritemindata_dict:
11a=data_dict[item]
12while-1.0ina:
13a.remove(-1.0)
14b=[]
15foriteminItem_Weight_Missing_ID:
16try:
17b.append(data_dict[item][0])
18except:
19b.append(data["Item_Weight"].mean())
20data["Item_Weight"][Item_Weight_Missing]=b
21
22Item_Weight_filna(train_data)
23Item_Weight_filna(test_data)
數值型別特徵歸一化處理
(1)對於連續性變數(Item_Weight,Item_Visibility,Item_MRP,),發現有的特徵值特別大,有的特徵值很小,所以我們將連續型數值標準化。
使用min-max標準化方法。
(2)其中,對於商店成立的年份(Outlet_Establishment_Year),我們改用商店成立的時間,用當前年份減去成立時間可得。
這樣可以減小模型的計算量。
(3)商店ID(IOutlet_Identifier)和商品ID(tem_Identifier,)看上去無用,暫時不做處理。
資料缺失值處理
(1)對資料集進行統計可知,資料集(包括測試集和訓練集)都存在缺失值,兩個資料集的確實值主要集中在Item_Weight和Outlet_Size上。
其中訓練集Item_Weight缺失1463個,Outlet_Size缺失2410個;測試集Item_Weight缺失976個,Outlet_Size缺失1606個
(2)對Outlet_Size的缺失值進行處理。
我們通過計算所有特徵兩兩間的皮爾遜係數,得出了特徵間的關係矩陣。
將其畫成熱力圖可以很明顯的看出,Outlet_Size和Outlet_Location_Type之間的關係最為密切。
所以,我們採用了隨機森林的演算法,對已有Outlet_Size的書籍構建了模型,然後去預測缺失值。
(特徵關係矩陣如下圖所示)
1matrix=train_data.corr()#相關係數矩陣
2f,ax=plt.subplots(figsize=(8,8))
3sns.heatmap(matrix,vmax=.8,square=True,cmap="BuPu",annot=True)
(3)對Item_Weight的缺失值進行處理。
發現商品的Item_Weight和商品的ID有關係,我們可以根據已有重量的商品ID去填充其他的缺失值。
(如下圖所示)
銷售額分佈曲線
預測結果之因變數分析:我們觀察了銷售金額的頻率分佈圖,發現銷售額主要集中在0–4000之間
1g=sns.kdeplot(train_data["Item_Outlet_Sales"],color="Red",shade=True)
2g.set_xlabel("Item_Outlet_Sales")
3g.set_ylabel("Frequency")
3.大資料分析過程及採用的演算法
使用隨機森林進行缺失值填充
1fromsklearn.ensembleimportRandomForestClassifier
2defOutlet_Size_filna(train_data):
3"""
4上述方法失效,使用隨機森林進行填充
5"""
6try:
7train_data["Outlet_Size"].fillna(-1,inplace=True)#填充缺失值
8fc=RandomForestClassifier()
9Outlet_Size_Miss=train_data.loc[train_data["Outlet_Size"]==-1]
10Outlet_Size_Train=train_data.loc[train_data["Outlet_Size"]!=-1]
11Train_P=Outlet_Size_Train[["Outlet_Location_Type"]]
12Train_L=Outlet_Size_Train["Outlet_Size"]
13fc=RandomForestClassifier()
14fc.fit(Train_P,Train_L)
15c=Outlet_Size_Miss["Outlet_Location_Type"].values.reshape(-1,1)
16d=fc.predict(c)
17train_data.loc[train_data["Outlet_Size"]==-1,"Outlet_Size"]=d
18except:
19print("缺失值填充完畢,請勿重複操作!!!")
20
21Outlet_Size_filna(train_data)
22Outlet_Size_filna(test_data)
各個特徵與結果的關係
1defdraw_feature_result(feature,x=10,y=4):
2fig,(ax1,ax2)=plt.subplots(1,2,figsize=(x,y))
3sns.barplot(x=feature,y="Item_Outlet_Sales",data=train_data,ax=ax1)
4
5feature_1=train_data['Item_Outlet_Sales'].groupby(train_data[feature]).sum()
6dict_feature_1={feature:feature_1.index,'Item_Outlet_Sales':feature_1.values}
7dict_feature_1=pd.DataFrame(dict_feature_1)
8sns.barplot(x=feature,y="Item_Outlet_Sales",data=dict_feature_1,ax=ax2)
9
10draw_feature_result("Item_Fat_Content")
特徵選擇之商品種類和結果的關係:通過圖表(如下圖左)我們可以得出各個型別平均每一樣物品的銷售額差不多,但是不同類別的銷售總額差別比較大(如下圖右)。
可以看出,食物類的商品銷售總額最多,說明商品種類和銷售金額是存在一定的關係的,故該特徵保留。
1draw_feature_result("Item_Type")
特徵選擇之商店大小和結果的關係:通過圖表(如下圖左)我們可以得出各個商店平均每一樣物品的銷售額差不多,但是不同大小的商店的銷售總額差別比較大(如下圖右)。
可以看出,大超市銷售總額最多,說明商店大小和銷售金額是存在一定的關係的,故該特徵保留。
1draw_feature_result("Outlet_Size")
特徵選擇之商店所在地和結果的關係:通過圖表(如下圖左)我們可以得出各個地區商店平均每一樣物品的銷售額差不多,但是不同地區的商店的銷售總額差別比較大(如下圖右)。
說明商店所在地和銷售金額是存在一定的關係的,故該特徵保留
1draw_feature_result("Outlet_Location_Type",x=10,y=3)
特徵選擇之商店型別和結果的關係:通過圖表(如下圖左)我們可以得出各個地區商店平均每一樣物品的銷售額相差比較大,不同地區的商店的銷售總額差別也比較大(如下圖右)。
說明商店型別和銷售金額是存在一定的關係的,故該特徵保留
1draw_feature_result("Outlet_Type")
訓練集特徵分佈規律和測試集特徵分佈規律對比
通過對比訓練集和測試集的特徵分佈規律,我們可以看刪除一些分佈規律明顯不同的特徵,這裡我們做了對比後發現,訓練集和測試集特徵的分佈的規律幾乎一致,所以不做特徵的刪除或選擇工作。
(分佈規律如下圖所示,橫軸表示特徵,縱軸表示頻率)
1train_data["oringin"]="train"
2test_data["oringin"]="test"
3all_data=pd.concat([train_data,test_data],axis=0,ignore_index=True)
4target=all_data['Item_Outlet_Sales']
5delall_data["Item_Identifier"]
6delall_data["Outlet_Identifier"]
7delall_data["Item_Outlet_Sales"]
8all_data["Item_Outlet_Sales"]=target
1forcolumninall_data.columns[0:-2]:
2g=sns.kdeplot(all_data[column][(all_data["oringin"]=="train")],color="Red",shade=True)
3g=sns.kdeplot(all_data[column][(all_data["oringin"]=="test")],ax=g,color="Blue",shade=True)
4g.set_xlabel(column)
5g.set_ylabel("Frequency")
6g=g.legend(["train","test"])
7#plt.savefig(column+"distri.svg")
8plt.show()
年份處理和浮點數標準化
1all_data["Outlet_Establishment_Year"]=2013-all_data["Outlet_Establishment_Year"]
2continus_value=["Item_Weight","Item_Visibility","Item_MRP",]
3defnornomalize(train_data,continus_value):
4forvlaueincontinus_value:
5train_data[vlaue]=(train_data[vlaue]-train_data[vlaue].min())/(train_data[vlaue].max()-train_data[vlaue].min())
6nornomalize(all_data,continus_value)
區分測試集和訓練集
1defget_training_data():
2"""
3獲取訓練資料
4"""
5df_train=all_data[all_data["oringin"]=="train"]
6y=df_train.Item_Outlet_Sales
7X=df_train.drop(["oringin","Item_Outlet_Sales"],axis=1)
8X_train,X_valid,y_train,y_valid=train_test_split(X,y,test_size=0.3,random_state=100)
9returnX_train,X_valid,y_train,y_valid
10
11defget_test_data():
12"""
13獲取測試資料
14"""
15df_test=all_data[all_data["oringin"]=="test"].reset_index(drop=True)
16returndf_test.drop(["oringin","Item_Outlet_Sales"],axis=1)
評價標準rmse和mse,用make_scorer方便帶入cv驗證
1defrmse(y_true,y_pred):
2"""
3評價標準1
4"""
5returnsqrt(mean_squared_error(y_true,y_pred))
6
7
8defmse(y_ture,y_pred):
9"""
10評價標準2
11"""
12returnmean_squared_error(y_ture,y_pred)
13
14rmse_scorer=make_scorer(rmse,greater_is_better=False)
15mse_scorer=make_scorer(mse,greater_is_better=False)
離群的檢查
1deffind_outliers(model,X,y,sigma=3):
2"""
3根據模型找出異常點
4model:預測模型
5X:資料特徵
6y:資料標籤
7sigma:離群點閥值
8"""
9try:
10y_pred=pd.Series(model.predict(X),index=y.index)
11except:
12model.fit(X,y)
13y_pred=pd.Series(model.predict(X),index=y.index)
14
15resid=y-y_pred#計算結果差值
16mean_resid=resid.mean()#結果差的均值
17std_resid=resid.std()#結果的標準方差
18
19z=(resid-mean_resid)/std_resid#標準化
20outliers=z[abs(z)>sigma].index
21
22print('rmse=',rmse(y,y_pred))
23print("mse=",mean_squared_error(y,y_pred))
24print('---------------------------------------')
25
26print('meanofresiduals:',mean_resid)
27print('stdofresiduals:',std_resid)
28print('---------------------------------------')
29
30print(len(outliers),'outliers:')
31print(outliers.tolist())
32
33plt.figure(figsize=(20,4))
34ax_131=plt.subplot(1,3,1)
35plt.plot(y,y_pred,'.')
36plt.plot(y.loc[outliers],y_pred.loc[outliers],'ro')
37plt.legend(['Accepted','Outlier'])
38plt.xlabel('y')
39plt.ylabel('y_pred');
40
41ax_132=plt.subplot(1,3,2)
42plt.plot(y,y-y_pred,'.')
43plt.plot(y.loc[outliers],y.loc[outliers]-y_pred.loc[outliers],'ro')
44plt.legend(['Accepted','Outlier'])
45plt.xlabel('y')
46plt.ylabel('y-y_pred');
47
48ax_133=plt.subplot(1,3,3)
49z.plot.hist(bins=50,ax=ax_133)
50z.loc[outliers].plot.hist(color='r',bins=50,ax=ax_133)
51plt.legend(['Accepted','Outlier'])
52plt.xlabel('z')
53
54plt.savefig('outliers.png')
55
56returnoutliers
利用梯度提升演算法對找出訓練集的異常點
通過模型預測的結果與實際結果進行對比,發現異常點。
對預測結果與實際的差做標準化處理,值大於某個數(圖中sigma取值為3)則判斷為異常點,在接下來的模型訓練中要將其刪除(如下圖所示,左圖,縱軸為預測的值,右圖縱軸為預測和實際的差)
1fromsklearn.model_selectionimporttrain_test_split
2X_train,X_valid,y_train,y_valid=get_training_data()
3test=get_test_data()
4outliers=find_outliers(GradientBoostingRegressor(),X_train,y_train)
交叉驗證
梯度提升演算法建模預測結果梯度提升演算法,採用網格搜尋調參,10次10折交叉驗證得出最優的引數為n_estimators=70,max_depth=3,訓練集最好的rmse=951.7399,驗證集測試的結果為1078.8195。
(預測結果的相關係數如下圖左所示,標準差如下圖右所示)
1fromsklearn.preprocessingimportStandardScaler
2deftrain_model(model,param_grid=[],X=[],y=[],splits=5,repeats=5):
3"""
4使用K折交叉驗證
5
6"""
7rkfold=RepeatedKFold(n_splits=splits,n_repeats=repeats)
8
9gsearch=GridSearchCV(model,param_grid,cv=rkfold,scoring="neg_mean_squared_error",verbose=1,return_train_score=True)
10gsearch.fit(X,y)
11model=gsearch.best_estimator_#選擇最好的模型
12best_idx=gsearch.best_index_
13
14grid_results=pd.DataFrame(gsearch.cv_results_)#CV模型
15cv_mean=abs(grid_results.loc[best_idx,'mean_test_score'])
16cv_std=grid_results.loc[best_idx,'std_test_score']
17cv_score=pd.Series({'mean':cv_mean,'std':cv_std})
18y_pred=model.predict(X)
19print('----------------------')
20print(model)
21print('----------------------')
22print('rmse=',rmse(y,y_pred))
23print('mse=',mse(y,y_pred))
24print('cross_val:mean=',cv_mean,',std=',cv_std)
25
26y_pred=pd.Series(y_pred,index=y.index)
27resid=y-y_pred
28mean_resid=resid.mean()
29std_resid=resid.std()
30z=(resid-mean_resid)/std_resid
31n_outliers=sum(abs(z)>3)
32
33plt.figure(figsize=(20,4))
34ax_131=plt.subplot(1,3,1)
35plt.plot(y,y_pred,'.')
36plt.xlabel('y')
37plt.ylabel('y_pred');
38plt.title('corr={:.3f}'.format(np.corrcoef(y,y_pred)[0][1]))#相關係數
39ax_132=plt.subplot(1,3,2)
40plt.plot(y,y-y_pred,'.')
41plt.xlabel('y')
42plt.ylabel('y-y_pred');
43plt.title('stdresid={:.3f}'.format(std_resid))
44
45ax_133=plt.subplot(1,3,3)
46z.plot.hist(bins=50,ax=ax_133)
47plt.xlabel('z')
48plt.title('{:.0f}samplesareoutliers'.format(n_outliers))
49
50returnmodel,cv_score,grid_results
梯度提升演算法建模預測結果
梯度提升演算法,採用網格搜尋調參,10次10折交叉驗證得出最優的引數為n_estimators=70,max_depth=3,訓練集分數rmse=581.3993,測試集rmse=1089.5227。
(如下圖所示)
Xgboost演算法,採用網格搜尋調參,10次10折交叉驗證得出最優的引數為n_estimators=70,max_depth=3,訓練集最好的rmse=954.4746,驗證集測試的結果為1077.1127。
(預測結果的相關係數如下圖左所示,標準差如下圖右所示)
1fromxgboostimportXGBRegressor
2param_grid_xg={'n_estimators':[70,75,80],'max_depth':[1,2,3]}#xgboost
3model_xg,cv_score_xg,grid_results_xg=train_model(XGBRegressor(),param_grid_xg,X1,y1,splits=10,repeats=10)
4submit_xg=model_xg.predict(get_test_data())
嶺迴歸Ridge演算法建模預測結果
隨機森林演算法,採用網格搜尋調參,10次10折交叉驗證得出最優的引數為alpha=0.75,訓練集最好的rmse=1199.7880,驗證集測試的結果為1282.5769
1alph_range=np.arange(0.25,6,0.25)#嶺迴歸
2param_grid_ridge={'alpha':alph_range}
3model_ridge,cv_score_ridge,grid_results_ridge=train_model(Ridge(),param_grid_ridge,X1,y1,splits=10,repeats=10)
4submit_ridge=model_ridge.predict(get_test_data())
1final_1=0.4*(submit_xg+submit_gbdt)+0.1*(submit_ridge+submit_rf)#1162.9265
2final_2=0.5*submit_xg+0.3*submit_gbdt+0.1*submit_ridge+0.1*submit_rf#1162.6200
3final_3=0.8*submit_xg+0.1*submit_gbdt+0.05*submit_ridge+0.05*submit_rf#1157.9485
4final_4=0.2*submit_xg+0.6*submit_gbdt+0.1*submit_ridge+0.1*submit_rf#1163.5908
5final_5=0.8*submit_xg+0.1*submit_ridge+0.1*submit_rf#1161.8037
6final_6=0.8*submit_xg+0.2*submit_gbdt#1155.1319
7final_7=0.9*submit_xg+0.1*submit_gbdt#1154.9201
1defresult_submit(filename,submit):
2"""
3func:結果提交函式
4"""
5df=pd.read_csv(filename)
6df["Item_Outlet_Sales"]=submit
7df.to_csv("1.csv",index=False)
8
9
10result_submit("SampleSubmission_TmnO39y.csv",final_7)
四、總結
1.有益的結論:
(1)商品銷售額與各種因素有關,比如說商店位置等
(2)特徵分析很重要,好的特徵能提高準確率
(3)模型選擇很重要,模型的整合往往能帶來更好的結果
達到了預期的目標
2.通過完成此設計過程中,我收穫了,數值的替換都可以用replace,資料分析常用模組有三個:numpy:矩陣計算等數學計算,pandas:基於numpy的資料分析工具,使用資料框對錶結構的資料進行分析,matplotlib:資料視覺化,本次課程主要學習前兩者。
numpy一維陣列與列表的區別:一維陣列提供了很多統計功能,一維陣列可以向量化運算,一維陣列全是相同的資料型別。
pandas的Series有index,我們可以在使用的時候指定這些index。
iloc根據位置獲取元素的值,loc方法根據index索引值獲取元素的值。
querySer篩選這裡要仔細理解,涉及到行和列的變化。
要理解【行,列】這裡的控制變數的問題,前面是對於行的篩選,後面是對於列的篩選。
leetcode386.字典序排數
«上一篇
python入門指南_26-異常
下一篇»
相關推薦
C++passfunctionandargumentsasparameterviafunctionaddress*symbolAtCoderBeginnerContest250A-E題解20192423楊斯凌2021-2022-2《網路與系統攻防技術》實驗六實驗報告基於Tablestore打造億量級訂單管理解決方案Vue回爐重造之圖片載入效能優化8.日誌9.分頁查詢科協python講座摸魚
搜尋
熱門文章
C++passfunctionandargumentsasparameterviafunctionaddress*symbol
2022-05-13
AtCoderBeginnerContest250A-E題解
2022-05-13
20192423楊斯凌2021-2022-2《網路與系統攻防技術》實驗六實驗報告
2022-05-13
ADS
基礎教學
Mysql入門
Sql入門
Android入門
Docker入門
Go語言入門
Ruby程式入門
Python入門
Python進階
Django入門
Python爬蟲入門
ADS
人氣文章
C++passfunctionandargumentsasparameterviafunctionaddress*symbol
2022-05-13
AtCoderBeginnerContest250A-E題解
2022-05-13
20192423楊斯凌2021-2022-2《網路與系統攻防技術》實驗六實驗報告
2022-05-13
基於Tablestore打造億量級訂單管理解決方案
2022-05-13
Vue回爐重造之圖片載入效能優化
2022-05-13
8.日誌
2022-05-13
9.分頁查詢
2022-05-13
科協python講座摸魚
2022-05-13
5.配置解析
2022-05-13
設計模式之行為型模式--責任鏈模式、直譯器模式
2022-05-13
熱門標籤
Java基礎資料結構與演算法經驗分享劍指offer其他題解圖論程式人生每日一題安卓微控制器PAT演算法&資料結構PTAPython學習leetcode刷題java學習筆記演算法與資料結構reactjspython基礎
ADS
延伸文章資訊
- 1手把手教零售商用Python 做出採購量預測模型 - 報橘
1.聘請採購者的成本面對萬樣商品,採購團隊通常會聘請超過百人或千人團隊進行採購分析,以人為經驗不斷的臆測下期銷售量來推估採購數量。如此團隊便造成 ...
- 2「銷售預測python」懶人包資訊整理 (1) | 蘋果健康咬一口
ARIMA时间序列分析-----Python实例(一周销售营业额预测)., 原文链接:小案例(五):销量预测(python)微信公众号:机器学习养成记搜索添加微信公众...
- 3Python爬虫预测可知今年双十一销售额将超过6000亿元
原来2020改了规则,实际上统计的是11月1到11日的销量,理论上已经不能和历史数据合并预测,但咱们就为了图个乐,主要是为了练习一下Python 的多项式回归和可视化绘图。 把 ...
- 4Python 資料分析預測商品銷售額_其它 - 程式人生
一、選題的背景選擇此題: 題目來源於Kaglge競賽平臺,具有一定的學習意義。可以更好的理解機器學習和資料分析的券過程。目標:根據商店的銷售資料預測 ...
- 5Day 23:銷售量預測-- LSTM 的另一個應用 - iT 邦幫忙
銷售量預測的樣態很多種,包括營收、利潤、來客數、遊園人數、銷售產品數/金額、. ... LSTM Recurrent Neural Networks in Python with Keras』,...