# 回归问题的深层神经网络

### 内容：

1- Process the dataset 2- Make the deep neural network 3- Train the DNN 4- Test the DNN 5- Compare the result from the DNN to another ML algorithm

### 第一：处理数据集

#### 加载数据集：

· 将训练和测试数据加载到pandas数据框架中

· 将训练和测试数据结合在一起进行处理。

combined.describe()

[out]: Number of numerical columns with no nan values : 25 Number of nun-numerical columns with no nan values : 20

[out]: There were 45 columns before encoding categorical features There are 149 columns after encoding categorical features

### 第二：构建深层神经网络

· 定义顺序模型

· 增加一些致密的层

· 使用‘relu‘作为隐藏层的激活函数

· 用‘normal‘初始化器为核初始化器

Initializers define the way to set the initial random weights of Keras layers.

· 我们将使用均值绝对误差作为损失函数。

· 定义只有一个节点的输出层

· 使用‘linear‘作为输出层的激活函数

[Out]: _________________________________________________________________ Layer (type)                 Output Shape              Param #    ================================================================= dense_1 (Dense)              (None, 128)               19200      _________________________________________________________________ dense_2 (Dense)              (None, 256)               33024      _________________________________________________________________ dense_3 (Dense)              (None, 256)               65792      _________________________________________________________________ dense_4 (Dense)              (None, 256)               65792      _________________________________________________________________ dense_5 (Dense)              (None, 1)                 257        ================================================================= Total params: 184,065 Trainable params: 184,065 Non-trainable params: 0 _________________________________________________________________

### 第三：训练模式：

[out]: Train on 1168 samples, validate on 292 samples Epoch 1/500 1168/1168 [==============================] - 0s 266us/step - loss: 19251.8903 - mean_absolute_error: 19251.8903 - val_loss: 23041.8968 - val_mean_absolute_error: 23041.8968   Epoch 00001: val_loss did not improve from 21730.93555 Epoch 2/500  1168/1168 [==============================] - 0s 268us/step - loss: 18180.4985 - mean_absolute_error: 18180.4985 - val_loss: 22197.7991 - val_mean_absolute_error: 22197.7991   Epoch 00002: val_loss did not improve from 21730.93555 . . . Epoch 00500: val_loss did not improve from 18738.19831

<keras.callbacks.History at 0x7f4324aa80b8>

We see that the validation loss of the best model is 18738.19

### 第五：尝试另一个ML算法

Random forest validation MAE =  19089.71589041096

[out]: XGBoost validation MAE =  17869.75410958904

#### 总结一下我们所做的：

· 加载并处理数据集

· 通过绘制一些直方图和特征的相关热图来熟悉数据集

· 使用了一个由三个隐层组成的深度神经网络，每个隐层有256个节点

· 在输出层上使用了线性激活函数

· 训练了模型，然后在Kaggle上测试

· 还测试了另外两种型号

· 深层神经网络能够超过这两个模型

· 我们相信，如果调整它们的超参数，这两种模型都能超越深层神经网络模型

### 下一步：

· 尝试将更多的精力放在处理数据集上

· 尝试其他类型的神经网络

· 尝试调整我们使用的两个模型的超参数

145 篇文章36 人订阅

0 条评论

## 相关文章

### TF.Learn 手写文字识别

minist问题 计算机视觉领域的Hello world 给定55000个图片，处理成28*28的二维矩阵，矩阵中每个值表示一个像素点的灰度，作为feature...

4056

1561

3K1

### 深入机器学习系列7-Random Forest

1 Bagging   采用自助采样法()采样数据。给定包含个样本的数据集，我们先随机取出一个样本放入采样集中，再把该样本放回初始数据集，使得下次采样时，样本仍...

4936

22610

2.9K8

6124

5417

### 使用Keras在训练深度学习模型时监控性能指标

Keras库提供了一套供深度学习模型训练时的用于监控和汇总的标准性能指标并且开放了接口给开发者使用。

2.2K10

7184