我如何知道我的神经网络模型是否过度拟合(Keras)

2024-03-20

我使用 Keras 来预测输出是 1 还是 0。数据如下所示:

    funded_amnt  emp_length  avg_cur_bal  num_actv_rev_tl    loan_status
    10000       5.60088      19266                 2                  1
    13750       5.60088      2802                  6                  0
    26100       10.0000      19241                17                  1

目标是loan_status剩下的就是特征了。在开始构建神经网络模型之前,我已经对数据进行了标准化。

这是我的训练和测试数据的形状:

    print(X_train.shape,Y_train.shape) 
    # Output: (693, 4) (693,)

    print(X_test.shape,Y_test.shape) 
    # Output: (149, 4) (149,)

我构建神经网络的过程是:

     # define the keras model
     model = Sequential()
     model.add(Dense(4, input_dim=4,activation='relu'))
     model.add(Dense(4 ,activation='relu'))
     model.add(Dense(1,activation='sigmoid'))

     # compile the keras model
     model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

     # fit the keras model on the dataset
     hist = model.fit(X_train, Y_train, epochs=10, batch_size=2)

运行后的输出hist:

         Epoch 1/10
         693/693 [==============================] - 2s 2ms/step - loss: 0.6379 - acc: 0.7013
         Epoch 2/10
         693/693 [==============================] - 0s 611us/step - loss: 0.5207 - acc: 0.7951
         Epoch 3/10
         693/693 [==============================] - 0s 605us/step - loss: 0.5126 - acc: 0.7951
         Epoch 4/10
         693/693 [==============================] - 0s 621us/step - loss: 0.5109 - acc: 0.7951
         Epoch 5/10
         693/693 [==============================] - 0s 611us/step - loss: 0.5105 - acc: 0.7951
         Epoch 6/10
         693/693 [==============================] - 0s 636us/step - loss: 0.5091 - acc: 0.7951
         Epoch 7/10
         693/693 [==============================] - 0s 644us/step - loss: 0.5090 - acc: 0.7951
         Epoch 8/10
         693/693 [==============================] - 0s 659us/step - loss: 0.5086 - acc: 0.7951
         Epoch 9/10
         693/693 [==============================] - 0s 668us/step - loss: 0.5083 - acc: 0.7951
         Epoch 10/10
         693/693 [==============================] - 0s 656us/step - loss: 0.5076 - acc: 0.7951

这一切几乎都是一样的,并且在第二个纪元之后没有改变。我尝试过更改 Epoch 数和批次大小,但仍然得到相同的结果。 这是正常的吗?或者这是过度拟合的迹象,我需要更改一些参数


Your 测试数据用于监控模型的过拟合 https://en.wikipedia.org/wiki/Overfitting on 训练数据:

hist = model.fit(X_train, Y_train, validation_data=(X_test, Y_test), epochs=10, batch_size=2)

在训练过程中,您将达到一个点,训练损失继续减少,但测试损失停止减少。您的数据开始过度拟合的点。

在统计学中,过度拟合是“分析结果与一组特定数据过于接近或精确对应,因此可能无法拟合其他数据或可靠地预测未来的观察结果”。

举一个极端的例子,如果参数的数量等于或大于观察的数量,那么模型只需记住完整的数据就可以完美地预测训练数据。然而,这样的模型在进行预测时通常会严重失败。

通常,学习算法是使用一组“训练数据“:期望输出已知的示例情况。目标是算法在预测馈送时的输出方面也能表现良好”验证数据“在训练过程中没有遇到过这种情况。在学习时间过长或训练样本很少的情况下,过度拟合尤其容易发生,导致学习者适应训练数据的非常具体的随机特征,而这些特征与训练数据没有因果关系。目标函数,在这个过拟合的过程中,表现训练样例上仍然增加同时表现看不见的数据变得更糟.

