使用 Python 从头开始实现神经网络 [附示例]
已发表: 2020-12-07在本文中,我们将学习如何从头开始训练和构建神经网络。
我们将使用 Churn 数据集来训练我们的神经网络。 训练神经网络并不复杂。 我们需要预处理我们的数据,以便我们的模型可以轻松地获取我们的数据并毫无障碍地训练自己。 您将按以下步骤进行:
- 安装 TensorFlow
- 导入库
- 导入数据集
- 转换输入数据
- 拆分数据
- 初始化模型
- 建立模型
- 训练模型
- 评估模型
流失率是衡量公司订户或倾向于在特定时间段内终止的一方的量度。 这个比率在决定利润和制定计划以赢得新客户方面起着至关重要的作用。 简单来说,我们可以说公司的成长可以用流失率来衡量。
在这个数据集中,我们有 13 个特征,但我们只使用满足我们要求的少数特征来预测用户停止使用的机会。
从世界顶级大学学习机器学习在线课程。 获得硕士、Executive PGP 或高级证书课程以加快您的职业生涯。
目录
安装 TensorFlow
如果您的 PC 或笔记本电脑没有 GPU,我们可以使用 Google Colab,或者您可以使用 Jupyter Notebooks。 如果您使用的是系统,请升级 pip,然后按如下方式安装 TensorFlow。


图片来源
导入库
在上面的代码行中,我只是导入了我在此过程中需要的所有库。
Numpy →它是一个用于对数组执行数学运算的库。
Pandas →将数据文件加载为 Pandas 数据框并分析数据。
Matplotlib →我已经导入了一个 pyplot 来绘制数据图。
导入数据集
我们的数据集是 CSV 格式,因此我们使用 pandas 操作加载数据集。 然后我们将数据集分为因变量和自变量,其中 X 被认为是独立的,Y 被认为是从属的。
转换数据
在我们的数据集中,我们有两个分类特征,地理和性别。 我们需要为这两个特征创建假人,所以我们使用get_dummies方法,然后将它们附加到我们的独立特征数据中。

一旦我们完成创建假人并将它们连接到我们的数据,我们将从我们的训练数据中删除原始特征,即性别和地理。
阅读:机器学习与神经网络
拆分数据
从 Sklearn 的子库 model_selection 中,我们将导入 train_test_split,用于拆分训练集和测试集。 我们可以使用 train_test_split 函数进行拆分。 test_size = 0.3 表示应保留用于测试的数据百分比。
规范化数据
确保所有特征值都在同一范围内是很重要的。 模型很难学习特征之间的底层模式并学习如何做出决策,因此我们使用StandardScaler方法将数据归一化到相同的范围内。
导入依赖
现在,我们将导入构建深度神经网络所需的功能。
构建模型
是时候建立我们的模型了! 现在让我们初始化我们的顺序模型。 顺序 API 允许您为大多数问题逐层创建模型。
在构建模型之前,我们需要做的第一件事就是创建模型对象本身。 该对象将是名为 Sequential 的类的一个实例。
添加第一个全连接层
如果您不了解层的类型及其功能,我建议您查看我关于神经网络简介的博客,它可以让您了解您应该了解的大部分概念。
这意味着这个操作的输出应该有六个神经元,我们在其中应用 ReLU 激活函数来打破线性,输入神经元的数量是 11。我们使用.add()方法添加所有这些超参数。
我们将添加一个具有相同配置的隐藏层,该隐藏层的输出将有六个节点。
输出层
这一层的输出将只有一个节点,它告诉用户是留下还是离开订阅。 在这一层中,我们使用 sigmoid 作为我们的激活函数。
了解:深度学习与神经网络
编译
现在我们需要用优化器连接我们的网络。 优化器将根据误差更新我们网络的权重。 这个过程称为反向传播。
在这里,我们将使用adam作为我们的优化器。 由于我们的结果是二进制的,所以我们使用二进制交叉熵,我们使用的指标是准确度。
训练模型
这个阶段是我们需要训练模型以学习底层模式、数据之间的关系并根据其知识预测新结果的关键路径。
我们使用model.fit()方法来训练模型。 我们在方法内部传递了三个参数,它们是
input → x_train 是输入到网络的输入
输出→这包含 x_train 的正确答案,即 y_train

no.of.epochs →这意味着您将使用数据集训练网络的次数。
评价
您可以通过从需要传递两个参数的 sklearn 库中导入 accuracy_score 来评估模型的性能。 一个是实际输出,另一个是预测输出。
另请阅读:现实世界中的神经网络应用
结论
目前为止就这样了。 我希望你喜欢构建你的第一个神经网络。 快乐学习!
如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和 AI 执行 PG 计划,该计划专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT -B 校友身份,5 个以上实用的实践顶点项目和顶级公司的工作协助。
