正则化(Regularization)

2023-10-27

过拟合问题(Overfitting)

当我们对一个问题建立线性回归模型或逻辑回归模型时,不恰当的选择特征会导致过拟合问题。过拟合问题是指当我们选择了很多的特征值时,模型对数据集的每一个example都符合的很好,但是对新的example却预测不能,偏差较大。

解决方法

方法一:减少特征量的数量

方法二:正则化

本片博客暂不讨论方法一,着重于正则化的分析。

正则化(Regularization)

正则化的思想是保留所有特征量,而通过减小\small \Theta的值解决过拟合,这样我们就可以在不舍弃任何一个有价值的量的前提下解决过拟合问题。

线性回归正则化

线性回归正则化的具体操作方法是在代价函数后添加一项\frac{\lambda }{2m}\sum_{j=1}^{n}\Theta _j^{2},其中\lambda正则化系数,这样

代价函数变为:

\large J(\Theta ) = \frac{1}{2m}[\sum_{i=1}^{m}(h_\Theta (x^{(i)})-y^{(i)})^2+\lambda \sum_{j=1}^{n}\Theta _j^2]

梯度下降算法变为:

repeat until convergence{

           \small \Theta _0 := \Theta _0-\alpha *\frac{1}{m} \sum_{i=1}^{m}((h_\Theta (x^{(i)})-y^{(i)})*x^{(i)}_0)

           \small \Theta _j := \Theta _j-\alpha *[\frac{1}{m} \sum_{i=1}^{m}((h_\Theta (x^{(i)})-y^{(i)})*x^{(i)}_j)+\frac{\lambda }{m}\Theta _j]    j = 1,2,3,...n

}

正规方程法变为:

\Theta = (X^T*X+\lambda *E)^{-1}*X^T*y,其中E是(n+1)*(n+1)的单位矩阵。注意此时不存在不可逆的问题

逻辑回归正则化

代价函数变为:

J(\Theta ) = -\frac{1}{m}(ylog(h_\Theta (x))+(1-y)log(1-h_\Theta (x)))+\frac{\lambda }{2m}\sum_{j=1}^{n}\Theta _j^2

梯度下降算法变为:

repeat until convergence{

           \small \Theta _0 := \Theta _0-\alpha *\frac{1}{m} \sum_{i=1}^{m}((h_\Theta (x^{(i)})-y^{(i)})*x^{(i)}_0)

           \small \Theta _j := \Theta _j-\alpha *[\frac{1}{m} \sum_{i=1}^{m}((h_\Theta (x^{(i)})-y^{(i)})*x^{(i)}_j)+\frac{\lambda }{m}\Theta _j]    j = 1,2,3,...n

}

代码实现

通过使用MATLAB和Python,实现了逻辑回归的正则化处理。代码已上传至github,文件夹是machine-learning-ex2。

若对本篇博客有任何问题,欢迎指正,欢迎讨论。

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

