1- ### 背景
2- [ 携程旅行网 云海竞赛平台] ( https://yunhai.ctrip.com ) 举办算法竞赛,携程机票BU与飞常准合作命题[ 携程机票航班延误预测算法大赛] ( https://yunhai.ctrip.com/Games/11 ) ,希望以此提升航班延误的预测准确性。
3- 由于云海平台仅支持Python语言,原算法使用R语言实现,因此实现一份Python版,用于竞赛算法的结果核算。
1+ ### 背景
2+
3+ [ 携程旅行网 云海竞赛平台] ( https://yunhai.ctrip.com ) 举办算法竞赛,携程机票事业部与飞常准合作命题[ 携程机票航班延误预测算法大赛] ( https://yunhai.ctrip.com/Games/11 ) ,希望以此提升航班延误的预测准确性。
4+ 验收评测竞赛提交算法的结果核算算法使用R语言实现,但云海平台仅支持Python语言,因此实现一份Python版。
5+
46源数据样本csv格式说明:[ 航班动态起降数据集] ( https://www.kesci.com/apps/home/dataset/59793a5a0d84640e9b2fedd3 ) 。
57提交预测样本csv格式说明:[ submission_sample.csv] ( http://ofy9izzlw.bkt.clouddn.com/ctrip_fligtht/submission_sample.csv ) 。
6- 示例:
7- ```
8- Flightno FlightDepcode FlightArrcode PlannedDeptime PlannedArrtime prob
9- CA1351 PEK CAN 1496273700 1496285700 0.041386555
10- 8L9647 KMG HIA 1496272200 1496282400 0.022590361
11- CZ6299 DLC SZX 1496274000 1496286900 0.025210084
12- HU7377 URC CKG 1496273700 1496287500 0.106757728
13- ```
8+ 示例:
9+
10+ Flightno | FlightDepcode | FlightArrcode | PlannedDeptime | PlannedArrtime | prob
11+ -- | -- | -- | -- | -- | --
12+ CA1351 | PEK | CAN | 1496273700 | 1496285700 | 0.041386555
13+ 8L9647 | KMG | HIA | 1496272200 | 1496282400 | 0.022590361
14+ CZ6299 | DLC | SZX | 1496274000 | 1496286900 | 0.025210084
15+ HU7377 | URC | CKG | 1496273700 | 1496287500 | 0.106757728
16+
1417本次比赛采用PR曲线的AUC(baseline:auc=0.45)。
1518评估指标参考文献:http://mark.goadrich.com/articles/davisgoadrichcamera2.pdf
1619
1720### 实现
18- csv文件读取使用pandas库。
21+
22+ csv文件读取使用pandas库。
23+
1924``` Python
2025def load_label_prob (real_csv , result_csv ):
2126 ''' 读取real.csv和result.csv表格数据的label数组和prob数组'''
@@ -28,7 +33,9 @@ def load_label_prob(real_csv, result_csv):
2833 prob[_i] = round (_e, 4 )
2934 return label, prob
3035```
36+
3137PR曲线AUC值计算使用sklearn库。
38+
3239``` Python
3340''' 使用real.csv和result.csv列数据,计算PR曲线的AUC值'''
3441precision, recall, _thresholds = metrics.precision_recall_curve(label, prob)
@@ -37,21 +44,23 @@ return area
3744```
3845
3946附:ROC曲线的AUC值计算。
47+
4048``` Python
4149''' 使用real.csv和result.csv列数据,计算ROC曲线的AUC值'''
4250area = metrics.roc_auc_score(label, prob)
4351return area
4452```
4553
4654### 环境搭建
47- Windows的scikit-learn库环境搭建略繁琐,对NumPy和SciPy版本有要求。
48- 因此直接使用 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 的第三方预编译库。
49- ```
55+
56+ scikit-learn Windows 环境搭建略繁琐,对 NumPy 和 SciPy 版本有要求。
57+ 因此直接使用[ 第三方预编译库] ( http://www.lfd.uci.edu/~gohlke/pythonlibs/ ) 。
58+
59+ ``` bash
5060pip install http://www.lfd.uci.edu/~gohlke/pythonlibs/ru4fxw3r/numpy-1.13.1+mkl-cp36-cp36m-win32.whl
5161pip install http://www.lfd.uci.edu/~gohlke/pythonlibs/ru4fxw3r/scipy-0.19.1-cp36-cp36m-win32.whl
5262pip install pandas
5363pip install scikit-learn
5464```
5565
56- ### 源码见GitHub
57- https://github.com/9468305/python-script/blob/master/auc_pr_roc/
66+ ### [ GitHub源码] ( https://github.com/9468305/python-script/blob/master/auc_pr_roc/ )
0 commit comments