本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
6 逻辑回归6-1 逻辑分类算法
用于输出量$y$是离散值如0/1的情况
不宜用线性回归进行机器学习
6-2 假设表示
在逻辑分类中,将假定函数改为$h_θ(x)=g(θ^Tx)$,假定函数函数的值即为输出真(1)的概率
函数$g(z)$称作Sigmoid函数或Logistic函数,其表达式为$\frac{1}{1+e^{-z}}$
综上,逻辑分类中的假定函数为$\frac{1}{1+e^{-θ^Tx}}$
6-3 决策边界
predict “y=1” if $h_θ(x)\ge0.5$
predict “y=0” if $h_θ(x)<0.5$
在上图右上角$g(z)=\frac{1}{1+e^{-z}}$函数的图像中,用$g(z)$来表示假定函数,要计算何时$g(z)>0.5$,只要计算何时$z\ge0$,即计算何时$θ^Tx>0$
计算得出的决策边界可以是直线
决 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
4 多变量线性回归4-1 多特征
用n来表示数据集中特征的数量,这里有4个特征
y表示输出量
用$x^{(i)}$来表示第i行的数据(输入量)
用$x^{(i)}_j$来表示第i行的第j个特征
上图是新的假定函数
$x_1,x_2,x_3……$是多个特征
可以假定一个$x^{(i)}_0=1$,这样x和θ就可以写成两个列向量,假定函数就可以写作$θ^Tx$,即求两个矩阵的内积
4-2 多元梯度下降法
如上图,从$θ_1$到$θ_n$同步更新,同时特征$x$需要对应
4-3 多元梯度下降法I——特征缩放缩放
这里假设只有两个特征值,特征$x_1$的取值范围是0-2000,特征$x_2$的取值范围是1-5,之后作出的代价函数的等高线图会是一个又高又瘦的椭圆,在进行梯度下降算法时,可能会反复震荡导致收敛太慢,如上图左侧
将特征$x_1$和$x_2$缩放,使这两个特征值的范围都在0-1,这样产生的代价函数的图像会变成向上图 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
1 介绍1-3 监督学习
包括线性回归和逻辑回归
1-4 无监督学习
无监督学习不需要给数据打上标签,也就是不需要人告诉机器一部分正确答案是什么
2 单变量线性回归2-2 代价函数
Hypothesis即假定函数,是线性回归时机器推测出来的对已经给定的一堆离散点进行拟合之后的函数
θ0和θ1是待求的参数,求出这两个参数后,就能得出一条直线进行拟合
Cost Function即代价函数,是对数据集中每个点与假定函数进行作差再平方再相加后求得的平均值再乘$\frac{1}{2}$得到的,乘$\frac{1}{2}$只是为了之后求导方便,式中m为数据集中数据个数共有m个,$x^{(i)}$指的是数据集第i行的x的值,$y^{(i)}$指的是数据集第i行的y的值,y即为需要通过机器学习推测的值
目标是求代价函数的最小值(并求出此时θ0和θ1的值),因为在代价函数的值最小时,假定函数距离各离散点的距离最近由于有两个参数θ0和θ1,所以得出的代 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
18 应用案例:照片OCR18-1 问题描述与流程(pipeline)1.找到一张图片2.首先识别出文字区域3.然后分割出单独文字4.最后运用分类器识别出文字以上称为机器学习流水线,每一步都是一个机器学习模块
18-2 滑动窗口(sliding windows)分类器在文字区域检测模块中,要识别文字区域比较困难,因为文字区域的长宽比是不定的而在行人检测中,人的矩形的长宽比通常是相似的,先从行人检测说起假定用一个82×36的矩形来框定目标,则有一些正样本(y=1)和负样本(y=0),这样就可以应用监督学习要在上图中找到行人,先在左上角框定一个符合比例的矩形,传递给检测器检测是否是行人,显然不是,所以向右移动一个距离(称为步长,一般为4-8像素),这样不断遍历整个图像,遍历完后,再换一个稍大一点的相同比例的矩形再遍历图像,这样不断循环就能找到图中的行人在OCR中,同样需要拿出一些正样本和负样本来训练任然通过用矩形遍历的方式 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
17 大规模机器学习17-1 学习大数据集
如果数据集中有1亿个样本,那么梯度下降算法的计算量会变得很大
如果训练效果(误差)的图像是像左边的坐标系一样的话,那么1亿个样本的数据集训练的效果很可能会比1000个样本的数据集好
而如果图像像右边的坐标系一样的话,1000个样本的数据集很有可能训练效果跟1亿个样本的数据集差不多
17-2 随机梯度下降原来的梯度下降算法称为批量梯度下降算法(batch gradient descent),因为要对所有样本遍历下面描述随机梯度下降算法(stochastic gradient descent)以线性回归为例,代价函数为:$J_{\operatorname{train}}(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}$随机梯度下降的过程:1. ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
16 推荐系统16-1 问题规划以电影评分预测系统为例,机器学习系统需要预测问号处的值来决定向用户推荐哪部电影
$n_u$表示用户的数量,这里=4
$n_m$表示电影的数量,这里=5
$r(i,j)$:如果用户$j$已经给电影$i$进行评分了的话,$r(i,j)=1$
$y^{(i, j)}$表示用户$j$给电影$i$的评分(仅在$r(i,j)=1$时才有定义)
16-2 基于内容的推荐算法
用两个特征$x_1$和$x_2$分别表示一部电影的浪漫片程度和动作片程度,组合成矩阵并加上$x_0=1$,比如$x^{(1)}=\left[\begin{array}{l}1 \0.9 \0\end{array}\right]$,$x^{(i)}$表示的是第$i$部电影的特征向量
对每一个用户$j$都学习出一个参数$\theta^{(j)} \in \mathbb{R}^{3}$,预测 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
10 应用机器学习的建议10-1 决定下一步做什么10-2 评估假设函数随机选择数据集中的70%作为训练集,30%作为测试集,将数据集分为两个部分
首先根据训练集计算出参数$\Theta$
把参数$\Theta$代入测试集计算代价函数的值(这里是线性回归的代价函数,逻辑回归的代价函数同理):$$J_{test}(θ)=\frac{1}{2m_{test}}\sum_{i=1}^{m_{test}}(h_θ(x^{(i)}{test})-y^{(i)}{test})^2$$
逻辑分类中有另一种形式的测试度量,称作错误分类或0/1错误分类,计算过程如上图
10-3 模型选择和训练、验证、测试集随机选择数据集中的60%作为训练集(Training Set),20%作为交叉验证集(验证集,Cross Validation Set,cv),20%作为测试集(Test Set),将数据集分为三个部分上图,计算训练误差 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
11 机器学习系统设计11-1 确定执行的优先级:以垃圾邮件分类为例11-2 误差分析
不要在编写程序时进行过早的优化,在编写完整个系统后再根据学习曲线优化系统;先编写一个简单粗暴的算法,再根据输出的结果改进算法
误差分析:观察被错误分类的数据有何共同的特征(以垃圾邮件分类为例,查看被错误分类的垃圾邮件有何共同的特征)或以数值方式表示误差
推荐在交叉验证集上做误差分析
11-3 不对称性分类的误差评估偏斜类问题:一个数据集中的一类数据样本比另外一类的样本少的多(比如1占样本的0.5%,而0占样本的99.5%)在偏斜类问题中(比如患癌症占样本的0.5%,而不患癌症占样本的99.5%),假设一个算法达到了99.5%的预测准确率,这时已经只有0.5%的误差,但是如果始终预测不患癌症也有99.5%的准确率,误差也只有0.5%,这时需要用到不同的误差度量值其中一种叫做查准率和召回率(precision recall)
左侧表格上方为实际的,表 ...
@TOC
1 介绍1-3 监督学习
包括线性回归和逻辑回归
1-4 无监督学习
无监督学习不需要给数据打上标签,也就是不需要人告诉机器一部分正确答案是什么
2 单变量线性回归2-2 代价函数
Hypothesis即假定函数,是线性回归时机器推测出来的对已经给定的一堆离散点进行拟合之后的函数
θ0和θ1是待求的参数,求出这两个参数后,就能得出一条直线进行拟合
Cost Function即代价函数,是对数据集中每个点与假定函数进行作差再平方再相加后求得的平均值再乘$\frac{1}{2}$得到的,乘$\frac{1}{2}$只是为了之后求导方便,式中m为数据集中数据个数共有m个,$x^{(i)}$指的是数据集第i行的x的值,$y^{(i)}$指的是数据集第i行的y的值,y即为需要通过机器学习推测的值
目标是求代价函数的最小值(并求出此时θ0和θ1的值),因为在代价函数的值最小时,假定函数距离各离散点的距离最近由于有两个参数θ0和θ1,所以得出的代价函数图形是一个如上图所示的3D曲面图3D曲面图也可以用上图的等高线图表示
2-5 Batch 梯度下降算法梯度下降算法用于如上图 ...
在numpy中
一维数组不是向量,但可以通过reshape转换成行向量或者列向量
Numpy库学习——向量表示_o_Eagle_o-CSDN博客
一维数组左乘矩阵时,把数组看做行向量
一维数组右乘矩阵时,把数组看做列向量
Python numpy中的一维数组和矩阵之间的点乘和矩阵乘法计算_txh3093的博客-CSDN博客
示例代码代码主体来自http://www.numpy.org.cn/article/basics/python_numpy_tutorial.html#%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E6%95%B0%E5%AD%A6
import numpy as npx = np.array([[1,2],[3,4]])y = np.array([[5,6],[7,8]])v = np.array([9,10])w = np.array([11, 12])# Inner product of vectors; both produce 219print(v.dot(w))print(np.dot(v, w)) # 两个 ...