
斯坦福机器学习笔记
本书为斯坦福吴恩达教授的在 coursera 上的机器学习公开课的知识笔记。
0x12A2A7F
探索数据宇宙.
展开
-
第五章 第四节 算法分析与优化(机器学习系统设计--垃圾邮件分类)
机器学习系统设计--垃圾邮件分类假定我们现有一封邮件,其内容如下:From: cheapsales@buystufffromme.comTo: ang@cs.stanford.eduSubject: Buy now!Deal of the week!Buy now!Rolex w4ches - $100Med1cine (any kind) - $50Also low co...转载 2019-05-15 09:35:02 · 865 阅读 · 0 评论 -
第五章 第三节 算法分析与优化(偏差与方差)
总结现在,通过诊断模型是出现了高偏差还是高方差问题,我们对于在陷入不归路的调试中提到算法优化手段有了各自的使用场景:手段 使用场景 采集更多的样本 高方差 降低特征维度 高方差 采集更多的特征 高偏差 进行高次多项式回归 高偏差 降低参数λλ 高方差 增大参数λλ 高偏差 ...转载 2019-05-15 09:34:51 · 401 阅读 · 0 评论 -
第五章 第二节 算法分析与优化(数据集划分)
转载 2019-05-15 09:34:45 · 370 阅读 · 0 评论 -
第五章 第一节 算法分析与优化(陷入不归路的调试)
陷入不归路的调试在线性回归中,我们使用了如下的代价函数来评估预测误差:想要降低预测误差,即提高预测精度,我们往往会采用这些手段:手段 评价 采集更多的样本 我们认为见多识广会让人变得聪明,但是也会让人变得优柔寡断,或者聪明反被聪明误。 降低特征维度 也许被降掉的维度会是非常有用的知识。 采集更多的特征 增加了计算负担,也可能导致过拟合。 进行...转载 2019-05-15 09:34:35 · 316 阅读 · 0 评论 -
第四章 第八节 神经网络(神经网络解决逻辑运算问题)
转载 2019-04-10 14:41:22 · 549 阅读 · 0 评论 -
第四章 第七节 神经网络(感知器)
转载 2019-04-10 14:41:10 · 195 阅读 · 0 评论 -
第四章 第十二节 神经网络(程序示例--多分类问题)
我们手上包含有手写字符的数据集,该数据集来自斯坦福机器学习的课后作业,每个字符图片大小为20×2020×20,总的样本规模为5000×4005000×400,我们的神经网络设计如下,包含 1 个隐含层,隐层含 25 个神经元,:# coding: utf-8# neural_network/test_handwritten_digits.py"""手写字符集"""im...转载 2019-03-20 16:54:41 · 343 阅读 · 0 评论 -
第四章 第十一节 神经网络(程序示例--逻辑运算)
程序示例--逻辑运算我们使用感知器神经网络来描述逻辑AND运算:代码:# coding: utf-8# neural_network/test_logic_and.py"""逻辑AND运算"""import nnimport numpy as npdata = np.mat([ [0, 0, 0], [1, 0, 0], [0, 1, 0],...转载 2019-03-20 16:54:29 · 528 阅读 · 0 评论 -
第四章 第十节 神经网络(程序示例--神经网络设计)
在神经网络的结构设计方面,往往遵循如下要点:输入层的单元数等于样本特征数。 输出层的单元数等于分类的类型数。 每个隐层的单元数通常是越多分类精度越高,但是也会带来计算性能的下降,因此,要平衡质量和性能间的关系。 默认不含有隐藏层(感知器),如果含有多个隐层,则每个隐层上的单元数最好保持一致。因此,对于神经网络模块,我们考虑如下设计:设计 sigmoid 函数作为激励函数:d...转载 2019-03-20 16:54:51 · 486 阅读 · 0 评论 -
第四章 第九节 神经网络(神经网络解决多分类问题)
神经网络解决多分类问题假定我们需要将图像分为四类:行人图像 车辆图像 摩托车图像 卡车图像这是一个多分类问题,由于图像特征较多,因此我们可以考虑设计含有多个隐含层的神经网络来完成特征优化(扩展):注意,我们设计了一个含有多个输出的神经网络,亦即,我们会用01的组合来定义不同的分类:而不是使用标量来定义分类,这样使得我们容易利用上简单的 sigmoid 函数来进行...转载 2019-03-20 16:54:19 · 1150 阅读 · 0 评论 -
第四章 第六节 神经网络(权值初始化)
在 matlab 中,随机初始化权值的代码如下:Theta1 = rand(10,11) * (2 * INIT_EPSILON) - INIT_EPSILON;Theta2 = rand(10,11) * (2 * INIT_EPSILON) - INIT_EPSILON;在 python 中,随机初始化权值的代码如下:import numpy as np# ...T...转载 2019-03-20 16:54:00 · 793 阅读 · 0 评论 -
第四章 第五节 神经网络(梯度校验(Gradient Checking))
转载 2019-03-20 16:53:46 · 366 阅读 · 0 评论 -
第四章 第四节 神经网络(参数展开(Unrolling Parameters))
matlab 中还原:Theta1 = reshape(thetaVec(1:110),10,11)Theta2 = reshape(thetaVec(111:220),10,11)Theta3 = reshape(thetaVec(221:231),1,11)python 中还原:import numpy as np# ...Theta1 = thetaVec[0:...转载 2019-03-20 16:53:06 · 697 阅读 · 0 评论 -
第四章 第三节 神经网络(前向传播与反向传播)
转载 2019-02-25 11:09:31 · 290 阅读 · 0 评论 -
第四章 第二节 神经网络(神经网络概述)
神经网络概述人体神经元模型神经元的可以分为四个区域:接收区(receptive zone):树突接收到输入信息。 触发区(trigger zone):位于轴突和细胞体交接的地方,决定是否产生神经冲动。 传导区(conducting zone):由轴突进行神经冲动的传递。 输出区(output zone):神经冲动的目的就是要让神经末梢,突触的神经递质或电力释出,才能影响下一个...转载 2019-02-25 11:09:17 · 510 阅读 · 0 评论 -
第四章 第一节 神经网络 (再论 0/1 分类问题)
转载 2019-02-25 11:09:01 · 520 阅读 · 0 评论 -
第三章 第七节 逻辑回归(程序示例--多分类问题)
程序示例--多分类问题我们采用 One-vs-All 方法来进行多分类,在原有的逻辑回归模块中添加 One-vs-All 的训练以及预测方法:# coding: utf-8# logical_regression/logical_regression.py# ...def oneVsAll(X, y, options): """One-vs-All 多分类 A...转载 2019-02-13 16:07:16 · 542 阅读 · 0 评论 -
第三章 第六节 逻辑回归(多分类问题)
转载 2019-02-13 16:07:06 · 346 阅读 · 0 评论 -
第三章 第五节 逻辑回归(程序示例--非线性决策边界)
程序示例--非线性决策边界我们首先对数据进行了多项式拟合,再分别使用 λ=0,λ=1,λ=100λ=0,λ=1,λ=100 的批量梯度下降法(sgd)完成了训练,获得了非线性决策边界:# coding: utf-8# logical_regression/test_non_linear_boundry.pyimport numpy as npimport logical_regre...转载 2019-02-13 16:06:59 · 772 阅读 · 0 评论 -
第三章 第四节 逻辑回归(程序示例--线性决策边界)
程序示例--线性决策边界回归模块在逻辑回归模块 logical_regression.py 中,实现了批量梯度下降法(bgd)以及随机梯度下降法(sgd),同时,支持正规化方程# coding: utf-8# logical_regression/logical_regression.pyimport numpy as npimport matplotlib as pltim...转载 2019-02-13 16:06:53 · 536 阅读 · 0 评论 -
第三章 第三节 逻辑回归(利用正规化解决过拟合问题)
转载 2019-02-13 16:06:40 · 504 阅读 · 0 评论 -
第三章 第二节 逻辑回归
转载 2019-02-13 16:06:32 · 202 阅读 · 0 评论 -
第三章 第一节 逻辑回归(0/1 分类问题)
转载 2019-02-13 16:06:21 · 1410 阅读 · 0 评论 -
第二章 第九节 线性回归(程序示例--局部加权线性回归)
程序示例--局部加权线性回归现在,我们在回归中又添加了 JLwr() 方法用于计算预测代价,以及 lwr() 方法用于完成局部加权线性回归:# coding: utf-8# linear_regression/regression.py# ...def JLwr(theta, X, y, x, c): """局部加权线性回归的代价函数计算式 Args: ...转载 2019-01-31 16:40:59 · 399 阅读 · 0 评论 -
第二章 第八节 线性回归(欠拟合与过拟合)
欠拟合与过拟合问题在上一节中,我们利用多项式回归获得更加准确的拟合曲线,实现了对训练数据更好的拟合。然而,我们也发现,过渡地对训练数据拟合也会丢失信息规律。首先,引出两个概念: 欠拟合(underfitting):拟合程度不高,数据距离拟合曲线较远,如下左图所示。 过拟合(overfitting):过度拟合,貌似拟合几乎每一个数据,但是丢失了信息规律,如下右图所示,房价随着...转载 2019-01-31 16:40:49 · 396 阅读 · 0 评论 -
第二章 第七节 线性回归(程序示例--多项式回归)
程序示例--多项式回归下面,我们有一组温度(temperature)和实验产出量(yield)训练样本,该数据由博客 Polynomial Regression Examples 所提供:temperature yield 50 3.3 50 2.8 50 2.9 70 2.3 70 2.6 70 2.1 80 2...转载 2019-01-31 16:40:39 · 553 阅读 · 0 评论 -
第二章 第六节 线性回归(多项式回归)
转载 2019-01-31 16:40:24 · 310 阅读 · 0 评论 -
第二章 第五节 线性回归(特征缩放)
特征缩放引子在前一章节中,对房屋售价进行预测时,我们的特征仅有房屋面积一项,但是,在实际生活中,卧室数目也一定程度上影响了房屋售价。下面,我们有这样一组训练样本:房屋面积(英尺) 卧室数量(间) 售价(美元) 2104 3 399900 1600 3 329900 2400 3 369000 1416 2 23...转载 2019-01-31 16:40:03 · 691 阅读 · 0 评论 -
第二章 第四节 线性回归(正规方程)
转载 2019-01-31 16:39:50 · 387 阅读 · 0 评论 -
第二章 第三节 线性回归(程序示例--梯度下降)
回归模块回归模块中提供了批量梯度下降和随机梯度下降两种学习策略来训练模型:# coding: utf-8# linear_regression/regression.pyimport numpy as npimport matplotlib as pltimport timedef exeTime(func): """ 耗时计算装饰器 """ def ...转载 2019-01-31 16:39:17 · 396 阅读 · 0 评论 -
第二章 第二节 线性回归(线性回归与梯度下降)
转载 2019-01-31 16:39:04 · 256 阅读 · 0 评论 -
第二章 第一节 线性回归(回归问题)
假定我们现有一大批数据,包含房屋的面积和对应面积的房价信息,如果我们能得到房屋面积与房屋价格间的关系,那么,给定一个房屋时,我们只要知道其面积,就能大致推测出其价格了。上面的问题还可以被描述为:“OK,我具备了很多关于房屋面积及其对应售价的知识(数据),再通过一定的学习,当面对新的房屋面积时,我不再对其定价感到束手无策”。通常,这类预测问题可以用回归模型(regression)进行...转载 2019-01-31 16:38:50 · 329 阅读 · 0 评论 -
第一章 简介
本书为斯坦福吴恩达教授的在 coursera 上的机器学习公开课的知识笔记,涵盖了大部分课上涉及到的知识点和内容。本书的章节安排与课程对应关系为:斯坦福课程 本书章节 Week 2 线性回归 Week 3 逻辑回归 Week 4-5 神经网络 Week 6 算法分析与优化 Week 7 SVM(支持向量机) Week 8 K...转载 2019-01-31 16:38:36 · 200 阅读 · 0 评论