




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第10章
眾包任務定價優(yōu)化方案指標設計程序實現指標計算方法指標設計第10章
一個任務的定價不僅與其周圍的任務數量、會員數量有關,還與任務發(fā)布時間有一定的關系。通過分析數據,我們發(fā)現任務的發(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范圍內具體包括哪些任務和會員,進而就可以計算其指標值了。
程序實現第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程序實現第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程序實現第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程序實現第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程序實現第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程序實現第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)))程序實現第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。程序實現第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,返回值為對應時段的邏輯索引值。程序實現第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程序實現第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程序實現第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
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 債權還款協(xié)議書范本
- 公司餐廳承包協(xié)議書范本
- 2025年村衛(wèi)生院手衛(wèi)生培訓試題及答案
- 2025年小學生國學知識競賽題庫及答案
- 2025年食品安全培訓考試試題及答案解析
- 2025年氣體滅火保護區(qū)防火制度及其安全操作要求考核試題及答案
- 契約投保業(yè)務知識培訓課件
- 2025年ssop衛(wèi)生標準操作程序試題及答案
- 奇異的激光課件
- 2025年全國大學生環(huán)保知識競賽題庫(判斷題題目及答案)
- 2025 年藝術新課程標準試題與答案(2022 版)
- 數據中心列頭柜基礎知識
- 數據中心項目實施計劃與時間安排
- 警務應急處突
- 鎖骨骨折的護理課件
- 2024華為干部管理資料第7版
- 超級動漫IP奶龍-品牌手冊
- 濕熱敷課件教學課件
- (新版)高級考評員職業(yè)技能鑒定考試題庫(含答案)
- 居住保證書模板
- 電商行業(yè)電商平臺客服解決方案
評論
0/150
提交評論