机器学习——回归

线性回归

线性回归方程参数求解有两种方式:

梯度下降法(gradient descent)

  1. 假设函数和代价函数:假设函数是我们选取的假设为最终求解到的函数曲线形式,而代价函数是一个评估现在的曲线和真实样本的差距(一般用平均方差表示)
  2. 梯度表明了一个函数变化最快方向的数值,用梯度下降法经过多次迭代可以使得代价函数趋于收敛状态,得到当前样本下最拟合的曲线
  3. 通过对代价函数求梯度,通过迭代得到:theta_new = theta_old - alpha * J(theta), 我们可以得到最理想化的theta
  4. Alpha为学习率,一般选取为0.001 - 0.003 - 0.01 - 0.03 -0.1,约为3倍

正规方程法

  1. 由于是线性的方程(如果不是,可以通过变量的代换转换为线性,如 x1 = (house_size) ^ 2)

正规方程法

  1. 如上图所示,我们对于theta0做了再添加一个全为1的特征列x0,使得可以通过矩阵进行快速的运算theta的结果
  2. 由线性代数的相关知识(以上图为例),设置未知参数theta为一个列向量theta,于是可以得到X * theta = y, 假设X都是可逆的,就可以得到,theta = X^(-1) * y,转换后可以得到图中的结果

两者的优缺点以及选择

  1. gradient descent:需要选择学习率alpha,需要不断调整参数;需要迭代多次,具体的次数取决于收敛的状况和学习率的取值
  2. 正规方程法:矩阵求逆运算对于计算的计算能力要求极高,所以特征不能太多
  3. 选择:当样本的某一特征的样本数大于10000时(特征列向量的维数),选择gradient descent,否则选择正规方程法

数据处理

  1. 如果两个特征的取值范围相差三倍以上,例如一个在(-1,1),另一个在(-100,100),则需要对第二个进行特征放缩处理
  2. 放缩处理一般采用归一化处理(mean normalization),特征值减去特征值的平均值除以区间范围或者标准差
  3. 如果代价曲线随迭代次数递增,则考虑学习率选择过大;如果代价曲线忽大忽小,则考虑学习率选择过大

Logistic 回归(regression)

逻辑回归算法,实际为分类算法。

假设函数的表达式以及方程的选取

  1. g(z) = 1 / (1 + e ^ (-z)):logistic function, sigmoid function:几率函数
  2. 假设函数h(x) = 1 / (1 + e ^ ( - thetaT* x))
  3. h(x) 的结果为此个特征向量为Positive的几率,比如是一个病人的肿瘤特征,代入计算后,得到的h(x) = 0.7:那么就是,这个病人有0.7(70%)的几率是阳性(malignant恶性肿瘤)
  4. h(x) = p(y = 1| x; theta):在给定假设theta和特征向量的条件下,y = 1 的概率
  5. 于是可以得到:p(y = 0| x; theta) = 1 - p(y = 1| x; theta)

决策边界(decision boundary)

  1. 我们选择了一个阈值为0.5,于是就有z>0时, y = 1
  2. 在给定theta后,只需要g(z)中的z > 0, 即thetaT * X > 0就可以确定y = 1;
  3. 现在,已知y = 1,theta也已知,假设特征向量是二维的,就可以通过thetaT * X > 0计算得出一个x_1 和x_2的不等式,满足不等式的区域就位y = 1的区域,而两个区域的交界就是决策边界;而这个边界也可以是各种曲线,取决于x_1和x_2的的次方(如 x_1^2 + x_2 ^ 2 >= 1 表示一个圆域);
    决策边界
  4. 决策边界是假设函数的属性而不是数据集的属性,就算没有特征向量,决策边界也依然存才

如何拟合逻辑回归的参数theta

  1. 代价函数: 如果按照线性回归中的代价函数来假设,就会使得代价函数是非凸函数,因为假设函数h(x)是非线性的,于是就有很多局部最优解。theta的自动选择
  2. 代价函数为非凸
  3. 于是我们需要寻找另一种代价函数:
    逻辑回归的代价函数(凸函数)
  4. 为了使得讨论y的情况合二为一,进行数学上的处理得到(统计学得出,凸函数 ):
    最终的代价函数
  5. 我们用梯度下降发求解theta,这个与线性回归不一样,因为这里的h(x) = 1 / (1 + e ^ (- theta^T ×X)),而之前线性回归中是theta ^ T × X,所以这两个不是同一个方法。
    梯度下降法
  6. 注意特征放缩也可以用于这个分类方法

高级优化

  1. J(theta)和其导数,会有其他的算法来优化他们,得到最小化代价函数,梯度下降法只是其中的一个较为简单的。
  2. 共轭梯度法(BFGS)、L-BFGS、Conjugate gradient、gradient descent等,前三种高级的算法的优点是:a) 不需要自己手动选择学习率alpha、b) 比梯度下降法更快。缺点是:算法更复杂!
  3. 采用matlab中的fmiunc(@costFunction, initialTheta, options),options是需要设置的参数,梯度方式,迭代次数,收敛标记,最终代价等。

1对多分类问题

  1. 如果是3分类,将一个为正样本,其余两个为负得到一个决策边界,以此类推可以得到三个边界以及3个分类器
  2. 针对给定的一个需要预测的值,可以分别代入三个分类器进行就按计算,得到不同的概率,于是就可以比较应该判定为哪一个!多分类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值