正则化(Regularization) 的相关文章

  • 机器学习 之 python实现 多元线性回归 梯度下降 普适算法与矩阵算法

    介于网上的多元线性回归梯度下降算法多为固定数量的因变量 如三元一次函数 y 1 x 1
  • 主成分分析(Principal Component Analysis,PCA)详解

    PCA是非常重要的统计方法 其实际应用非常广泛 但是很多讲解太过于公式化 很难让初学者消化 本文将从一个实际例子出发 并对数学公式原理及推导过程作出详细解释 即使你的数学基础比较差 在看完这篇博客之后 相信你会对PCA会有一个透彻的认知 P
  • 正则化(Regularization)

    过拟合问题 Overfitting 当我们对一个问题建立线性回归模型或逻辑回归模型时 不恰当的选择特征会导致过拟合问题 过拟合问题是指当我们选择了很多的特征值时 模型对数据集的每一个example都符合的很好 但是对新的example却预测
  • 深度学习系列之ANN

    到此 ANN网络从最基础的单层感知器 到为深度网络作模板延伸的BP网络 将模型结构 参数训练 算法都举例讲解的很透彻 为下面的CNN网络的学习打下坚实的基础 这个在线编辑器 体验太差了 好好写一篇长文章 想知道博客上与大家交流 转换过程太麻
  • R资源大全

    0 前言 虽然很早就知道R被微软收购 也很早知道R在统计分析处理方面很强大 开始一直没有行动过 直到 直到12月初在微软技术大会 看到我软的工程师演示R的使用 我就震惊了 然后最近在网上到处了解和爬一些R的资料 看着看着就入迷了 这就是个大
  • 【机器学习中的数学】基函数与函数空间

    引言 在学习线性回归模型的时候就会遇到基函数 可能我们会遇到多项式基函数 高斯基函数 sigmoid基函数 当然在高等数学和信号系统中还经常会碰到傅里叶基 有时候 不禁要问 这些基函数为什么这么设计 这些基函数的作用是什么 后来发现基函数是
  • 目标检测算法FPN(Feature Pyramid Networks)简介

    目标检测算法Feature Pyramid Networks FPN 由Tsung Yi Lin等人于2017年提出 论文名字为 Feature Pyramid Networks for Object Detection 可以从https
  • XGBoost参数调优完全指南(附Python代码)

    XGBoost参数调优完全指南 附Python代码 原文地址 Complete Guide to Parameter Tuning in XGBoost with codes in Python 译注 文内提供的代码和运行结果有一定差异 可
  • pandas中的时间序列

    一 夯实基础 datetime 模块中的数据类型 date 以公历形式存储日历日期 年月日 time 将时间存储为时分秒毫秒 datetime 存储日期和时间 timedelta 表示两个datetime值之间的差 日 秒 毫秒 1 获取当
  • python 读写hive

    最近正在 做一个 项目 需要把 算法模型的结果持久化 至hive 目前 使用的 pyhive 切记 在windows上不能使用 我目前在centos6 5上使用 官方说再macos和linux上可用 from pyhive import h
  • 牛顿法(Newton’s method)

    牛顿法通常都是用来寻找一个根 同时也可以理解为最大化目标函数的局部二次近似 设我们的目标函数为f x 那么一个关于x0的二次近似就有 我们用f进行匹配 可以得到 如果b lt 0 g的最大值为a 得到更新规则 这是牛顿法在最优化方面的表述
  • matlab神经网络工具箱函数汇总

    转自 http hi baidu com lingyin55 blog item 7a968ead11fe180c4b36d61e html 1 网络创建函数 newp 创建感知器网络 newlind 设计一线性层 newlin 创建一线性
  • 基于产品的RFM模型的k-means聚类分析

    首先我们可以看看数据集的数据形态 导入rfm数据 查看数据的统计学参数 df pd read csv rfm csv df describe 在实施Kmeans聚类之前 我们必须检查这些关键k means假设 变量对称分布 不倾斜 具有相同
  • MLOps极致细节:4. MLFlow Projects 案例介绍(Gitee代码链接)

    MLOps极致细节 4 MLFlow Projects 案例介绍 Gitee代码链接 MLFlow Projects允许我们将代码及其依赖项打包为一个可以在其他平台上以可复制 reproducible 和可重用 reusable 的方式运行
  • 监督学习,无监督学习,半监督学习,主动学习的概念

    1 监督学习 supervised learning 训练数据既有特征 feature 又有标签 label 通过训练 让机器可以自己找到特征和标签之间的联系 在面对只有特征没有标签的数据时 可以判断出标签 即生成合适的函数将输入映射到输出
  • libsvm库简介及使用

    libsvm是基于支持向量机 support vector machine SVM 实现的开源库 由台湾大学林智仁 Chih Jen Lin 教授等开发 它主要用于分类 支持二分类和多分类 和回归 它的License是BSD 3 Claus
  • Several Machine Learning Problems

    Classification Classification algorithms are algorithms that learn topredict theclass orcategory of an instance of data
  • LightGBM参数介绍

    Xgboost和LightGBM部分参数对照 Xgboots LightGbm booster default gbtree boosting default gbdt eta default 0 3 learning rate defau
  • Nvidia GPU 最新计算能力表(CUDA Compute Capability)

    对于深度学习 官方指出在GPU算力高于5 0时 可以用来跑神经网络 Jetson Products GPU Compute Capability Jetson AGX Xavier 7 2 Jetson Nano 5 3 Jetson TX
  • 吴恩达机器学习笔记系列(五)——梯度下降

    一 gradient descent 梯度下降 1 概念 线性回归的目的就是找出使得误差 损失函数 最小的参数值 可以用梯度下降来确定 参数的大小 梯度下降是一种迭代方法 能够求解局部最小值 结果与初始点的选取有关 为了找到最小值 从某一点

