




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第10章
眾包任務定價優(yōu)化方案案例背景案例目標和實現(xiàn)思路案例背景第10章
“拍照賺錢”是移動互聯(lián)網時代的一種自助式服務模式。用戶下載App,注冊成為App會員,然后從App上領取需要拍照的任務,賺取App對任務所標定的酬金。這種基于移動互聯(lián)網的自助式勞務眾包平臺為企業(yè)提供各種商業(yè)檢查和信息搜集服務,相比傳統(tǒng)的市場調查方式,它可以大大節(jié)約調查成本,而且可有效地保證調查數據的真實性,縮短調查周期。因此App成為該類平臺運行的核心,而App中的任務定價又是核心要素。如果定價不合理,有的任務就會無人問津,從而導致任務的失敗。案例背景第10章
在本案例中,附件1是一個已結束項目任務數據,包含每個任務的位置、任務定價和任務執(zhí)行情況(“1”表示被執(zhí)行,“0”表示未被執(zhí)行);附件2是會員信息數據,包含會員的位置、信譽值、參考其信譽給出的預訂任務開始時間和預訂任務限額,原則上會員信譽越高,越優(yōu)先開始挑選任務,其限額也就越大(任務分配時實際上是根據預訂限額所占比例進行配發(fā)的)。任務號碼任務GPS緯度任務GPS經度任務標價/元任務執(zhí)行情況A000122.56614225113.9808368660A000222.68620526113.940525265.50A000322.57651183113.95719865.51A000422.56484081114.2445711750A000522.55888775113.950722765.50A000622.55899906114.2413174750A000722.54900371113.972259765.51……會員編號會員GPS緯度會員GPS經度預訂任務限額/個預訂任務開始時間信譽值B000122.947097113.6799831146:3067997.3868B000222.577792113.9665241636:3037926.5416B000323.192458113.3472721396:3027953.0363B000423.255965113.31875986:3025085.6986……附件1附件2案例目標及實現(xiàn)思路第10章
本案例的主要目標包括掌握地理信息數據可視化基本技能,根據實際問題提煉分析指標并編程計算,構建分析模型和實現(xiàn)等。第10章
眾包任務定價優(yōu)化方案地理信息可視化包安裝數據讀取與地圖可視化地理信息可視化包安裝第10章
地圖可視化主要采用Python第三方包:Folium。Folium地理信息可視化包的安裝,可以通過命令pipinstallfolium實現(xiàn)。數據讀取與地圖可視化第10章
通過Python讀取任務數據和會員數據,利用Folium包,依次將任務位置和會員位置繪制在地圖上,其中黑色圓點表示任務,紅色圓點表示會員。示例代碼如下:importpandasaspdA=pd.read_excel('附件1:已結束項目任務數據.xls')B=pd.read_excel('附件2:會員信息數據.xlsx')#導入地圖可視化包importfoliumasf#利用Map()函數創(chuàng)建地圖,參數依次為地圖中心位置(緯度,經度)、地圖縮放大小、地理坐標系編碼M=f.Map([A.iloc[0,1],A.iloc[0,2]],zoom_start=14,crs='EPSG3857')#利用Circle()函數在地圖上畫圓,參數依次為半徑大小(單位:m)、圓心位置(緯度、經度)、顏色等fortinrange(len(A)):f.Circle(radius=50,location=[A.iloc[t,1],A.iloc[t,2]],color='black',fill=True,fill_color='black').add_to(M)fortinrange(len(B)):f.Circle(radius=50,location=[B.iloc[t,1],B.iloc[t,2]],color='red',fill=True,fill_color='red').add_to(M)數據讀取與地圖可視化第10章
#保存地圖為.html文件,可以在瀏覽器打開
M.save('f.html')運行程序并瀏覽執(zhí)行結果,可以看出,任務位置和會員位置均在同一個區(qū)域上,并且任務與會員均相對集中,即具有聚集性。同時,存在部分任務和會員遠離聚集中心。這些特點對指標的定義與設計具有較好的指導意義。第10章
眾包任務定價優(yōu)化方案指標設計程序實現(xiàn)指標計算方法指標設計第10章
一個任務的定價不僅與其周圍的任務數量、會員數量有關,還與任務發(fā)布時間有一定的關系。通過分析數據,我們發(fā)現(xiàn)任務的發(fā)布時間有一定的規(guī)律,即任務從6:30開始發(fā)布第一批任務,之后每隔3min發(fā)布一批,最后一批的發(fā)布時間為8:00。根據這些特點,我們可以設計相關指標并進行計算。對任務數據中的每個任務,我們設計了以下12個指標。字段名稱字段中文名稱字段說明Z1任務數量對每一個任務,計算其Qkm范圍內的所有任務數量Z2任務平均價格對每一個任務,計算其Qkm范圍內的所有任務平均價格Z3會員數量對每一個任務,計算其Qkm范圍內的所有會員數量Z4會員平均信譽值對每一個任務,計算其Qkm范圍內的所有會員信譽平均值Z5會員可預訂任務限額對每一個任務,計算其Qkm范圍內的所有會員所有時段可預訂任務限額Z6會員在6:30可預訂任務限額對每一個任務,計算其Qkm范圍內的所有會員在6:30可預訂任務限額Z7會員在6:33-6:45時段可預訂任務限額對每一個任務,計算其Qkm范圍內的所有會員在6:33—6:45時段可預訂任務限額Z8會員在6:48-7:03時段可預訂任務限額對每一個任務,計算其Qkm范圍內的所有會員在6:48—7:03時段可預訂任務限額Z9會員在7:06-7:21時段可預訂任務限額對每一個任務,計算其Qkm范圍內的所有會員在7:06—7:21時段可預訂任務限額Z10會員在7:24-7:39時段可預訂任務限額對每一個任務,計算其Qkm范圍內的所有會員在7:24—7:39時段可預訂任務限額Z11會員在7:42-7:57時段可預訂任務限額對每一個任務,計算其Qkm范圍內的所有會員在7:42—7:57時段可預訂任務限額Z12會員在8:00可預訂任務限額對每一個任務,計算其Qkm范圍內的所有會員在8:00可預訂任務限額指標計算方法第10章
通過圖示的方法介紹指標的具體計算過程。實心圓形代表任務,實心三角形代表會員,分布在同一個區(qū)域上,位置均由經度和緯度確定。以某個任務為圓心,5km范圍為半徑,作一個圓。由圖可以看出,該任務在5km范圍內有4個任務(包括自身)、2個會員。對該任務來講,指標Z1~Z12計算思路如下:Z1=4;Z2=對應4個任務定價的平均值;Z3=2;Z4=對應2個會員信譽值的平均值;Z5=對應2個會員可預訂限額的總和;Z6=對應2個會員在6:30可預訂限額的總和;Z7=對應2個會員在6:33—6:45時段可預訂限額的總和;Z8=對應2個會員在6:48—7:03時段可預訂限額的總和;Z9=對應2個會員在7:06—7:21時段可預訂限額的總和;Z10=對應2個會員在7:24—7:39時段可預訂限額的總和;Z11=對應2個會員在7:42—7:57時段可預訂限額的總和;Z12=對應2個會員在8:00可預訂限額的總和。指標計算方法第10章
本案例的關鍵是在計算任務之間、任務與會員之間的距離,從而確定每個任務在5km范圍內具體包括哪些任務和會員,進而就可以計算其指標值了。
程序實現(xiàn)第10章
1.Z1~Z5的計算首先,計算第0個任務到第1個任務、第0個任務到第0個會員之間的距離。示例代碼如下:importpandasaspd#導入Pandas庫importmath#導入數學函數包A=pd.read_excel('附件一:已結束項目任務數據.xls')B=pd.read_excel('附件二:會員信息數據.xlsx')A_W0=A.iloc[0,1]#第0個任務的緯度A_J0=A.iloc[0,2]#第0個任務的經度A_W1=A.iloc[1,1]#第1個任務的緯度A_J1=A.iloc[1,2]#第1個任務的經度B_W0=B.iloc[0,1]#第0個會員的緯度B_J0=B.iloc[0,2]#第0個會員的經度#第0個任務到第1個任務之間的距離d1=111.19*math.sqrt((A_W0-A_W1)**2+(A_J0-A_J1)**2*math.cos((A_W0+A_W1)*math.pi/180)**2);#第0個任務到第0個會員之間的距離d2=111.19*math.sqrt((A_W0-B_W0)**2+(A_J0-B_J0)**2*math.cos((A_W0+B_W0)*math.pi/180)**2);print('d1=',d1)print('d2=',d2)執(zhí)行結果如下:d1=13.71765563354376d2=48.41201229628393程序實現(xiàn)第10章
其次,第0個任務與所有任務、會員之間的距離。示例代碼如下:importpandasaspd#導入Pandas庫importnumpyasnp#導入NumPy庫importmath#導入數學函數庫A=pd.read_excel('附件1:已結束項目任務數據.xls')B=pd.read_excel('附件2:會員信息數據.xlsx')A_W0=A.iloc[0,1]#第0個任務的緯度A_J0=A.iloc[0,2]#第0個任務的經度#預定義數組D1,用于存放第0個任務與所有任務之間的距離#預定義數組D2,用于存放第0個任務與所有會員之間的距離D1=np.zeros((len(A)))D2=np.zeros((len(B)))fortinrange(len(A)):A_Wt=A.iloc[t,1]#第t個任務的緯度A_Jt=A.iloc[t,2]#第t個任務的經度
#第0個任務到第t個任務之間的距離d1=111.19*math.sqrt((A_W0-A_Wt)**2+(A_J0-A_Jt)**2*math.cos((A_W0+A_Wt)*math.pi/180)**2);D1[t]=d1程序實現(xiàn)第10章
forkinrange(len(B)):B_Wk=B.iloc[k,1]#第k個會員的緯度B_Jk=B.iloc[k,2]#第k個會員的經度
#第0個任務到第k個會員之間的距離d2=111.19*math.sqrt((A_W0-B_Wk)**2+(A_J0-B_Jk)**2*math.cos((A_W0+B_Wk)*math.pi/180)**2);D2[k]=d2程序實現(xiàn)第10章
再次,對第0個任務計算指標Z1、Z2、Z3、Z4、Z5。示例代碼如下:importpandasaspd#導入Pandas庫importnumpyasnp#導入NumPy庫importmath#導入數學函數包A=pd.read_excel('附件1:已結束項目任務數據.xls')B=pd.read_excel('附件2:會員信息數據.xlsx')A_W0=A.iloc[0,1]#第0個任務的緯度A_J0=A.iloc[0,2]#第0個任務的經度#預定義數組D1,用于存放第0個任務與所有任務之間的距離#預定義數組D2,用于存放第0個任務與所有會員之間的距離D1=np.zeros((len(A)))D2=np.zeros((len(B)))fortinrange(len(A)):A_Wt=A.iloc[t,1]#第t個任務的緯度A_Jt=A.iloc[t,2]#第t個任務的經度#第0個任務到第t個任務之間的距離d1=111.19*math.sqrt((A_W0-A_Wt)**2+(A_J0-A_Jt)**2*math.cos((A_W0+A_Wt)*math.pi/180)**2);D1[t]=d1程序實現(xiàn)第10章
forkinrange(len(B)):B_Wk=B.iloc[k,1]#第k個會員的緯度B_Jk=B.iloc[k,2]#第k個會員的經度
#第0個任務到第k個會員之間的距離D2=111.19*math.sqrt((A_W0-B_Wk)**2+(A_J0-B_Jk)**2*math.cos((A_W0+B_Wk)*math.pi/180)**2);D2[k]=d2Z1=len(D1[D1<=5])Z2=A.iloc[D1<=5,3].mean()Z3=len(D2[D2<=5])Z4=B.iloc[D2<=5,5].mean()Z5=B.iloc[D2<=5,3].sum()print('Z1=',Z1)print('Z2=',Z2)print('Z3=',Z3)print('Z4=',Z4)print('Z5=',Z5)執(zhí)行結果如下所示:Z1=18Z2=66.19444444444444Z3=45Z4=1302.327115555555Z5=548程序實現(xiàn)第10章
最后,計算所有任務的Z1、Z2、Z3、Z4、Z5。示例代碼如下:importpandasaspd #導入Pandas庫importnumpyasnp #導入NumPy庫importmath#導入數學函數包A=pd.read_excel('附件1:已結束項目任務數據.xls')B=pd.read_excel('附件2:會員信息數據.xlsx')#預定義,存放所有任務的指標Z1、Z2、Z3、Z4、Z5Z=np.zeros((len(A),6))fortinrange(len(A)):A_Wt=A.iloc[t,1]#第t個任務的緯度A_Jt=A.iloc[t,2]#第t個任務的經度#預定義數組D1,用于存放第t個任務與所有任務之間的距離#預定義數組D2,用于存放第t個任務與所有會員之間的距離D1=np.zeros((len(A)))D2=np.zeros((len(B)))程序實現(xiàn)第10章
foriinrange(len(A)):A_Wi=A.iloc[i,1]#第i個任務的緯度A_Ji=A.iloc[i,2]#第i個任務的經度#第t個任務到第i個任務之間的距離d1=111.19*math.sqrt((A_Wt-A_Wi)**2+(A_Jt-A_Ji)**2*math.cos((A_Wt+A_Wi)*math.pi/180)**2);D1[i]=d1forkinrange(len(B)):B_Wk=B.iloc[k,1]#第k個會員的緯度B_Jk=B.iloc[k,2]#第k個會員的經度#第q個任務到第k個會員之間的距離d2=111.19*math.sqrt((A_Wt-B_Wk)**2+(A_Jt-B_Jk)**2*math.cos((A_Wt+B_Wk)*math.pi/180)**2);D2[k]=d2Z[t,0]=tZ[t,1]=len(D1[D1<=5])Z[t,2]=A.iloc[D1<=5,3].mean()Z[t,3]=len(D2[D2<=5])Z[t,4]=B.iloc[D2<=5,5].mean()Z[t,5]=B.iloc[D2<=5,3].sum()執(zhí)行結果(部分)如下圖所示。其中第0列為任務編號,第1~5列依次為Z1~Z5。程序實現(xiàn)第10章
2.Z6~Z12的計算實際上,Z6~Z12做對Z5做進一步的劃分,即劃分為7個時段。因此,Z6~Z12的計算方法與Z5類似,區(qū)別在于邏輯索引位置需要進一步定位到所在的時段。為了便于使用,我們對定位時段的邏輯編寫成函數的形式。函數定義示例代碼如下:importdatetimedeffind_I(h1,m1,h2,m2,D2,B):I1=B.iloc[:,4].values>=datetime.time(h1,m1)I2=B.iloc[:,4].values<=datetime.time(h2,m2)I3=D2<=5I=I1&I2&I3returnI其中函數的輸入參數為時段開始時間(h1表示小時、m1表示分鐘)、結束時間(h2表示小時、m2表示分鐘),給定某個任務到所有會員之間的距離D2和會員數據B,返回值為對應時段的邏輯索引值。程序實現(xiàn)第10章
下面以第0個任務為例,計算Z5~Z12,按照分析,Z5應該等于Z6~Z12之和。示例代碼如下:importpandasaspd #導入Pandas庫importnumpyasnp #導入NumyPy庫importmath #導入數學函數模importfun #導入定義的函數A=pd.read_excel('附件1:已結束項目任務數據.xls')B=pd.read_excel('附件2:會員信息數據.xlsx')Z=np.zeros((len(A),13))A_W0=A.iloc[0,1]#第0個任務的緯度A_J0=A.iloc[0,2]#第0個任務的經度D2=np.zeros((len(B)))#預定義,第0個任務與所有會員之間的距離forkinrange(len(B)):B_Wk=B.iloc[k,1]#第k個會員的緯度B_Jk=B.iloc[k,2]#第k個會員的經度d2=111.19*math.sqrt((A_W0-B_Wk)**2+(A_J0-B_Jk)**2*math.cos((A_W0+B_Wk)*math.pi/180)**2);D2[k]=d2程序實現(xiàn)第10章
Z5=B.iloc[D2<=5,3].sum()Z6=B.iloc[fun.find_I(6,30,6,30,D2,B),3].sum()Z7=B.iloc[fun.find_I(6,33,6,45,D2,B),3].sum()Z8=B.iloc[fun.find_I(6,48,7,3,D2,B),3].sum()Z9=B.iloc[fun.find_I(7,6,7,21,D2,B),3].sum()Z10=B.iloc[fun.find_I(7,24,7,39,D2,B),3].sum()Z11=B.iloc[fun.find_I(7,42,7,57,D2,B),3].sum()Z12=B.iloc[fun.find_I(8,0,8,0,D2,B),3].sum()Z6_12=sum([Z6,Z7,Z8,Z9,Z10,Z11,Z12])print('Z5=',Z5)print('sum(Z6~Z12)=',Z6_12)執(zhí)行結果如下:Z5=548sum(Z6~Z12)=548程序實現(xiàn)第10章
3.所有指標的計算將以上Z1~Z5,Z6~Z12兩個方面的指標計算代碼稍微加工修改,即可得到所有12個指標的完整計算代碼。示例代碼如下:importpandasaspd #導入Pandas庫importnumpyasnp #導入NumyPy庫importmath #導入數學函數模importfun #導入定義的函數A=pd.read_excel('附件1:已結束項目任務數據.xls')B=pd.read_excel('附件2:會員信息數據.xlsx')Z=np.zeros((len(A),13))fortinrange(len(A)):A_Wt=A.iloc[t,1]#第t個任務的緯度A_Jt=A.iloc[t,2]#第t個任務的經度D1=np.zeros(len(A))D2=np.zeros(len(B))foriinrange(len(A)):A_Wi=A.iloc[i,1]#第i個任務的緯度A_Ji=A.iloc[i,2]#第i個任務的經度d1=111.19*math.sqrt((A_Wt-A_Wi)**2+(A_Jt-A_Ji)**2*math.cos((A_Wt+A_Wi)*math.pi/180)**2);D1[i]=d1程序實現(xiàn)第10章
forkinrange(len(B)):B_Wk=B.iloc[k,1]#第k個會員的緯度B_Jk=B.iloc[k,2]#第k個會員的經度d2=111.19*math.sqrt((A_Wt-B_Wk)**2+(A_Jt-B_Jk)**2*math.cos((A_Wt+B_Wk)*math.pi/180)**2);D2[k]=d2Z[t,0]=tZ[t,1]=len(D1[D1<=5])Z[t,2]=A.iloc[D1<=5,3].mean()Z[t,3]=len(D2[D2<=5])Z[t,4]=B.iloc[D2<=5,5].mean()Z[t,5]=B.iloc[D2<=5,3].sum()Z[t,6]=B.iloc[fun.find_I(6,30,6,30,D2,B),3].sum()Z[t,7]=B.iloc[fun.find_I(6,33,6,45,D2,B),3].sum()Z[t,8]=B.iloc[fun.find_I(6,48,7,3,D2,B),3].sum()Z[t,9]=B.iloc[fun.find_I(7,6,7,21,D2,B),3].sum()Z[t,10]=B.iloc[fun.find_I(7,24,7,39,D2,B),3].sum()Z[t,11]=B.iloc[fun.find_I(7,42,7,57,D2,B),3].sum()Z[t,12]=B.iloc[fun.find_I(8,0,8,0,D2,B),3].sum()np.save('Z',Z)第10章
眾包任務定價優(yōu)化方案指標數據預處理神經網絡模型多元線性回歸模型指標數據預處理第10章
指標數據預處理,是針對所有任務12個指標數據進行預處理,包括空值處理、相關性分析、標準化處理和主成分分析(1)空值處理。該空值通過填充為0進行處理。可以先將12個指標的存放數組Z轉換為數據框,進而利用數據框的fillna()方法進行填充即可。示例代碼如下:執(zhí)行前執(zhí)行后importnumpyasnpimportpandasaspdZ=np.load('Z.npy')Data=pd.DataFrame(Z[:,1:])Data=Data.fillna(0)指標數據預處理第10章
(2)判斷相關性。通過計算12個指標的相關系數矩陣來觀察指標之間是否存在較強的相關性。示例代碼如下:R=Data.corr()由執(zhí)行結果可以看出,變量之間存在一定的相關性,相關系數最高達0.94956。因此可以通過提取其主成分進行分析。指標數據預處理第10章
(3)指標數據作標準化處理。可以使用Python提供的數據標準化模塊進行處理,這里采用均值-方差規(guī)范化方法對原始指標數據進行標準化處理。示例代碼如下:fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()data=Data.as_matrix()#數據框轉化為數組形式scaler.fit(data)data=scaler.transform(data)經過標準化處理后,指標數據都轉化為均值為0,方差為1的無量綱標準化數據。指標數據預處理第10章
(4)對標準化處理后的數據做主成分分析,可以使用Python提供的主成分分析模塊實現(xiàn)。示例代碼如下:fromsklearn.decompositionimportPCApca=PCA(n_components=0.9)#累計貢獻率提取0.9以上pca.fit(data)x=pca.transform(data)#返回主成分tzxl=ponents_#特征向量
tz=pca.explained_variance_#特征值
gxl=pca.explained_variance_ratio_#累計貢獻率可以看出,原來的12個指標數據,經過主成分分析后,在累計貢獻率0.9以上的要求下,降為6個綜合指標數據,即6個主成分。基于這6個主成分數據,就可以構建任務定價模型了。多元線性回歸模型第10章
基于得到的6個主成分數據,將任務定價數據拆分為未執(zhí)行任務和執(zhí)行任務兩種情況。示例代碼如下:
采用執(zhí)行任務的主成分數據(x_1)和定價數據(y_1),可以構建多元線性回歸模型。示例代碼如下:從執(zhí)行結果可以看出,多元線性回歸模型的判定系數約為0.52617,其線性關系較弱。因此考慮使用非線性神經網絡模型。fromsklearn.linear_modelimportLinearRegressionasLRlr=LR()#創(chuàng)建線性回歸模型類lr.fit(x_1,y_1)#擬合Slr=lr.score(x_1,y_1)#判定系數R2c_x=lr.coef_#x對應的回歸系數c_b=ercept_#回歸系數常數項print('判定系數:',Slr)執(zhí)行結果如下:判定系數:0.526173439562A=pd.read_excel('附件1:已結束項目任務數據.xls')A4=A.iloc[:,4].valuesx_0=x[A4==0,:]#未執(zhí)行任務主成分數據x_1=x[A4==1,:]#執(zhí)行任務主成分數據y=A.iloc[:,3].valuesy=y.reshape(len(y),1)y_0=y[A4==0]#未執(zhí)行任務定價數據y_1=y[A4==1]#執(zhí)行任務定價數據神經網絡模型第10章
由于任務定價與計算的指標之間線性關系較弱,這里采用非線性神經網絡模型構建任務定價模型。示例代碼如下:執(zhí)行結果如下:擬合優(yōu)度:0.7268158840155549從執(zhí)行結果可以看出,神經網絡擬合優(yōu)度要優(yōu)于線性回歸模型,因此可以使用神經網絡模型作為定價模型,對未執(zhí)行的任務進行重新預測定價。y_0r即為未執(zhí)行任務重新預測的定價數據。fromsklearn.neural_networkimportMLPRegressor#兩個隱含層300×5clf=MLPRegressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(300,5),random_state=1)clf.fit(x_1,y_1);rv1=clf.score(x_1,y_1)#擬合優(yōu)度y_0r=clf.predict(x_0)#對未執(zhí)行的任務,利用神經網絡模型重新預測定價print('擬合優(yōu)度:',rv1)第10章
眾包任務定價優(yōu)化方案任務完成增加量完整實現(xiàn)代碼成本增加額任務完成增加量第10章
任務完成增加量表示新方案與舊方案的執(zhí)行任務數量差。通過將此前計算的12個指標和任務數據中的任務定價共13個指標數據作為自變量,任務完成情況指標數據作為因變量,訓練支持向量機分類模型,并對任務數據中未執(zhí)行任務重新定價后的執(zhí)行情況進行分類預測。xx=pd.concat((Data,A.iloc[:,[3]]),axis=1)#12個指標和附件1的任務定價作為自變量xx=xx.as_matrix()#轉化為數組yy=A4.reshape(len(A4),1)#任務執(zhí)行情況指標數據作為因變量#對自變量與因變量按訓練80%、測試20%隨機拆分fromsklearn.model_selectionimporttrain_test_splitxx_train,xx_test,yy_train,yy_test=train_test_split(xx,yy,test_size=0.2,random_state=4)(1)構造訓練數據和測試數據。示例代碼如下:任務完成增加量第10章
執(zhí)行結果如下:任務完成增加量:68執(zhí)行結果如下:模型準確率:0.7140718562874252預測準確率:0.6826347305389222(3)計算任務完成增加量,示例代碼如下:xx_0=np.hstack((Z[A4==0,1:],y_0r.reshape(len(y_0r),1)))#預測自變量P=clf.predict(xx_0)#預測結果,1表示被執(zhí)行,0表示未被執(zhí)行R1=len(P[P==1])#預測被執(zhí)行的個數R1=int(R1*rv3)#任務完成增加量print('任務完成增加量:',R1)fromsklearnimportsvm#用高斯核,訓練數據類別標簽作平衡策略clf=svm.SVC(kernel='linear',class_weight='balanced')clf.fit(xx_train,yy_train)rv2=clf.score(xx_train,yy_train);#模型準確率yy1=clf.predict(xx_test)yy1=yy1.reshape(len(yy1),1)r=yy_test-yy1rv3=len(r[r==0])/len(r)#預測準確率print('模型準確率:',rv2)print('預測準確率:',rv3)(2)導入支持向量機模型,并利用隨機拆分的訓練數據訓練支持向量機模型,同時顯示預測準確率。示例代碼如下:成本增加額第10章
成本增加額的計算很簡單,直接利用未執(zhí)行任務的新定價減去原定價即可。示例代碼如下:R2=sum(y_0r)-sum(y_0)#成本增加額print('成本增加額:',R2)執(zhí)行結果如下:成本增加額:[-34.91059877]從結果可以看出,新定價方案不僅使得任務完成增加量有所提高,同時成本略有減少。完整實現(xiàn)代碼第10章
下面給出任務定價模型構建和方案評價的完整實現(xiàn)代碼。完整示例代碼如下:importnumpyasnpimportpandasaspdZ=np.load('Z.npy')Data=pd.DataFrame(Z[:,1:])Data=Data.fillna(0)R=Data.corr()fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()data=Data.values#數據框轉化為數組形式scaler.fit(data)data=scaler.transform(data)fromsklearn.decompositionimportPCApca=PCA(n_components=0.9)#累計貢獻率提取在0.9以上pca.fit(data)x=pca.transform(data)#返回主成分tzxl=ponents_#特征向量
tz=pca.explained_variance_#特征值
gxl=pca.explained_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)村振興戰(zhàn)略下職業(yè)技能培訓對鄉(xiāng)村經濟結構調整的影響報告
- 808激光脫毛培訓課件
- 中國衛(wèi)生監(jiān)督培訓課件
- 員工安全操作課件
- 系文宣部培訓大會
- 中國傳統(tǒng)節(jié)日課件背景
- 幼師教育案例分享
- 浙大中控培訓
- 制作商務培訓
- 企業(yè)法治教育培訓
- 2025年中國全棉靛藍色織布市場調查研究報告
- 2024年四川金融控股集團有限公司招聘筆試真題
- 沃爾瑪收貨管理制度
- 鐵塔施工方案(3篇)
- 2025年高考化學湖北卷試題真題解讀及復習備考指導(精校打印)
- 湖南長沙市長郡教育集團2025年七年級英語第二學期期中聯(lián)考試題含答案
- 安全監(jiān)理工作方案
- 水位觀測水尺設計與施工方法
- 2024初級會計職稱考試《經濟法基礎》真題和答案
- 包裝公司日常管理制度
- 2025年遼寧省沈陽市于洪區(qū)中考數學二模試卷
評論
0/150
提交評論