绿线代表过拟合模型,黑线代表正则化模型。虽然绿线最好地遵循训练数据,但它过于依赖于该数据,并且与黑线相比,它对新的未见数据的错误率可能更高。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何知道我的神经网络模型是否过度拟合(Keras) 的相关文章

  • Python Numpy Reshape错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试重塑 3D numpy 数组时遇到一个奇怪的错误 数组 x 的形状为 6 10 300 我想将其重塑为 6 3000 我正
  • 在 Jupyter Notebook 中设置环境变量的不同方法

    在某些情况下 我在 Windows 10 计算机上使用 Jupyter 笔记本 我想通过设置环境变量 GOOGLE APPLICATION CREDENTIALS 来向 GCP 进行身份验证 我想知道 这两种设置环境变量的方式有什么区别 当
  • 绝对导入不起作用,但相对导入起作用

    这是我的应用程序结构 foodo setup py foodo init py foodo py models py foodo foodo foodo py从导入类models py module from foodo models im
  • 检查子字符串是否在字符串列表中?

    我之前已经找到了这个问题的一些答案 但它们对于当前的Python版本来说似乎已经过时了 或者至少它们对我不起作用 我想检查字符串列表中是否包含子字符串 我只需要布尔结果 我找到了这个解决方案 word to check or wordlis
  • 如何调试 numpy 掩码

    这个问题与this one https stackoverflow com q 73672739 11004423 我有一个正在尝试矢量化的函数 这是原来的函数 def aspect good angle float planet1 goo
  • 样本()和r样本()有什么区别?

    当我从 PyTorch 中的发行版中采样时 两者sample and rsample似乎给出了类似的结果 import torch seaborn as sns x torch distributions Normal torch tens
  • 从字典中绘制直方图

    我创建了一个dictionary计算 a 中出现的次数list每个键的内容 我现在想绘制其内容的直方图 这是我想要绘制的字典的内容 1 27 34 1 3 72 4 62 5 33 6 36 7 20 8 12 9 9 10 6 11 5
  • Caffe 的 LSTM 模块

    有谁知道 Caffe 是否有一个不错的 LSTM 模块 我从 russel91 的 github 帐户中找到了一个 但显然包含示例和解释的网页消失了 以前是http apollo deepmatter io http apollo deep
  • Django Web 应用程序中的 SMTP 问题

    我被要求向使用 Django Python 框架实现的现有程序添加一个功能 此功能将允许用户单击一个按钮 该按钮将显示一个小对话框 表单以输入值 我确实编写了一些代码 显示电子邮件已发送的消息 但实际上 它没有发送 My code from
  • 如何仅注释堆积条形图的一个类别

    我有一个数据框示例 如下所示 data Date 2021 07 18 2021 07 19 2021 07 20 2021 07 21 2021 07 22 2021 07 23 Invalid NaN 1 1 NaN NaN NaN N
  • 预测测试图像时出现错误 - 无法重塑大小数组

    我正在尝试使用 TensorFlow 和 Keras 在 Python 中进行图像识别 并且我已经关注了下面的博客 https stackabuse com image recognition in python with tensorfl
  • 在监督分类中,使用partial_fit() 的MLP 比使用fit() 的表现更差

    我正在使用的学习数据集是灰度图像flatten让每个像素代表一个单独的样本 第二张图像在训练后将被逐像素分类Multilayer perceptron MLP 前一个分类器 我遇到的问题是MLP当它一次接收到所有训练数据集时表现更好 fit
  • 重定向 python 交互式帮助()

    我正在为使用 Qt 的应用程序开发交互式 python shell 但是我似乎无法获得重定向的交互式帮助 我的 python 代码中有这个 class OutputCatcher def init self self data def wr
  • 通过新数据更新绘图,而不是在 Jupyter 笔记本中制作新绘图

    我有一些问题 希望你能帮我解决 我需要使用下拉小部件创建交互式绘图 我可以在其中选择并绘制感兴趣的数据 我通过以下方式做到这一点 import plotly graph objects as go import ipywidgets as
  • Python RE(总之检查第一个字母是否区分大小写,其余部分不区分大小写)

    在下面的情况下 我想匹配字符串 Singapore 其中 S 应始终为大写 其余单词可能为小写或大写 但在下面的字符串 s 是小写的 它在搜索条件中匹配 任何人都可以让我知道如何实施吗 import re st Information in
  • 在 anaconda 环境下运行 qsub

    我有一个程序 通常在 Linux 的 conda 环境中运行 因为我用它来管理我的库 指令如下 source activate my environment python hello world py 我怎样才能跑你好世界 py在与 PBS
  • 避免“散点/点/蜂群”图中的数据点重叠

    使用绘制点图时matplotlib 我想偏移重叠的数据点以使它们全部可见 例如 如果我有 CategoryA 0 0 3 0 5 CategoryB 5 10 5 5 10 我想要每一个CategoryA 0 数据点并排设置 而不是彼此重叠
  • 如何在supervisord中设置组?

    因此 我正在设置 Supervisord 并尝试控制多个进程 并且一切正常 现在我想设置一个组 以便我可以启动 停止不同的进程集 而不是全部或全无 这是我的配置文件的片段 group tapjoy programs tapjoy game1
  • 如何在 Qt 中以编程方式制作一条水平线

    我想弄清楚如何在 Qt 中制作一条水平线 这很容易在设计器中创建 但我想以编程方式创建一个 我已经做了一些谷歌搜索并查看了 ui 文件中的 xml 但无法弄清楚任何内容 ui 文件中的 xml 如下所示
  • OSError: [WinError 193] %1 不是有效的 Win32 应用程序,同时使用 CTypes 在 python 中读取自定义 DLL

    我正在尝试编写用 python 封装 C 库的代码 我计划使用 CTypes 来完成此操作 并使用 Visual Studio 来编译我的 DLL 我从一个简单的函数开始 在 Visual Studio 内的标头中添加了以下内容 然后将其构

