Jacky's blog Jacky's blog
首页
  • 编码专题
  • 深入浅出 Vite
  • 深入浅出 babel
  • 快速上手API
  • 深入浅出 react
  • Node

    • code-notebook
  • 状态管理

    • redux
  • 前端工程化

    • Wepack
  • React源码

    • React源码
  • 组件库封装

    • 组件库
  • 开发工具

    • Vscode 插件
  • 项目展示
  • 案例中心 (opens new window)
  • First Project
  • 基础算法题
  • 链表题
  • 动态规划
  • 双指针
  • 递归
  • 数据结构
  • 前端学习计划 (opens new window)
  • 技术随笔
  • 转载文章
  • 包管理工具
  • 前端学习周报
  • VSCode插件
  • Promise 专题
  • 函数技巧
  • React 专题
  • 配置文件

    • TSCONFIG-配置 (opens new window)
    • NGINX-配置 (opens new window)
    • 正则规则查询手册 (opens new window)
    • Lint 配置 (opens new window)
  • 教程

    • GIT-教程
    • NPM SCRIPTS-工作流 (opens new window)
    • DOCKER-教程 (opens new window)
    • LERNA-教程 (opens new window)
    • GIT-常用操作整理 (opens new window)
  • VSCode

    • LAUNCH.JSON (opens new window)
  • 指令

    • NPM 指令 (opens new window)
    • NVM 指令 (opens new window)
    • Nginx 指令 (opens new window)
    • YARN 指令 (opens new window)
    • PNPM 指令 (opens new window)
  • 库

    • FS-EXTRA 库 (opens new window)
    • NODE 库-PATH (opens new window)
  • 永远的神

    • 魔法师卡颂-自顶向下学 React 源码 (opens new window)
    • 全栈潇晨 (opens new window)
    • 博客-程序员山月-Daily (opens new window)
    • 淘系前端:冴羽 (opens new window)
  • 系列文章

    • 《图解HTTP》 (opens new window)
    • 《ES6标准入门》 (opens new window)
    • 《现代JavaScript教程》 (opens new window)
    • 《深入浅出Webpack》 (opens new window)
    • VSCode 插件系列:小茗同学 (opens new window)
    • JEST 教程 (opens new window)
    • 前端精读周刊:各种精读系列 (opens new window)
    • 一文吃透系列 (opens new window)
    • 图解 REACT 原理 (opens new window)
  • 实用网站

    • MDN (opens new window)
    • CAN I USE (opens new window)
    • TYPESCRIPT-ESLint-RULES (opens new window)
    • ESLint-RULES (opens new window)
    • FRONT-END TREND (opens new window)
    • NPM TREND (opens new window)
    • 在线分析 Node 依赖 (opens new window)
    • FIND NPM (opens new window)
    • CODE PEN (opens new window)
    • 印记中文 (opens new window)
    • TOOL.LU (opens new window)
    • 阮一峰-网道 (opens new window)
    • DIGITAL OCEAN (opens new window)
    • DEVDOCS.IO (opens new window)
    • JOI (opens new window)
  • 算法

    • 小浩算法 (opens new window)
    • LABULADONG 的算法小抄 (opens new window)
    • 力扣 SOLUTION (opens new window)
    • HACKER RANK (opens new window)
    • 代码随想录 (opens new window)
  • 博客系列

    • 美团大佬 (opens new window)
    • 蜡笔小伟 (opens new window)
    • 优秀博客1 (opens new window)
    • 优秀博客2-umi (opens new window)
    • 优质博客 (opens new window)
  • CSS

    • CSS-EASING 库 (opens new window)
    • ROUGH.JS (opens new window)
    • CSS 网站收集
    • UNOCSS (opens new window)
  • 前端

    • PROMISE (opens new window)
    • UNDERSCORE.JS (opens new window)
    • study with BGM (opens new window)
    • nginx【B站视频】 (opens new window)
    • 机器学习
    • Js基础
  • 掘金已购课程

    • 前端自动化测试精讲 (opens new window)
    • 深入浅出 Vite (opens new window)
    • 现代 Web 布局 (opens new window)
    • 前端算法与数据结构 (opens new window)
    • 基于 Vite 的 SSG 框架开发实战 (opens new window)
    • SSR 实战:官网开发指南 (opens new window)
    • WebGL 入门与实践 (opens new window)
    • 玩转 CSS 的艺术之美 (opens new window)
    • 前端调试通关秘籍 (opens new window)
    • React 进阶实践指南 (opens new window)
    • TypeScript 全面进阶指南 (opens new window)
    • 前端缓存技术与方案解析 (opens new window)
    • npm scripts 前端工作流 (opens new window)
    • Webpack5 核心原理与应用实践 (opens new window)
  • 购物车

    • 张鑫旭-技术写作指南 (opens new window)
    • 深入剖析 Node.js 底层原理 (opens new window)
    • 前端开发者的现代 C++ 课 (opens new window)
    • 从前端到全栈 (opens new window)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Jacky Wang

