Andrew Ng 机器学习笔记 ---by OrangeStar

Week_2

1.Multiple Features 更有效的线性回归形式

此时,h函数已经不是二阶了。

\[ X = \begin{matrix} x_0\\ x_1\\ \dots\\ x_n\\ \end{matrix} $$ $$\theta_{n+1}= \begin{matrix} \theta_0 \\ \theta_1\\ \dots\\\theta_n \end{matrix}$$ 故  $h_\theta(x) = \theta^T X$

### 2. 梯度下降对多元变量 Gradient Descent for Multiple Variables

? 如何找到参数? 来解决多元的线性回归?
上一周的二阶算法改进为N阶即可

Repeat until convergence

{

$\theta_j := \theta_j - \alpha \frac1m\sum^m_{i=1} (h_\theta(x^{(i)} - y^{(i)})) * x_j^{(i)}$

$for j := 0 \dots n$

}

### 3. 梯度下降 --特征缩放Feature Scaling

可以避免找代价函数的最小值的时候,路径搞的特别特别长。所以可以对特征进行缩放。例如除 一个合适的常数。使所有特征量在一个区域梯度下降

这样就有可能找到一条通往全局最优的捷径,in other words,可以让特征量收敛得更快
至于区域,可以以正负3为参考

**特征缩放方法:**

1. 均值归一化 mean normalization

replace $x_i$ with $x_i - \mu_i$  $\mu$ 可以用mean来代替(平均值)

$ x_i := \frac {x_i - \mu_i} {s_i}$

s_i is the range of the values

$\mu_i$ is the mean of the values

2. 简单用除法缩放

**总结** 特征缩放就是让收敛的更快,减少循环次数

### 4.Learning Rate 学习率

这是梯度下降法的更新规则,如何选择学习率很重要

选择不同的学习率会得到不同的min J下降曲线,自变量为迭代次数

* 学习率太小,可能会让迭代次数太多slow convergence
* 学习率太大,可能不会收敛 may not decrease on , may not converge

**曲线对判断学习率的好坏很重要!!!!**

### 5. 选择变量的方法和多项式线性回归

* 选择变量可以从不同角度看,比如房子的变量,可以选择两个变量,长和宽,或者我们可以组合起来,用x= 长乘宽  这样的变量来描述
* 或者可以用二次函数或者其他特征函数来拟合
* 当选择不同的特征变量的时候,线性拟合需要将他们一体化来看待。变量代换

### 6. Normal Equation&Expression 正规方程

给出更好的方法求出$\theta$ 的最优解。区别于梯度下降
一步就可以解出$\theta$

其实就是多元函数的极值。依次求偏导并set to zero
也可以尝试language函数。拉格朗日

但是这样解方程十分复杂,所以,用线性代数的知识

**用X**来表示特征变量和训练样本所组成的矩阵,$x_0$可以用全部1来代替
用Y向量来表示每个样本所对应的结果Y
然后,根据线性代数知识,知道:$Y = \theta^T X$
故,可以解出: <font size=7>$\theta = (X^TX)^{-1}X^{-1}Y$</font>

此公式很重要!!!
这个式子可以给出最优的theta

而这个方法不用采用特征变量归一化

| Gradient Descent | Normal Equation |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| 1. Need to choose $\alpha$ <br />2. Needs many iterations。时间复杂度大概为$O(kn^2)$<br />3.Woks well even when n is large | 1.No need to choose $\alpha$ <br />2. Do not need to iterate<br />3.Need to compute $(X^TX)^{-1}$ 时间复杂度大概为O($n^3$)<br />4. Slow if n is very large |\]

week_2的更多相关文章

  1. week_2 四则运算

    coding地址: https://git.coding.net/lvgx/week_2.git 一. 需求分析 1.接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题 ...

  2. shell之脚本片断

    16. 以下是平台信息 CentOS Linux release 7.1.1503 (Core) Linux mysql-dev1 3.10.0-229.el7.x86_64 #1 SMP Fri M ...

  3. 使用cJSON库解析JSON

    cJSON库的下载 cJSON是一个基于C的JSON解析库,这个库非常简单,只有cJSON.c和cJSON.h两个文件,支持JSON的解析和封装,需要调用时,只需要#include "cJS ...

  4. Qt平台下使用QJson解析和构建JSON字符串

    前言 上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串 本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣 ...

  5. 使用cJSON库解析和构建JSON字符串

    使用cJSON库解析和构建JSON字符串 前言 其实之前的两篇博文已经介绍了json格式和如何使用cJSON库来解析JSON: 使用cJSON库解析JSON JSON简介 当时在MCU平台上使用时,会 ...

  6. HttpClient设置忽略SSL,实现HTTPS访问, 解决Certificates does not conform to algorithm constraints

    话不多说,直接上代码. 测试API:   https://api.k780.com/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f7 ...

  7. 2022HNCTF--WEB

    @ 目录 [Week1]Interesting_http 分析 payload [Week1]2048 分析 payload [Week1]easy_html 分析 paylaod [Week1]In ...

  8. [HNCTF]Web详解_原创

    WEB Challenge__rce 根据给出的源代码来看典型的命令执行但是正则匹配掉说有的字母只留下数字和少量字符串. 根据大佬给出的思路使用自增绕过 <?php error_reportin ...

随机推荐

  1. Allure的简单使用

    Allure的简单使用 1.Allure简介 简单的理解下,可以把Allure当成一个用于生成美观测试报告的开源工具,配合Pytest测试框架使用更佳. 也就是说,Allure是在Pytest执行测试 ...

  2. BUUCTF-PWN-第一页writep(32题)

    温故而知新,可以为师矣.所以花了几天时间重新做了下 buuctf 的 pwn 题,先发下第一页共 32 题的题解.还有如果题解都很详细那么本文就太长了,写起来也浪费时间,所以比较简单的题就直接丢 ex ...

  3. 知识图谱-生物信息学-医学论文(Chip-2022)-BCKG-基于临床指南的中国乳腺癌知识图谱的构建与应用

    16.(2022)Chip-BCKG-基于临床指南的中国乳腺癌知识图谱的构建与应用 论文标题: Construction and Application of Chinese Breast Cance ...

  4. 故事 --- Linux和UNIX之间的那些爱恨与情仇

    Linux和UNIX具体有哪些关系及区别? UNIX 与 Linux 之间的关系是一个很有意思的话题.在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 ...

  5. 什么是subsignature和return-type-substitutable

    subsignature 什么是签名(signature) 方法签名组成:方法名+参数列表(参数的类型.个数.顺序) Java语言层面规定的签名是不包含返回值类型的: JVM层面规定的签名是包含返回值 ...

  6. SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建

      近年来uni-app发展势头迅猛,只要会vue.js,就可以开发一套代码,发布移动应用到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/ ...

  7. 2.CBV和类视图as_view源码解析

    一.FBV和CBV # 视图基于函数开发 FBV: function.base.views # 视图基于类开发 CBV: class .base .views #Python是一个面向对象的编程语言, ...

  8. JSP Webshell免杀设计

    JSP Webshell免杀设计 @author:drag0nf1y 介绍 什么是Webshell? 被服务端解析执行的php.jsp文件 什么是RCE? remote command execute ...

  9. LAL v0.32.0发布,更好的支持纯视频流

    Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本.距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态. LAL 项目地址:https://github.com/q19120177 ...

  10. bootstrap-table参数

    table.bootstrapTable({ url:'/Home/geurl', //请求后台的URL(*) method:'get', //请求方式(*) toolbar:'#toolbar', ...