数据集地址:[https://tianchi.aliyun.com/competition/entrance/231718/information]
大致流程分布包括:A(数据描述及预处理)、B(模型训练)、C(模型预测)[、D(模型整合)] 目前所拥有的文件包括:
data:存储数据(不放到github上)
log:深度学习日志数据
model:模型数据(训练后存储)
A0_originalDataDes.py:原始数据描述
A1_preprocessingForML.py:传统机器学习预处理(基于矩阵的数据结构)
A2_preprocessingForDL.py:深度学习预处理(基于张量的数据结构)
B0_trainML.py:训练传统机器学习
B1_trainDL.py:训练深度学习
C0_predictWithML.py:传统机器学习预测
C1_predictWithDL.py:深度学习预测
可在每一栏后新添自己相关新文件,并附带序号(eg.在B1后新添B2_trainSelf.py)
合成词汇“首个字母小写的单词+首字母大写的单词”(如:“开头时间”变量命名:startTime=time.time())
特殊情况:
同一容器进行多次数据类型变换时标识其容器类型(如:myDataDf=pd.read_csv("...");myDataArr=np.array(myDataDf);myDataList=myDataArr.tolist())
对某容器内容进行遍历for循环内个体变量以Item结尾(如遍历停止词列表[stopWordItem for stopWordItem in stopWordList])
流程py文件:
流程字母(A(数据描述及预处理)、B(模型训练)、C(模型预测)[、D(模型整合)])流程子步骤编号_子步骤名称(驼峰)(eg.C1_predictWithDL.py)
工具py文件:
驼峰命名,try开头(eg.trySQL.py)
data文件夹内文件
pkl文件:标注pkl展开后的数据类型(eg.userItemDict.pkl)
训练测试集相关文件:train/test驼峰命名(eg.trainMLMatrix.pkl)
传统机器学习/深度学习相关文件:ML/DL驼峰命名(eg.trainMLMatrix.pkl)
model文件夹内文件
模型名称Model(eg.SVMModel.h5)
尽量把所有固定过程都放到子函数中
#coding:utf8
import pandas as pd
import numpy as np
import tqdm
def getTimeItemData():
'''获取 时间-商品 数据'''#子函数有注释
trainDf=pd.read_csv("data/Antai_AE_round1_train_20190626.csv")
trainDf["create_order_time"]=trainDf["create_order_time"].apply(lambda x:x.split(" ")[0])
timeList=list(set(np.array(trainDf["create_order_time"]).tolist()))
timeItemList=[[timeItem,",".join([str(intItem) for intItem in np.array(trainDf.loc[trainDf["create_order_time"]==timeItem,"item_id"]).tolist()])] for timeItem in timeList]
timeItemDf=pd.DataFrame(np.array(timeItemList),columns=["create_order_time","item_id"])
timeItemDf.to_csv("data/timeItemData.csv")
print("finished")
if __name__=="__main__":#要有主函数
getTimeItemData()