行到水穷处,坐看云起时
首页
  • 编码专题
  • 深入浅出 Vite
  • 深入浅出 babel
  • 快速上手API
  • 深入浅出 react
  • Node

    • code-notebook
  • 状态管理

    • redux
  • 前端工程化

    • Wepack
  • React源码

    • React源码
  • 组件库封装

    • 组件库
  • 开发工具

    • Vscode 插件
  • 项目展示
  • 案例中心 (opens new window)
  • First Project
  • 基础算法题
  • 链表题
  • 动态规划
  • 双指针
  • 递归
  • 数据结构
  • 前端学习计划 (opens new window)
  • 技术随笔
  • 转载文章
  • 包管理工具
  • 前端学习周报
  • VSCode插件
  • Promise 专题
  • 函数技巧
  • React 专题
  • 配置文件

    • TSCONFIG-配置 (opens new window)
    • NGINX-配置 (opens new window)
    • 正则规则查询手册 (opens new window)
    • Lint 配置 (opens new window)
  • 教程

    • GIT-教程
    • NPM SCRIPTS-工作流 (opens new window)
    • DOCKER-教程 (opens new window)
    • LERNA-教程 (opens new window)
    • GIT-常用操作整理 (opens new window)
  • VSCode

    • LAUNCH.JSON (opens new window)
  • 指令

    • NPM 指令 (opens new window)
    • NVM 指令 (opens new window)
    • Nginx 指令 (opens new window)
    • YARN 指令 (opens new window)
    • PNPM 指令 (opens new window)
  • 库

    • FS-EXTRA 库 (opens new window)
    • NODE 库-PATH (opens new window)
  • 永远的神

    • 魔法师卡颂-自顶向下学 React 源码 (opens new window)
    • 全栈潇晨 (opens new window)
    • 博客-程序员山月-Daily (opens new window)
    • 淘系前端:冴羽 (opens new window)
  • 系列文章

    • 《图解HTTP》 (opens new window)
    • 《ES6标准入门》 (opens new window)
    • 《现代JavaScript教程》 (opens new window)
    • 《深入浅出Webpack》 (opens new window)
    • VSCode 插件系列:小茗同学 (opens new window)
    • JEST 教程 (opens new window)
    • 前端精读周刊:各种精读系列 (opens new window)
    • 一文吃透系列 (opens new window)
    • 图解 REACT 原理 (opens new window)
  • 实用网站

    • MDN (opens new window)
    • CAN I USE (opens new window)
    • TYPESCRIPT-ESLint-RULES (opens new window)
    • ESLint-RULES (opens new window)
    • FRONT-END TREND (opens new window)
    • NPM TREND (opens new window)
    • 在线分析 Node 依赖 (opens new window)
    • FIND NPM (opens new window)
    • CODE PEN (opens new window)
    • 印记中文 (opens new window)
    • TOOL.LU (opens new window)
    • 阮一峰-网道 (opens new window)
    • DIGITAL OCEAN (opens new window)
    • DEVDOCS.IO (opens new window)
    • JOI (opens new window)
  • 算法

    • 小浩算法 (opens new window)
    • LABULADONG 的算法小抄 (opens new window)
    • 力扣 SOLUTION (opens new window)
    • HACKER RANK (opens new window)
    • 代码随想录 (opens new window)
  • 博客系列

    • 美团大佬 (opens new window)
    • 蜡笔小伟 (opens new window)
    • 优秀博客1 (opens new window)
    • 优秀博客2-umi (opens new window)
    • 优质博客 (opens new window)
  • CSS

    • CSS-EASING 库 (opens new window)
    • ROUGH.JS (opens new window)
    • CSS 网站收集
    • UNOCSS (opens new window)
  • 前端

    • PROMISE (opens new window)
    • UNDERSCORE.JS (opens new window)
    • study with BGM (opens new window)
    • nginx【B站视频】 (opens new window)
    • 机器学习
    • Js基础
  • 掘金已购课程

    • 前端自动化测试精讲 (opens new window)
    • 深入浅出 Vite (opens new window)
    • 现代 Web 布局 (opens new window)
    • 前端算法与数据结构 (opens new window)
    • 基于 Vite 的 SSG 框架开发实战 (opens new window)
    • SSR 实战:官网开发指南 (opens new window)
    • WebGL 入门与实践 (opens new window)
    • 玩转 CSS 的艺术之美 (opens new window)
    • 前端调试通关秘籍 (opens new window)
    • React 进阶实践指南 (opens new window)
    • TypeScript 全面进阶指南 (opens new window)
    • 前端缓存技术与方案解析 (opens new window)
    • npm scripts 前端工作流 (opens new window)
    • Webpack5 核心原理与应用实践 (opens new window)
  • 购物车

    • 张鑫旭-技术写作指南 (opens new window)
    • 深入剖析 Node.js 底层原理 (opens new window)
    • 前端开发者的现代 C++ 课 (opens new window)
    • 从前端到全栈 (opens new window)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数字信号处理

  • scikit-learn-机器学习常用算法原理及编程实战

    • 第2章Python机器学习软件包
    • 第3章机器学习理论基础
    • 第5章线性回归算法
    • 第6章逻辑回归
      • Example01:L1和L2范数的讲解
      • Example02:乳腺癌实例
    • 第7章决策树
    • 第8章SVM
  • 读书笔记
  • scikit-learn-机器学习常用算法原理及编程实战
