在使用机器学习对训练数据进行学习和分类的时候,会出现欠拟合和过拟合的问题.那么什么是欠拟合和过拟合问题呢?…
简介 最近在参加一个利用机器学习来解决安全问题的算法比赛,但是对机器学习的算法一直不了解,所以先了解一下机器学习相关的算法. Andrew Ng就是前段时间从百度离职的吴恩达.关于吴恩达是谁,相信程序员/媛都知道. Andrew Ng的机器学习的公开课其实就是当年吴恩达还在斯坦福大学时在coursera上面开设的一门机器学习的入门的公开课,课程地址链接为Andrew Ng机器学习公开课 Andrew Ng机器学习公开课的评价,可以参考知乎上面的问题如何评价 Coursera 的机器学习 (And…
机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being explicitly programmed.(在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域) Tom Mitchell给出的定义,A computer program is said to learn from experience E with respect to some t…
逻辑回归 先前所讲的线性回归主要是一个预测问题,根据已知的数据去预测接下来的情况.线性回归中的房价的例子就很好地说明了这个问题. 然后在现实世界中,很多问题不是预测问题而是一个分类问题. 如邮件是否为垃圾邮件.金融交易是否正常,肿瘤是否是良性的.这新问题都是一个分类. 在分类问题中,结果一般是为0和1,0称为负样本或者是负类,如良性肿瘤.1称为正样本或者是正类,如恶性肿瘤. 那么是否能够使用线性回归的方式来解决分类问题呢?如下是一个辨别肿瘤是良性还是恶性的例子. 可以看到,貌似线性回归是可以解决…
线性回归 线性回归,就是能够用一个直线较为精确地描述数据之间的关系.这样当出现新的数据的时候,就能够预测出一个简单的值. 线性回归中最常见的就是房价的问题.一直存在很多房屋面积和房价的数据,如下图所示: 在这种情况下,就可以利用线性回归构造出一条直线来近似地描述放假与房屋面积之间的关系,从而就可以根据房屋面积推测出房价. 线性回归模型 通过线性回归构造出来的函数一般称之为了线性回归模型.线性回归模型的函数一般写作为: 使用markdown不好描述数学公式,所以大家就讲究看吧 代价函数 通过线性回…
特征选择 还是回归到房价的问题.在最开始的问题中,我们假设房价与房屋面积有关,那么最开始对房价预测的时候,回归方程可能如下所示: 其中frontage表示的房子的长,depth表示的是房子的宽. 但长和宽显然不是用于预测房价的一个很好的特征,正常的特征应该是房屋面积,那么正常的线性方程应该为: 其中X表示的房屋面积. 所以选择了合适的特征,对算法进行预测和分类是非常有好处的 多项式回归 很多时候,线性回归可能无法很好地拟合实际情况.例如房屋面积与房价之间的关系如下: 很明显,线性回归的方式无法很…
正规方程 在先学习正规方程之前,先来复习一下之前学过的常规的回归方程的解法. 假设存在如果的代价函数, ,解法也十分的简答. 但是有时候遇到的情况或许会变得相当的复杂. 的数,如果是按照常规的方式进行求解,那么按照之前的求解方式,就需要对每一个theta进行微分,然后综合求最小值,这样的运算结果可能最后是相当的复杂. 那么这个时候正规方程就非常有用了. 正规方程对于theat的求解非常的简单,如下: 如何求解theta, 还是房价的例子,在房价中,假设房价与房屋面积,房间数量,房间位于的楼层,房…
多变量线性回归 之前讨论的都是单变量的情况.例如房价与房屋面积之前的关系,但是实际上,房价除了房屋面积之外,还要房间数,楼层等因素相关.那么此时就变成了一个多变量线性回归的问题.在实际问题中,多变量的线性回归问题是更加常见的. 下面这个例子就是表明了我上面所说的情况. 之前的单变量线性回归的问题,最后求解得到的是一个线性方程.那么在多变量线性回归中,得到的是: 其中X,theta都是一个n阶向量.那么最后的表示方式就变为了: h 是theta的转置与X的乘积. 多变量梯度下降 和单变量的线性回归…
梯度降级算法简介 之前如果需要求出最佳的线性回归模型,就需要求出代价函数的最小值.在上一篇文章中,求解的问题比较简单,只有一个简单的参数.梯度降级算法就可以用来求出代价函数最小值. 梯度降级算法的在维基的定义: 梯度下降法是一个一阶最优化算法,通常也称为最速下降法. 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索 首先,复习一下之前前面的讲过求解最佳的代价函数的过程 那么如何通过梯度降级算法解决这个问题呢?首先对θ0和θ…
矩阵定义 数学上,一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列 使用Aij来获取矩阵中第i行j列的数据 向量的定义 向量就是n行1列的特殊矩阵 由于向量仅仅只有1行,那么通过一个变量i来指定获取第i行的数据,很容易理解. 矩阵运算 矩阵加法 矩阵的加法,要求两个矩阵或者是多个矩阵,要求所有的矩阵的列和行都是一样的,例如都是3X2的矩阵,或者是5x8矩阵.矩阵的加法就是将对应位置的数值相加即可. 矩阵的乘法 矩阵的乘法,就是使用数字和矩阵相乘,矩阵的乘法对矩阵没有要求.运算法则就是将乘数与…