本文是DataCamp《Deep Learning in Python》课程的学习笔记,代码部分包含regression和classification2个练习,练习数据为DataCamp提供的Hourly wages。
注:数据的选择和代码的编写仅是为了练习。
1. 数据
Hourly wages包含534条工资记录,每条记录分为10列,第1列为wage per hour,其余各列为个人特征,如性别、婚姻状况、年龄、工作时间、受教育时间等等。
2. 问题
regression:利用个人特征(第2-10列)预测wage per hour(第1列)。
classification:利用个人特征(第1-6列、第8-10列)预测婚姻状况(第7列)。
2. 准备工作
● 安装Anaconda(Python 3.7);
● 在Anaconda Prompt下依次安装mingw libpython、theano和keras;
● 启动Jupyter Notebook;
3. 代码部分
● regression
X为predictor,y为target,列的选取采用iloc;
optimizer选择"adam",loss选择"mean_squared_error";
● classification
"marr"为target,其余列为predictor,列的选取使用drop;
建模前,"marr"需用to_categorical转换为2元矩阵;
模型最后一层的activation选择"softmax";
编译时,loss选择"categorical_crossentropy",metrics选择"accuracy";
建模时,将样本总数的20%单独作为validation数据,并加入EarlyStopping机制,epoch数为3(即patience为3);
红色标记显示,validation loss score在epoch3时为0.6876,之后的3个epoch显示,该指标没有进一步下降,因此,model.fit停止;