随机推荐

  • JavaScript 对象类型和基本类型有什么区别?

    Stoyan Stefanov 在他的优秀著作 面向对象的 JavaScript 中说道 任何不属于上面列出的五种基本类型之一的值都是对象 对于五种原始类型 他的意思是Number String Boolean Undefined and
  • Ajax 回调中的设置状态抛出错误:警告:setState(...):只能更新已安装或正在安装

    我有一个相当简单的反应容器组件 它尝试在从 componentDidMount 调用的 ajax 回调中调用设置状态 完整的错误是 警告 setState 只能更新已安装或正在安装的组件 这通常意味着您在未安装的组件上调用了 setStat
  • 摆脱打开 EL 表达式时生成的愚蠢的空间日食

    当我在 Eclipse 中使用 EL 表达式时 我自然会先输入 Eclipse 想帮忙一点 放置了一个右括号 之后 然而 它们之间有一个空间 所以如果我想要 user name I type 其次是user name但我的最终结果是 use
  • 关闭子进程中打开的套接字

    我有一个 SIP 服务器 守护进程 它正在侦听 tcp 套接字 5060 现在 在这个父进程中 我创建一个子进程并在子进程中执行一些操作 现在 当我在父进程中关闭此 tcp 套接字并尝试再次创建 假设我在此服务器上禁用和启用 SIP 时 会
  • 尽管其中一项任务失败,Gradle 返回退出代码为 0

    假设我运行 gradle 任务如下 gradlew cleanTest task1 task2 info rerun task 在这里 如果任务 1 失败而任务 2 通过 则此运行的退出代码仍然为 0 如果任何任务失败 我希望它返回非零 这
  • PasswordResetsController#update 中的 ActiveModel::ForbiddenAttributesError

    我看过 Ryan 铁路广播第 274 集 我正在使用 Rails 4 并遇到一个问题 在password resets controller rb中 elsif user update attributes params user 在控制台
  • 触摸屏设备上的 HTML5 拖放 API

    我只是想知道用于拖放的 HTML5 API 是否包含对触摸屏显示的支持 我正在考虑 iPhone 但我知道它还不支持 我想知道苹果是否正在追赶 以支持 Safari 移动设备上的 HTML5 拖放 但我也想也许 HTML5 API 对此不够
  • 不使用 HQL 检索表的所有行?

    我正在使用 Hibernate 4 并且想简单地列出表的所有行 我发现的所有解决方案都建议使用 from tablename 之类的内容 但我想避免在字符串中硬编码表名 您可以使用 session createCriteria MyEnti
  • 如何让FlashDevelop使用32位JRE?

    我需要为 Android Studio 安装 64 位 JDK 这也意味着JAVA HOME设置为 64 位 JDK 我还安装了 32 位 JRE 和 Flex SDKjvm config文件我指定了它的路径 我知道 Flex SDK 使用
  • 声明FigureCanvasTkAgg导致内存泄漏

    我很难弄清楚为什么FigureCanvasTkAgg 的声明会导致内存泄漏 我的类中有以下几行 init method pndwinBottom is a paned window of the main screen self drawp
  • 获取存在多个相同值的行[重复]

    这个问题在这里已经有答案了 我有一个 R 数据框 看起来像这样 A B C 14 apple 45 14 bannaa 23 15 car 234 16 door 12 16 ear 325 正如您所看到的 14 和 16 是重复的 我想
  • 通用 DataRow 扩展

    我使用扩展方法来检查 DataRowField 是否为 null public static string GetValue this System Data DataRow Row string Column if Row Column
  • 如何使用 Dapper 扩展谓词实现“NOT IN”子句?

    我找到了如何实施IN使用 Dapper 扩展的子句here https stackoverflow com questions 49777139 how to implement in clause with dapper extensio
  • 临时 ASP.NET 文件丢失

    在我的asp项目中运行时抛出错误 昨天效果很好 但今天早上它自己给出了以下消息 Could not load file or assembly file C Windows Microsoft NET Framework v4 0 3031
  • 如何在单个事务下执行多个操作

    我有一个场景 需要将记录添加到表中 然后 如果添加了记录 则在云上创建资源 如果在云上创建资源 则使用资源标识符更新表中的记录 所以 它们是 3 个操作 当其中任何一个操作不成功时 我想恢复所有操作 我们一次性拥有用于多个数据库操作的 Tr
  • 如何调试我的 JavaScript 代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当我发现我的代码片段有问题时 我应该如何调试它 Firebug http en wikipedia org wiki Firebug
  • jQuery/css/html:具有固定标题的可滚动表格[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我知道这个问题已经被问过好几次了 但我还找不到令人满意的 x 浏览器解决方案 我认为完成具有固定标题的可滚动表格的最简单方法应该是使用
  • SLF4J - 什么是悬挂或分离标记?

    在 SLF4J 中我不完全确定什么是分离标记 http www slf4j org apidocs org slf4j IMarkerFactory html getDetachedMarker 28java lang String 29是
  • 以编程方式确定 Android Wear 中的屏幕形状

    我正在寻找一种技术来确定 Java 中 Android Wear 设备屏幕是圆形还是矩形 请注意 这不仅仅涉及布局 还涉及布局 我的代码实际上需要知道它正在使用哪种形状 因为它们的处理方式不同 据我从在线代码示例中看到 两种不同的方法应该是
  • 我如何知道我的神经网络模型是否过度拟合(Keras)

    我使用 Keras 来预测输出是 1 还是 0 数据如下所示 funded amnt emp length avg cur bal num actv rev tl loan status 10000 5 60088 19266 2 1 13