随笔分类 -  慕课笔记

摘要:主成分分析(Principal Component Analysis) 一个非监督的机器学习算法 主要用于数据的降维 通过降维,可以发现更易于人类理解的特征 其他应用:可视化,去噪 降维 上图为含有两个特征的样本空间,数据的维度为2,可以忽视一个不明显的特征,保留一个相对差距明显的特征进行降维 显然 阅读全文
posted @ 2019-07-21 12:14 凌晨四点的洛杉矶 阅读(354) 评论(0) 推荐(0)
摘要:1. 梯度下降方法比较 批量梯度下降法(Batch Gradient Descent) 随机梯度下降法(Stochastic Gradient Descent) 小批量梯度下降法(mini Batch Gradient Desent) 之前我们讲解了两种梯度下降法,一种为 批量梯度下降法 ,每一次下 阅读全文
posted @ 2019-07-20 16:22 凌晨四点的洛杉矶 阅读(209) 评论(0) 推荐(0)
摘要:梯度下降法的准确性与调试 对于梯度下降法的使用,一个非常重要的步骤是求解我们定义的损失函数$J$在某个点$\theta$上的梯度值$dJ$,我们也花了很长时间来推导此公式,但是对于一些复杂的函数如非线性函数,求解梯度并不容易,在这种情况下,为了保证求解的梯度表达式正确,发现求解过程中的错误,需要进行 阅读全文
posted @ 2019-07-20 16:17 凌晨四点的洛杉矶 阅读(216) 评论(0) 推荐(0)
摘要:之前所讲解的梯度下降法是批量梯度下降法(Batch Gradient Descent),我们将要优化的损失函数在某一点$\theta$的梯度值准确的求出来 $$\Lambda J = \begin{bmatrix} \frac{\partial J}{\partial \theta _0} \\ \ 阅读全文
posted @ 2019-07-19 19:59 凌晨四点的洛杉矶 阅读(329) 评论(0) 推荐(0)
摘要:梯度下降的向量化 $$\Lambda J = \begin{bmatrix} \frac{\partial J}{\partial \theta _0} \\ \frac{\partial J}{\partial \theta _1} \\ \frac{\partial J}{\partial \t 阅读全文
posted @ 2019-07-17 21:22 凌晨四点的洛杉矶 阅读(523) 评论(0) 推荐(0)
摘要:实现线性回归中的梯度下降法 构造数据集 绘制此数据集: 使用梯度下降法训练 目标:使 $$ J = \frac{1}{m}\sum_{i=1}^{m}(y^{(i)} \hat{y}^{(i)})^2 $$尽可能的小 $$\Lambda J = \begin{bmatrix} \frac{\part 阅读全文
posted @ 2019-07-16 20:49 凌晨四点的洛杉矶 阅读(206) 评论(0) 推荐(0)
摘要:多元线性回归中使用梯度下降 在多元线性回归中,我们的目标是找到一组$\theta=(\theta_0,\theta_1,\theta_2,\theta _0,...,\theta _n)$ 使得损失函数: $$J = \sum_{i=1}^{m}(y^{(i)} \hat{y}^{(i)})^2$$ 阅读全文
posted @ 2019-07-16 20:39 凌晨四点的洛杉矶 阅读(193) 评论(0) 推荐(0)
摘要:梯度下降法 (Gradient Descent) 不是一个机器学习算法 是一种基于搜索的最优化方法 作用:最小化一个损失函数 (梯度上升法:最大化一个效用函数) 原理 寻找损失函数J的最小值 $$\frac{dJ}{d\theta} = \frac{J_{\theta +1} J_\theta }{ 阅读全文
posted @ 2019-07-15 22:38 凌晨四点的洛杉矶 阅读(352) 评论(0) 推荐(0)
摘要:波士顿房产数据分析 加载波士顿房产数据: import numpy import matplotlib.pyplot as plt from sklearn import datasets boston = datasets.load_boston() X = boston.data y = bos 阅读全文
posted @ 2019-07-15 20:46 凌晨四点的洛杉矶 阅读(150) 评论(0) 推荐(0)
摘要:多元线性回归算法 $x^{(i)}$由一个特征变为多个特征,此时拟合函数不是简单的$y^{(i)} = ax^{(i)}+b$, 而是: $$\hat y^{(i)} = \theta _0x^{(i)}_0 + \theta _1x^{(i)}_1+ \theta _2x^{(i)}_2+...+ 阅读全文
posted @ 2019-07-14 20:01 凌晨四点的洛杉矶 阅读(451) 评论(0) 推荐(0)
摘要:线性回归算法的衡量标准 均方误差(Mean Squared Error) $$\frac{1}{m}\sum_{i=1}^{m}(y_{test}^{(i)} \hat y{_{test}^{(i)}})^2$$ 均方根误差(Root Mean Squared Error) $$\sqrt{\fra 阅读全文
posted @ 2019-07-14 18:02 凌晨四点的洛杉矶 阅读(243) 评论(0) 推荐(0)
摘要:线性回归算法的实现 线性回归算法核心,求a,b的值: 调用自己封装的库 调用SimpleLineRegression库 向量化 a值计算时采用for循环,效率较低,观察a的表达式发现,可以用向量间的点乘实现: 实现: 性能比较 由下图可以看出,向量化运算比简单的for循环要快100倍 阅读全文
posted @ 2019-07-14 13:10 凌晨四点的洛杉矶 阅读(212) 评论(0) 推荐(0)
摘要:线性回归算法 解决回归问题 思想简单,实现容易 许多强大的非线性模型的基础 结果具有很好的解释性 蕴含机器学习中很多重要的思想 一类机器学习算法的思路:通过分析问题,找到问题的损失函数或者效用函数,通过最优化损失函数或者效用函数,确定机器学习的算法模型 简单线性回归的推导 最小二乘法 如图所示,对于 阅读全文
posted @ 2019-07-14 11:55 凌晨四点的洛杉矶 阅读(403) 评论(0) 推荐(0)
摘要:k近邻算法的思考 k近邻的缺点 1.效率低下 如果训练集有m个样本,n个特征,预测一个新的数据,需要O(m n) 优化:使用数结构,KD Tree,Ball Tree 2.高度数据相关 对outline更敏感,如果使用三近邻算法,在预测的样本中间如果有两个错误,则足够影响结果的准确性,尽管空间中有大 阅读全文
posted @ 2019-07-14 10:07 凌晨四点的洛杉矶 阅读(158) 评论(0) 推荐(0)
摘要:数据归一化(Feature Scaling) 多个特征值时,其中某个特征数量级比较大,其他特征较小时,分类结果会被特征值所主导,而弱化了其他特征的影响,这是各个特征值的量纲不同所致,需要将数据归一化处理 如上图所示,样本间的距离,被发现时间所主导 解决办法:将所有的数据映射到同一尺度 方法一:最值归 阅读全文
posted @ 2019-07-14 10:06 凌晨四点的洛杉矶 阅读(549) 评论(0) 推荐(0)
摘要:超参数 超参数:在算法运行之前需要决定的参数 模型参数:算法过程中学习到的参数 KNN算法作为最简单的机器学习算法,它没有模型参数,下面讨论它的超参数 加载数据集: 寻找最好的k: 考虑距离权重(weight)? 欧拉距离,曼哈顿距离,明可夫斯基距离 图中绿色最短的为欧拉距离,红黄蓝为曼哈顿距离 将 阅读全文
posted @ 2019-07-13 13:13 凌晨四点的洛杉矶 阅读(702) 评论(0) 推荐(0)
摘要:算法具体应用 加载手写数据集 手写数据集共有5620个样本,每个样本有64个特征,为手写数据集的像素点,其样本的结果为0 9的手写数字,其数据集描述如下: 样本结构: 数据可视化,查看某个样本的特征和结果: 查看此数据的结果: 封装之前的代码,实现手写数据集的预测 定义K近邻算法(KNN.py): 阅读全文
posted @ 2019-07-13 09:42 凌晨四点的洛杉矶 阅读(147) 评论(0) 推荐(0)
摘要:模型评估与选择 如何评价一个算法的性能? 将所有样本数据作为训练数据集参与模型的创建,得到的模型如果很差,在真实环境中会造成损失,而真实环境难以拿到真实的归类。此时我们需要将所有的样本数据分类,一部分作为训练数据集,一部分作为测试数据集,这样可以检测模型的泛化能力从而对算法做出改进。 train_t 阅读全文
posted @ 2019-07-12 21:12 凌晨四点的洛杉矶 阅读(257) 评论(0) 推荐(0)
摘要:K近邻算法 K近邻算法,又称KNN算法,是机器学习入门的第一个算法,其解决的是分类问题,具有以下特点: 思想简单 应用数学知识少 效果好(后续会讨论其缺点) 机器学习的入门算法 原理及简单实现 例:图为肿瘤时间与大小对于肿瘤的分类,红色代表良性肿瘤,蓝色代表了恶性肿瘤,当新来一个数据点(绿色数据点) 阅读全文
posted @ 2019-07-11 20:15 凌晨四点的洛杉矶 阅读(547) 评论(0) 推荐(0)