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. 工厂想采购一套信息化生产执行系统mes,不知道用哪家比较好?

    好的信息化生产执行系统MES多的是,但是否适用于贵工厂那就不得而知了,要知道,不同行业.不同产品.不同规模的工厂用同一套系统效果呈现出来都不一样的,所以匹配很重要,个性化差异化.变化性等决定了一个工厂 ...

  2. 鼠标悬停过度事件:Transition

    CSS代码:<style> div{width:100px;height:100px;background:blue;transition: 0.5s;//0.5秒完成}div:hover ...

  3. GC plan_phase二叉树挂接的一个算法

    楔子 在看GC垃圾回收plan_phase的时候,发现了一段特殊的代码,仔细研究下得知,获取当前数字bit位里面为1的个数. 通过这个bit位为1的个数(count),来确定挂接当前二叉树子节点的一个 ...

  4. Docker Private Registry

    Docker Private Registry 目录 Docker Private Registry Docker Registry Docker Private Registry 使用docker- ...

  5. Python-D4-语法入门2

    目录 数据类型 数据类型之整型int 数据类型之浮点型float 数据类型之字符串str 数据类型之列表list 数据类型之字典dict 基本数据类型之布尔值bool 基本数据类型之元祖tuple 基 ...

  6. 创建线程的方式三:实现Callable接口。 --- JDK 5.0新增

    如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大? call()可以有返回值的.call()可以抛出异常,被外面的操作捕获,获取异常的信息Callable是 ...

  7. misc办公室爱情

    ​ 隐藏文字password2 ​编辑 word改后缀zip解开后document.xml找到password1 ​编辑 True_lOve_i2_supReMe 用wbs43open+密码解密pdf ...

  8. 20220729 - DP训练 #2

    20220729 - DP训练 #2 时间记录 \(8:00-8:10\) 浏览题面 \(8:10-8:50\) T1 看题想到了建树,从每一个点遍历,若能遍历每一个点,则可以获胜 快速写完之后,发现 ...

  9. python学习笔记---流程控制

    二.流程控制 2.1选择结构与语句 2.1.1 最简单的if语句 注意:if语句后边必须加上冒号 满足条件后.可以执行多条语句. #最简单的if语句 print("请输入一个既能整除2,又能 ...

  10. 服务器之Apollo单机部署(快速安装)

    部署Apollo apollo单机部署(快速安装) Apollo官网:https://www.apolloconfig.com/#/zh/deployment/quick-start-docker 官 ...