机器学习
文章平均质量分 92
吴恩达机器学习课程笔记和相关代码
枸杞仙人
这个作者很懒,什么都没留下…
展开
-
吴恩达机器学习ex8 python实现
异常检测我们的第一个任务是使用高斯模型来检测数据集中未标记的示例是否应被视为异常。 我们先从简单的二维数据集开始。数据可视化import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sbfrom scipy.io import loadmatdata = loadmat('ex8data1.mat')X = data['X']X.shape(307, 2)fig,a原创 2021-02-01 15:38:16 · 251 阅读 · 1 评论 -
大规模机器学习(Large Scale Machine Learning)
17.1 大型数据集的学习参考视频: 17 - 1 - Learning With Large Datasets (6 min).mkv如果我们有一个低方差的模型,增加数据集的规模可以帮助你获得更好的结果。我们应该怎样应对一个有100万条记录的训练集?以线性回归模型为例,每一次梯度下降迭代,我们都需要计算训练集的误差的平方和,如果我们的学习算法需要有20次迭代,这便已经是非常大的计算代价。首先应该做的事是去检查一个这么大规模的训练集是否真的必要,也许我们只用1000个训练集也能获得较好的效果,我们可转载 2021-01-31 22:47:16 · 228 阅读 · 0 评论 -
推荐系统(Recommender Systems)
推荐系统16.1问题形式化16.2 基于内容的推荐系统16.3 协同过滤16.4 协同过滤算法16.5 向量化:低秩矩阵分解16.6 推行工作上的细节:均值归一化16.1问题形式化参考视频: 16 - 1 - Problem Formulation (8 min).mkv在接下来的视频中,我想讲一下推荐系统。我想讲推荐系统有两个原因:第一、仅仅因为它是机器学习中的一个重要的应用。在过去几年,我偶尔访问硅谷不同的技术公司,我常和工作在这儿致力于机器学习应用的人们聊天,我常问他们,最重要的机器学习的应用转载 2021-01-29 23:31:40 · 408 阅读 · 0 评论 -
异常检测(Anomaly Detection)
异常检测15.1 问题的动机15.2 高斯分布15.3 算法15.4 开发和评价一个异常检测系统15.5 异常检测与监督学习对比15.6 选择特征15.7 多元高斯分布(选修)15.8 使用多元高斯分布进行异常检测(可选)15.1 问题的动机参考文档: 15 - 1 - Problem Motivation (8 min).mkv在接下来的一系列视频中,我将向大家介绍异常检测(Anomaly detection)问题。这是机器学习算法的一个常见应用。这种算法的一个有趣之处在于:它虽然主要用于非监督学习转载 2021-01-29 00:03:55 · 225 阅读 · 0 评论 -
吴恩达机器学习ex7 python实现
K-Means聚类我们将实施和应用K-means到一个简单的二维数据集,以获得一些直观的工作原理。K-means聚类算法2维实现寻找最近的聚类中心我们要实现的第一部分是找到数据中每个实例最接近的聚类中心的函数。import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sbfrom scipy.io import loadmatdata = loadmat('ex7data2原创 2021-01-27 23:07:43 · 370 阅读 · 0 评论 -
降维(Dimensionality Reduction)
14.1 动机一:数据压缩参考视频: 14 - 1 - Motivation I_ Data Compression (10 min).mkv这个视频,我想开始谈论第二种类型的无监督学习问题,称为降维。有几个不同的的原因使你可能想要做降维。一是数据压缩,后面我们会看了一些视频后,数据压缩不仅允许我们压缩数据,因而使用较少的计算机内存或磁盘空间,但它也让我们加快我们的学习算法。但首先,让我们谈论降维是什么。作为一种生动的例子,我们收集的数据集,有许多,许多特征,我绘制两个在这里。假设我们未知两个的特转载 2021-01-26 22:00:57 · 626 阅读 · 0 评论 -
聚类(Clustering)
13.1 无监督学习:简介参考视频: 13 - 1 - Unsupervised Learning_ Introduction (3 min).mkv在这个视频中,我将开始介绍聚类算法。这将是一个激动人心的时刻,因为这是我们学习的第一个非监督学习算法。我们将要让计算机学习无标签数据,而不是此前的标签数据。那么,什么是非监督学习呢?在课程的一开始,我曾简单的介绍过非监督学习,然而,我们还是有必要将其与监督学习做一下比较。在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正样本和转载 2021-01-26 19:16:13 · 908 阅读 · 0 评论 -
吴恩达机器学习ex6 python实现
支持向量机在本练习中,我们将使用高斯核函数的支持向量机(SVM)来构建垃圾邮件分类器。数据集1现在2d数据集上实验import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sbfrom scipy.io import loadmatraw_data = loadmat('ex6data1.mat')data=pd.DataFrame(raw_data.get('X'),co原创 2021-01-25 21:10:49 · 460 阅读 · 0 评论 -
支持向量机(Support Vector Machines)
12.1 优化目标参考视频: 12 - 1 - Optimization Objective (15 min).mkv到目前为止,你已经见过一系列不同的学习算法。在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是,应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平。比如:你为学习算法所设计的特征量的选择,以及如何选择正则化参数,诸如此类的事。还有一个更加强大的算法广泛的应用于工业界和学术界,它被称为支持向量机(Supp转载 2021-01-24 23:08:08 · 364 阅读 · 0 评论 -
吴恩达机器学习ex5 python实现
正则化线性回归这一部分,我们需要先对一个水库的流出水量以及水库水位进行正则化线性归回。然后将会探讨方差-偏差的问题数据可视化import numpy as npimport pandas as pdimport scipy.io as sioimport scipy.optimize as optimport matplotlib.pyplot as pltimport seaborn as snsdata = sio.loadmat('ex5data1.mat')X,y,Xval,y原创 2021-01-22 22:53:34 · 332 阅读 · 2 评论 -
机器学习系统的设计(Machine Learning System Design)
11.1 首先要做什么参考视频: 11 - 1 - Prioritizing What to Work On (10 min).mkv在接下来的视频中,我将谈到机器学习系统的设计。这些视频将谈及在设计复杂的机器学习系统时,你将遇到的主要问题。同时我们会试着给出一些关于如何巧妙构建一个复杂的机器学习系统的建议。下面的课程的的数学性可能不是那么强,但是我认为我们将要讲到的这些东西是非常有用的,可能在构建大型的机器学习系统时,节省大量的时间。本周以一个垃圾邮件分类器算法为例进行讨论。为了解决这样一个问题,转载 2021-01-21 23:09:43 · 762 阅读 · 0 评论 -
应用机器学习的建议(Advice for Applying Machine Learning)
10.1 决定下一步做什么参考视频: 10 - 1 - Deciding What to Try Next (6 min).mkv到目前为止,我们已经介绍了许多不同的学习算法,如果你一直跟着这些视频的进度学习,你会发现自己已经不知不觉地成为一个了解许多先进机器学习技术的专家了。然而,在懂机器学习的人当中依然存在着很大的差距,一部分人确实掌握了怎样高效有力地运用这些学习算法。而另一些人他们可能对我马上要讲的东西,就不是那么熟悉了。他们可能没有完全理解怎样运用这些算法。因此总是把时间浪费在毫无意义的尝试上转载 2021-01-21 21:29:05 · 120 阅读 · 0 评论 -
吴恩达机器学习ex4 python实现
神经网络对于这个练习,我们将再次处理手写数字数据集。这次使用反向传播的前馈神经网络,自动学习神经网络的参数。数据可视化这部分和ex3里是一样的,5000张20*20像素的手写数字数据集,以及对应的数字(1-9,0对应10)import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport matplotlibfrom scipy.io import loadmatfrom sklearn.preprocess原创 2021-01-21 14:50:39 · 474 阅读 · 0 评论 -
吴恩达机器学习ex3 python实现
多分类这个部分需要你实现手写数字(0到9)的识别。你需要扩展之前的逻辑回归,并将其应用于一对多的分类。数据集这是一个MATLAB格式的.m文件,其中包含5000个20*20像素的手写字体图像,以及他对应的数字。另外,数字0的y值,对应的是10用Python读取我们需要使用SciPyimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport matplotlibfrom scipy.io import原创 2021-01-20 23:35:51 · 184 阅读 · 0 评论 -
神经网络的学习(Neural Networks: Learning)
9.1 代价函数参考视频: 9 - 1 - Cost Function (7 min).mkv首先引入一些便于稍后讨论的新标记方法:假设神经网络的训练样本有mmm个,每个包含一组输入xxx和一组输出信号yyy,LLL表示神经网络层数,SIS_ISI表示每层的neuron个数(SlS_lSl表示输出层神经元个数),SLS_LSL代表最后一层中处理单元的个数。将神经网络的分类定义为两种情况:二类分类和多类分类,二类分类:SL=0,y=0 or 1S_L=0, y=0\, or\, 1SL=0,转载 2021-01-19 13:32:36 · 133 阅读 · 0 评论 -
神经网络:表述(Neural Networks: Representation)
8.1 非线性假设参考视频: 8 - 1 - Non-linear Hypotheses (10 min).mkv我们之前学的,无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大。下面是一个例子:当我们使用x1x_1x1, x2x_2x2 的多次项式进行预测时,我们可以应用的很好。之前我们已经看到过,使用非线性的多项式项,能够帮助我们建立更好的分类模型。假设我们有非常多的特征,例如大于100个变量,我们希望用这100个特征来构建一个非线性的多项式模型,结果将是数转载 2021-01-18 11:48:53 · 220 阅读 · 0 评论 -
吴恩达机器学习课程ex2 Python实现
逻辑回归在训练的初始阶段,我们将要构建一个逻辑回归模型来预测,某个学生是否被大学录取。设想你是大学相关部分的管理者,想通过申请学生两次测试的评分,来决定他们是否被录取。现在你拥有之前申请学生的可以用于训练逻辑回归的训练样本集。对于每一个训练样本,你有他们两次测试的评分和最后是被录取的结果数据可视化import numpy as npimport pandas as pdimport matplotlib.pyplot as plt#读取数据path = 'ex2data1.txt'da原创 2021-01-16 17:17:59 · 473 阅读 · 0 评论 -
正则化(Regularization)
7.1 过拟合的问题参考视频: 7 - 1 - The Problem of Overfitting (10 min).mkv到现在为止,我们已经学习了几种不同的学习算法,包括线性回归和逻辑回归,它们能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致它们效果很差。在这段视频中,我将为你解释什么是过度拟合问题,并且在此之后接下来的几个视频中,我们将谈论一种称为正则化(regularization)的技术,它可以改善或者减少过度拟转载 2021-01-15 23:06:42 · 248 阅读 · 0 评论 -
逻辑回归(Logistic Regression
6.1 分类问题参考文档: 6 - 1 - Classification (8 min).mkv在这个以及接下来的几个视频中,开始介绍分类问题。在分类问题中,你要预测的变量 yyy 是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;之前我们也谈到了肿瘤分类问题的例子,区别一转载 2021-01-15 21:46:09 · 172 阅读 · 0 评论 -
吴恩达机器学习课程ex1python实现
import numpy as npfrom sympy import *import pandas as pdimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D#输出一个5*5的单位矩阵A = np.eye(5)A单变量线性回归#读取数据path = "ex1data1.txt"data = pd.read_csv(path,header=None,names=["population","原创 2021-01-14 14:13:07 · 148 阅读 · 0 评论 -
多变量线性回归(Linear Regression with Multiple Variables)
4.1 多维特征参考视频: 4 - 1 - Multiple Features (8 min).mkv目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,...,xn)\left( {x_{1}},{x_{2}},...,{x_{n}} \right)(x1,x2,...,xn)。增添更多特征后,我们引入一系列新的注释:nnn 代表特征的数量x(i){x^{\left( i \right)}转载 2021-01-13 22:55:01 · 199 阅读 · 0 评论 -
单变量线性回归(Linear Regression with One Variable)
2.1 模型表示参考视频: 2 - 1 - Model Representation (8 min).mkv我们的第一个学习算法是线性回归算法。在这段视频中,你会看到这个算法的概况,更重要的是你将会了解监督学习过程完整的流程。让我们通过一个例子来开始:这个例子是预测住房价格的,我们要使用一个数据集,数据集包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。比方说,如果你朋友的房子是1250平方尺大小,你要告诉他们这房子能卖多少钱。那么,你可以做的一件事就是构建一个转载 2021-01-12 23:45:27 · 177 阅读 · 0 评论 -
无监督学习
参考视频: 1 - 4 - Unsupervised Learning (14 min).mkv本次视频中,我们将介绍第二种主要的机器学习问题。叫做无监督学习。上个视频中,已经介绍了监督学习。回想当时的数据集,如图表所示,这个数据集中每条数据都已经标明是阴性或阳性,即是良性或恶性肿瘤。所以,对于监督学习里的每条数据,我们已经清楚地知道,训练集对应的正确答案,是良性或恶性了。在无监督学习中,我们已知的数据。看上去有点不一样,不同于监督学习的数据的样子,即无监督学习中没有任何的标签或者是有相同的标签或转载 2021-01-12 21:59:47 · 384 阅读 · 2 评论 -
监督学习
b站视频链接在这段视频中,我要定义可能是最常见一种机器学习问题:那就是监督学习。我将在后面正式定义监督学习。我们用一个例子介绍什么是监督学习把正式的定义放在后面介绍。假如说你想预测房价。前阵子,一个学生从波特兰俄勒冈州的研究所收集了一些房价的数据。你把这些数据画出来,看起来是这个样子:横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是千美元。那基于这组数据,假如你有一个朋友,他有一套750平方英尺房子,现在他希望把房子卖掉,他想知道这房子能卖多少钱。那么关于这个问题,机器学习算法将会怎么帮助你转载 2021-01-12 21:46:53 · 450 阅读 · 0 评论 -
机器学习是什么?
1.2 机器学习是什么?机器学习是什么?在本视频中,我们会尝试着进行定义,同时让你懂得何时会使用机器学习。实际上,即使是在机器学习的专业人士中,也不存在一个被广泛认可的定义来准确定义机器学习是什么或不是什么,现在我将告诉你一些人们尝试定义的示例。第一个机器学习的定义来自于Arthur Samuel。他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力的领域。Samuel的定义可以回溯到50年代,他编写了一个西洋棋程序。这程序神奇之处在于,编程者自己并不是个下棋高手。但因为他太菜了,于是就通过编程,转载 2021-01-12 21:28:57 · 137 阅读 · 0 评论