<!--
* @Descripttion:
* @Version: 1.0
* @Author: ZhangHongYu
* @Date: 2021-09-19 19:53:49
* @LastEditors: ZhangHongYu
* @LastEditTime: 2022-07-07 15:37:20
-->
# 航空旅客付费选座意愿识别
[![Open Source Love](https://badges.frapsoft.com/os/v2/open-source.svg?v=103)](https://github.com/orion-orion/AirPassengerAnalysis)
[![](https://img.shields.io/github/license/orion-orion/AirPassengerAnalysis)](https://github.com/orion-orion/AirPassengerAnalysis)
[![](https://img.shields.io/github/stars/orion-orion/AirPassengerAnalysis?style=social)](https://github.com/orion-orion/AirPassengerAnalysis)
[![](https://img.shields.io/github/issues/orion-orion/AirPassengerAnalysis)](https://github.com/orion-orion/AirPassengerAnalysis)
## 赛题要求
本项目为2021年软件服务外包大赛《航空旅客付费选座意愿识别》赛题,该赛题要求从650个特征因子中,提取或衍生出能够描述旅客付费选座意愿的特征因子集合;并利用特征因子集合的成果,构建旅客付费选座意愿识别模型。
## 模型架构
由于题目给定的特征非常多,我们采用PNN(Product-based-Neural-Network)深度学习模型对特征工程进行模型化。模型原始论文在项目目录`data`下。该模型的Embedding层能够对类别型特征组成的稀疏矩阵转换为大量稠密矩阵,提高模型收敛速率,同时Product层能够将特征域的Embedding后的向量进行两两交叉,充分挖掘组合特征,获取特征之间的交叉信息。
## 环境依赖
运行以下命令安装环境依赖:
```
pip install -r requirements.txt
```
## 数据集
数据集直接采用的赛方给定的旅客付费选座数据集,放在项目目录中的 `data`文件夹下。
## 数据格式转换
项目在对模型进行训练前会先将数据转换为以下格式:
- [ ] **Xi**: *[[ind1_1, ind1_2, ...], [ind2_1, ind2_2, ...], ..., [indi_1, indi_2, ..., indi_j, ...], ...]*
- *indi_j* 是数据集中样本 *i* 的特征域 *j* 的特征索引
- [ ] **Xv**: *[[val1_1, val1_2, ...], [val2_1, val2_2, ...], ..., [vali_1, vali_2, ..., vali_j, ...], ...]*
- *vali_j* 是数据集中样本 *i* 的特征域 *j* 的特征数值
- *vali_j* 可以是二值型(1/0,用于二值/类别型特征)或浮点数(例如,10.24,用于数值特征)
- [ ] **y**: 数据集中每个样本的预测目标(1/0用于分类,数值用于回归)
请参阅`data_reader.py`查看如何将数据转换为项目所需格式。
## 模型
我本地训练好的模型(包括用于K-fold交叉验证的模型和最终训练的模型)都已经保存在项目的`model`目录下,可直接进行测试。
## 项目目录说明
-data ------------------- 存放数据
-model ------------------- 存放相关模型(包括用于K-fold交叉验证的模型和最终训练的模型)
-prediction ------------------- 存放对有付费选座意愿旅客的预测结果
-config.py ------------------- 存储模型的超参数,包括架构超参数、训练超参数等
-data_reader.py ------------------- 数据的读取和预处理的实现
-data_utils.py ------------------- 对输入数据格式进行转换的实现(处理各特征域得到 `Xi`和 `Xv`)
-k_fold_cross_valid.py ------------------- 在训练集和验证集上进行K-fold交叉验证逻辑的实现
-main.py ------------------- 主文件,用于从构建特征工程到模型的训练与评估的pipline
-pnn.py ------------------- PNN模型架构的实现
-predict.py ------------------- 调用训练好的PNN模型对有付费选座意愿的旅客进行预测
## 使用方法
运行:
```
python main.py --model retrain
```
`model`参数表示是否重新开始训练PNN模型,若需重新训练模型可将 `model `参数设置为 `retrain `,否则设置为 `load`直接加载已经训练并保存好的模型(但前提是模型已经放置于 `model`目录下)。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
教育部认可的大学生竞赛备赛资料代码,源码,竞赛总结,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通 全国电子设计大赛、全国大学生智能汽车竞赛、蓝桥杯、集成电路创新创业大赛、光电设计竞赛、挑战杯、大创项目、互联网+、三创赛、计算机设计竞赛、创新创业大赛、ACM-ICPC国际大学生程序设计竞赛、全国大学生数学建模竞赛、全国大学生电子商务“创新、创意及创业”挑战赛、全国大学生节能减排社会实践与科技竞赛、全国大学生工程训练综合能力竞赛、全国大学生机器人大赛-RoboMaster、RoboCon、“西门子杯”中国智能制造挑战赛、中国大学生计算机设计大赛、世界技能大赛、中国高校计算机大赛-大数据挑战赛、团体程序设计天梯赛、移动应用创新赛、网络技术挑战赛、全国大学生信息安全竞赛、“中国软件杯”大学生软件设计大赛、全国大学生光电设计竞赛、中国机器人及人工智能大赛、“大唐杯”全国大学生移动通信5G技术大赛、华为ICT大赛、全国大学生嵌入式芯片与系统设计竞赛、中国高校智能机器人创意大赛
资源推荐
资源详情
资源评论
收起资源包目录
2021年大学生服务外包创新创业大赛《航空旅客付费选座意愿识别》赛题.zip (26个子文件)
资料总结
pnn.py 9KB
main.py 1KB
data
train.csv 33.94MB
test.csv 9.42MB
LICENSE 1KB
predict.py 2KB
k_fold_cross_valid.py 8KB
data_reader.py 2KB
pnn_paper.pdf 470KB
model
final
saved_model.pb 402KB
variables
variables.index 969B
variables.data-00000-of-00001 3.81MB
1th_fold
saved_model.pb 393KB
variables
variables.index 969B
variables.data-00000-of-00001 3.81MB
3th_fold
saved_model.pb 402KB
variables
variables.index 969B
variables.data-00000-of-00001 3.81MB
2th_fold
saved_model.pb 402KB
variables
variables.index 969B
variables.data-00000-of-00001 3.81MB
requirements.txt 54B
.gitignore 2KB
README.md 4KB
data_utils.py 4KB
config.py 873B
共 26 条
- 1
资源评论
妄北y
- 粉丝: 9658
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功