wangjiasheng
2019-12-25
目录

第6章逻辑回归

# 逻辑回归的核心公式

成本函数:

J(θ)=−1m[∑i=1myilog(hθ(xi)+(1−yi)log(1−hθ(xi))]J(\theta)=-\frac{1}{m}[\sum_{i=1}^my_ilog(h_\theta(x_i)+(1-y_i)log(1-h_{\theta}(x_i))] J(θ)=−m1​[i=1∑m​yi​log(hθ​(xi​)+(1−yi​)log(1−hθ​(xi​))]

梯度下降算法:

θj=θj−α∂∂θjJ(θ)\theta_j = \theta_j -\alpha \frac{\partial}{\partial\theta_j}J(\theta) θj​=θj​−α∂θj​∂​J(θ)

将求导后的成本函数代入:

θj=θj−α1m∑i=1m(hθ(xi)−yi)xi(j)\theta_j = \theta_j -\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x_i)-y_i)x_i^{(j)} θj​=θj​−αm1​i=1∑m​(hθ​(xi​)−yi​)xi(j)​

加入正则化:

成本函数:

J(θ)=−1m[∑i=1myilog(hθ(xi)+(1−yi)log(1−hθ(xi))]+λ∑j=1nθj2J(\theta)=-\frac{1}{m}[\sum_{i=1}^my_ilog(h_\theta(x_i)+(1-y_i)log(1-h_{\theta}(x_i))]+\lambda\sum_{j=1}^n\theta_j^2 J(θ)=−m1​[i=1∑m​yi​log(hθ​(xi​)+(1−yi​)log(1−hθ​(xi​))]+λj=1∑n​θj2​

梯度下降【权重衰减】:

θj=θj(1−αλm)−α1m∑i=1m(hθ(xi)−yi)xi(j)\theta_j = \theta_j(1-\alpha\frac{\lambda}{m}) -\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x_i)-y_i)x_i^{(j)} θj​=θj​(1−αmλ​)−αm1​i=1∑m​(hθ​(xi​)−yi​)xi(j)​

# Example01:L1和L2范数的讲解 (opens new window)

观察加入正则项后的成本函数:

J(θ)=Cost+λ⋅正则项J(\theta) = Cost\ + \lambda \cdot 正则项 J(θ)=Cost+λ⋅正则项

若只考虑Cost函数,根据权重衰减可知,任意在下图中找一个点,开始迭代,会不断的靠近虚线的正法线方向移动。

若只考虑正则项部分,则越靠近原点,则正则项部分越小。

故两者都希望往各自的最低点处移动。

数无型时少直觉:可以想象虚线部分代表的是一个不规则的分布,而L1范数在空间中是一个锥形分布。所以以上两张图在三维中是两个分布的叠加,现在就是在找这个新分布的最小值,在原两个分布的交点处取到。

  • 特点:
    • L1:可以让大部分的特征都取到0,可以作为降维的一个操作
    • L2:保留原有的所有特征,但是赋予每个特征一个权重。

# Example02:乳腺癌实例 (opens new window)

  • 需要注意的是:重复特征有的时候是需要的

    速度:可由 路径/ 时间 得到。不代表速度这个复合特征是多余的,这个反映了事物内在逻辑关系的体现。

    提取特征时,不妨从事务的内在逻辑关系入手,分析已有特征之间的关系

  • 乳腺癌中,完全独立的特征有10个特征,通过数值手段(标准差,最大值等)构造的特征一共有30个特征。

    cancer.feature_names
    
    1
  • 分析真实标签和预测标签

    y_pred = model.predict(X_test)
    np.equal(y_pred,y_test).shape[0]
    
    1
    2
  • 这里还说明了score 与准确率之间的关系,即使全部预测出来了,score也并非是满分。

    • 准确性的计算依据的是:model.predict
    • 而score的计算依据的是: model.predict_proba
  • 这里通过L1范数来降维,值得注意的是定义Pipeline的写法,对于其中的字典函数接受的时候,不指定Key的具体值,需要在定义函数的时候加上**kwarg

    def polynomial_model(degree=1, **kwarg):
        polynomial_features = PolynomialFeatures(degree=degree,
                                                 include_bias=False)
        logistic_regression = LogisticRegression(**kwarg)
        pipeline = Pipeline([("polynomial_features", polynomial_features),
                             ("logistic_regression", logistic_regression)])
        return pipeline
    
    1
    2
    3
    4
    5
    6
    7
编辑 (opens new window)
#读#书#笔#记
上次更新: 2022/04/06, 15:04:00
第5章线性回归算法
第7章决策树

← 第5章线性回归算法 第7章决策树→

最近更新
01
如何理解浏览器的 user agent 用户代理的含义?
11-05
02
浏览器事件循环机制
10-31
03
浏览器页面渲染机制【2023】
10-15
更多文章>
Theme by Vdoing | Copyright © 2020-2023
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式