随机推荐

  • k8s滚动更新

    1 编写一个yaml文件 vi deployment nginx yaml apiVersion apps v1 kind Deployment metadata labels app nginx name nginx namespace
  • 22.MongoDB删除操作效率及相关问题验证

    最近遇到一个了一个MongoDB数据删除的问题 需要一次性删除上线即1 5年前 1年前的数据且之后每天清空一年过期的数据 在数据量比较大的情况下何种方式的删除效率最高是一个值得研究的问题 本文通过实际测试找出其中规律 本文采用腾讯云mong
  • PCL实现点云选取并计算选取点法向量及可视化

    1 背景及效果展示 因项目需求 基于PCL1 8 1 VS2015 实现点云特征点选取并计算选取的特点法向量 并对特征点选取过程可视化 法向量计算结果可视化 特此记录该小功能实现 随机选取几个特征点 计算选取特征点法线并可视化 2 实现步骤
  • 使用burp suite软件后开启代理后不能上网

    这篇一定要记录一下 不然忘记了太恶心了 转载网址 https blog csdn net weixin 45571987 article details 110411138
  • Shell万能工具箱脚本

    文章目录 说明 说明 使用步骤 万能工具箱 脚本结构 万能工具箱 执行效果 说明 说明 持续更新 整合业务中常用的脚本并分类触发 所有功能均基于运维企业实战Shell脚本合集 使用步骤 1 shell tools sh存放到 root sc
  • pidstat 命令详解

    pidstat 概述 pidstat是sysstat工具的一个命令 用于监控全部或指定进程的cpu 内存 线程 设备IO等系统资源的占用情况 pidstat首次运行时显示自系统启动开始的各项统计信息 之后运行pidstat将显示自上次运行该
  • python 绘制分组对比柱状图

    首先放效果图 coding utf 8 import numpy as np import tensorflow as tf from matplotlib path import Path from matplotlib patches
  • 算法notes

    算法notes1 一 位运算 本文重点讲解前移位 前三个 位运算规则 十进制 gt 二进制 符号位 正数为0 负数为1 1 无符号右移 符号位不变 低位溢出 高位用符号位 第一位都是0 无论正负 填充 没有无符号左移 2 左移 lt lt
  • MyEclipse中生成Hibernate实体类及映射文件的方法

    下午 想还有一个工程项目要做 是采用三大框架SSH完成的 以下是简单的Hibernate实体类及映射文件的方法 在MyEclipse工作区右上角选择进入MyEclipse Database Explorer透视图 在DB Browser视图
  • Axios三层封装

    Axios三层封装 在实际项目中axios都是要经过封装再使用的 企业级项目一般都是三层封装 1 工具函数层 对axios工具进行增强 如 设置公共的请求服务器 设置请求拦截器 设置响应拦截器 创建一个文件夹utils 用来放axios 创
  • 【c++】——STL容器之vector的使用和模拟实现

    目录 1 vector的概述 2 vector常用接口 2 1 构造函数 2 2 迭代器的使用 2 3 修改的接口 push back pop back insert erase find reverse 2 4 关于容量接口 resize
  • 2020-06-09

    应该或者说必须努力下去 这只是为了生存得有意义一点 现在也许可以出错 那就去试试看 至少去做过了一些事情 有一天发现自己真的应该去试试的时候 有可能又有其他原因会让你不再敢去了 或是自身的原因 或是家庭的原因 或是环境的原因 有些年纪是可以
  • 关于串口收发数据出现全零或者收发数据位不同或者数据位一样,数据不匹配的问题

    近日用串口终端通过ttl转ra232来收发嵌入式开发板的数据 打开串口终端的收发数据全为零 以为是自己开发板上数据线出现问题 经过测试 开发板完全正常 转接电路也正常 但是不管是接收还是发送数据依然出现是全零的现象 对此做如下测试 默认设置
  • C++技能系列 ( 3 ) - 详解C++泛型模版和特化模版的使用

    系列文章目录 C 技能系列 C 高性能优化编程系列 深入理解软件架构设计系列 高级C 并发线程编程 期待你的关注哦 有更多博文系列等着看哦 会经常更新 因为你的关注激励着我的创作 快乐在于态度 成功在于细节 命运在于习惯 Happiness
  • CSDN-markdown编辑器

    欢迎使用Markdown编辑器 你好 这是你第一次使用 Markdown编辑器 所展示的欢迎页 如果你想学习如何使用Markdown编辑器 可以仔细阅读这篇文章 了解一下Markdown的基本语法知识 新的改变 我们对Markdown编辑器
  • MongoDB版本升级指南

    原文 MongoDBhttp t zoukankan com realcp1018 p 15532868 html 官方文档提供了版本升级的说明 本文只介绍3 0 gt 3 2 gt 3 4 gt 3 6 gt 4 0 gt 4 2之间的升
  • Hadoop开启后jps显示只有jps

    之前在用Mapreduce写代码时 在DFS Location下的会报一个error 大体的意思就是与主机名相关的错误 然后我就觉得可能时Hadoop开启时出了错误 然后我就重启了Hadoop jps查看了一下 果然出现了错误 可见jps命
  • 有趣的数据结构算法17——哈夫曼编码及其c语言实现

    有趣的数据结构算法17 哈夫曼编码及其c语言实现 什么是哈夫曼编码 哈夫曼编码过程举例 利用c语言实现哈夫曼编码 生成哈夫曼树 生成哈夫曼编码 解码与编码 全部实现代码 GITHUB下载连接 哈夫曼编码真的好复杂噢 什么是哈夫曼编码 哈夫曼
  • 工具类-Queue、Deque类总结

    Queue Deque类总结 Queue类的简介 Queue类方法的使用 Deque类的简介 Deque类方法的使用 ArrayDeque类的简介 ArrayDeque类方法的使用 Queue类的简介 Queue是Java中实现队列的接口
  • 正则化(Regularization)

    过拟合问题 Overfitting 当我们对一个问题建立线性回归模型或逻辑回归模型时 不恰当的选择特征会导致过拟合问题 过拟合问题是指当我们选择了很多的特征值时 模型对数据集的每一个example都符合的很好 但是对新的example却预测