随笔分类 - 机器学习
摘要:一:学习大数据集 讲述能够处理海量数据的算法 思考:为什么要使用海量数据集呢?要知道获取高性能的机器学习系统途径是采用低偏差的学习算法,并用大数据进行训练。 低偏差:表明期望输出和真实标记之间误差小,学习算法拟合能力更强 高偏差:表明期望输出和真实标记之间误差大,学习算法拟合能力较差 低方差:表明训
阅读全文
摘要:实现协同过滤学习算法 实现协同过滤学习算法,并将其应用于电影评级数据集。这个数据集由1到5的等级组成。数据集有nu = 943个用户,nm = 1682个电影 一:导入数据及可视化 (一)导入数据 data = sio.loadmat("ex8_movies.mat") Y = data['Y']
阅读全文
摘要:一:问题规划 这一章中将讨论推荐系统的有关内容,它是在机器学习中的一个重要应用。 机器学习领域的一个伟大思想:对于某些问题,有一些算法可以自动地学习一系列合适的特征,比起手动设计或编写特征更有效率。这是目前做的比较多的研究,有一些环境能让你开发某个算法来学习使用那些特征。 接下里让我们通过推荐系统的
阅读全文
摘要:一:异常检测回顾 异常检测也是一个无监督学习算法 (一)异常检测做什么? 从一组数据中找到那些“异常”的数据,基于高斯分布(正态分布)。 生活中的很多事情都是符合高斯分布的,对于数据也是如此。 我们通过参数估计,估计出数据符合的高斯分布参数,当其中的数据分布在高斯分布中概率很小的地方,就认为这是异常
阅读全文
摘要:一:问题动机 将介绍异常检测问题,这是机器学习算法的常见应用,那么什么是异常检测问题? (一)举例介绍异常检测 举例:比如生产汽车引擎,需要进行质量测试,而作为测试的一部分,需要测量汽车引擎的一些特征变量: 比如:x_1引擎运转时产生的热量;x_2引擎的振动; 我们根据数据集:,把数据绘制成图,如下
阅读全文
摘要:PCA简单使用 一:回顾PCA (一)主成分分析法是干什么用的? 数据降维,话句话说就是将数据地特征数量变少,但又不是简单地删除特征。 数据降维地目的可以是压缩数据,减少数据的存储空间,让算法提速; 也可以是将数据降到二维或者三维进行可视化 (二)主成分分析法在做什么? 上面说到主成分分析法用于数据
阅读全文
摘要:一:降维之数据压缩 将讨论第二种无监督学习的问题:降维。数据压缩不仅能让我们对数据进行压缩,使得数据占用较少的内存和硬盘空间,还能对学习算法进行加速。 (一)降维是什么(二维降至一维) 假使我们要采用两种不同的仪器来测量一些东西的尺寸,其中一个仪器测量结果的单位是英寸,另一个仪器测量的结果是厘米,我
阅读全文
摘要:K-Means算法使用 一:数据导入及可视化 import numpy as np import matplotlib.pyplot as plt import scipy.io as sio data = sio.loadmat("ex7data2.mat") X = data['X'] prin
阅读全文
摘要:一:无监督学习 这里将介绍无监督学习中的聚类算法,这将是一个激动人心的时刻,因为这是我们学习的第一个非监督学习算法。我们将要让计算机学习无标签数据,而不是此前的标签数据.那么什么是无监督学习呢? (一)有监督学习 首先,拿监督学习来进行比较,这是一个典型的监督学习的例子,有一个带标签的训练集,目标是
阅读全文
摘要:邮件数据预处理 一:邮件数据读取 with open('emailSample1.txt','r') as fp: content = fp.read() #一次读取了全部数据 print(content) 二:预处理操作 (一)预处理内容 预处理主要包括以下9个部分: 1. 将大小写统一成小写字母
阅读全文
摘要:推文:支持向量机通俗导论(理解SVM的三层境界) 线性核函数 一:作业介绍 在本练习的前半部分,您将使用支持向量机。各种示例2D数据集。使用这些数据集进行实验将帮助您直观地了解支持向量机如何工作,以及如何使用支持向量机的高斯内核。 二:导入数据和数据可视化 (一)数据导入 data = sio.lo
阅读全文
摘要:到目前为止,你已经见过一系列不同的学习算法。在监督学习中,许多监督学习算法的性能都非常类似。因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是,应用这些算法时,所使用的数据量。这就体现了你应用这些算法时的技巧。比如:你为学习算法所设计的特征量的选择,以及如何选择正则化参数,诸如此类的
阅读全文
摘要:机器学习作业 偏差和方差(线性回归)错误反例,但是理清了代码思路,很重要 一:加载数据,显示数据 (一)数据可视化 import numpy as np import matplotlib.pyplot as plt import scipy.io as sio import scipy.optim
阅读全文
摘要:重点思考排错:关于高级优化算法scipy.optimize.minimize (一)代价函数和梯度求解 在代价函数和梯度求解中,我们要多次用到矩阵乘法。 1.numpy.matrix(不推荐) 所以一开始,我使用了numpy.matrix()方法,将我传入的θ、X、y等向量(是numpy.ndarr
阅读全文
摘要:将谈及在设计复杂的机器学习系统时,你将遇到的主要问题。同时会试着给出一些关于如何巧妙构建一个复杂的机器学习系统的建议。下面的课程的的数学性可能不是那么强,但是将要讲到的这些东西是非常有用的,可能在构建大型的机器学习系统时,节省大量的时间。 一:改进学习算法 实际工作中,我们应该优先处理哪些事情?以一
阅读全文
摘要:一:决定下一步做什么 在懂机器学习的人当中依然存在着很大的差距,一部分人确实掌握了怎样高效有力地运用这些学习算法。而另一些人可能没有完全理解怎样运用这些算法。因此总是把时间浪费在毫无意义的尝试上。 应该是确保你在设计机器学习的系统时,你能够明白怎样选择一条最合适、最正确的道路。 因此,将介绍一些实用
阅读全文
摘要:一:随机初始化 当我们使用梯度下降法或者其他高级优化算法时,我们需要对参数θ选取一些初始值。对于高级优化算法,会默认认为我们已经为变量θ设置了初始值: 同样,对于梯度下降法,我们也需要对θ进行初始化。之后我们可以一步一步通过梯度下降来最小化代价函数J,那么如何来对θ进行初始化值呢? (一)将θ全部设
阅读全文
摘要:一:神经网络实现识别手写数字 使用神经网络再次实现处理手写数字数据集。通过反向传播算法实现神经网络成本函数和梯度计算得非正则化和正则化版本。还将实现随机权重初始化和使用网络进行预测得方法。 (一)导入库,并且读取数据集 因为我们的数据集类型是.mat文件(是在matlab的本机格式),所以在使用py
阅读全文
摘要:一:代价函数 为神经网络拟合参数 (一)神经网络字母概念 主要讲解神经网络在分类问题中的应用 假设我们有一个和下图类似的神经网络结构: 并且有一个像下面这样的训练集:其中有m组训练样本(x^i,y^i) 并且用大写字母L表示神经网络结构的总层数: 用sl表示第L层的单元数,也就是神经元的数量(不包含
阅读全文
摘要:一:为什么需要神经网络 (一)案例 为了很好的拟合数据,我们需要保留较多的相关参数,虽然可以使用正则化进行优化。但是无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大。 之前我们已经看到过,使用非线性的多项式项,能够帮助我们建立更好的分类模型。假设我们有非常多的特征,例
阅读全文