【分类】
①两类或二分类问题:输出值为0或1
②多分类问题:比如y可能有4个值,0、1、2、3
有关肿瘤的分类问题
如果使用线性回归处理分类问题?
为了尝试分类,方法是使用线性回归并且把大于0.5的映射为1,小于0.5的映射为0
然而这种方法并不能正常工作,因为分类不是一个线性函数
【假设的表示方法】
Sigmoid函数又叫Logistic函数
为了解决这个问题,我们将改变假设的形式以满足
从而实现把放进逻辑斯蒂函数
对假设输出的解释
概率上P(y=0|x;θ)+P(y=1|x;θ)=1
【决策边界】
逻辑回归
决策边界
非线性决策边界
总结
【损失函数】
逻辑回归中,最小化损失函数这样子是有用的。但结果是,如果使用这个特殊的损失函数,将会有一个非凸优化函数的参数数据。
它正式的术语是非凸优化函数。
你应该能分辨,如果你在这种函数上使用梯度下降,将不能保证这会拟合到全局最小值。
然而相比之下,我们应该做的是有一个凸的损失函数的θ值,看起来像下面这样
所以如果θ可以得到保证,它就会收敛到全局最优解。
画一个J和h的对比图
注意到以这种方式写函数功能可以保证J对于逻辑回归是凸的
【简化的损失函数和梯度下降】
逻辑回归的代价函数如下
梯度下降
把我们的损失函数的两种情况压缩至一种情况
我们可以像下面一样写整个损失函数
向量化的执行像下面这样
【梯度下降】
记住梯度下降的一般形式如下
用微积分计算出导数部分得到
这算法和我们在前面的线性回归里用到的是一样的,我们仍然必须同时更新theta里的所有值
执行向量化就像下面这个样子
【高等优化】
优化算法
例子
共轭梯度法(Conjugate Gradient)(介于最速下降法与牛顿法之间的一个方法),BFGS法(BFGS method)(一种拟牛顿法,用BFGS矩阵作为拟牛顿法中的对称正定迭代矩阵的方法),和L-BFGS(由牛顿法发展而来,为了提高计算效率而提出的近似计算方法)是用于最小化theta的更复杂、更快的方法。
建议你自己不要写更复杂的算法(除非你是数值计算方面的专家!),而是使用现有的库,因为它们已经被测试和优化得很好了。
function [jVal, gradient] = costFunction(theta) jVal = [...code to compute J(theta)...]; gradient = [...code to compute derivative of J(theta)...]; end
options = optimset('GradObj', 'on', 'MaxIter', 100); initialTheta = zeros(2,1); [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);
把我们的损失函数放进fminunc(),我们最初的向量和theta值以及选择我们之前创建的目标
【多级分类】
y的定义不仅仅在{0,1},我们将其定义延伸到{0,1……n}
我们将把我们的问题分成n+1(因为索引从0开始)的二分零问题
我们预测的概率是 y是属于类的成员的哪一个
①选一类,然后把所有其他的放进单独的第二类
②重复这样做,在每个类运用二分逻辑回归
③使用假设返回最高价值的预测
过拟合的问题
为了拟合训练集而训练过渡,所以难以泛化、拟合新的例子,也不能很好地预测新例子的价格
左一【欠拟合】 中间【最优】 最右【过拟合】
过拟合——数据很明显的展示结构没有被模型捕捉
过拟合或高偏差,是当假设的形式不能很好反映数据的趋势时产生的,常常是由于函数过于简单或使用了太多的特征
其他极端的、过拟合或高方差的情况,是由于很好拟合现有数据的假设函数,并没有很好的泛化特性能预测数据。这经常是由 会产生许多与数据无关的不必要的曲线和角度的、复杂的函数 产生的。
{如何处理过拟合现象?}
方法是同时运用线性和逻辑回归
①减少特征数目
-手动挑选需要保留的特征
-模型选择算法
②正则化
-保持所有数据,但减少theta的参数值或magnitude(重要性)
-有很多参数时工作得很好,这对预测y有很好的作用
损失函数
我们有的假设函数过拟合现象时,可以减少我们函数里某些项的权重,用来减小消耗
比如我们希望让相应的函数倾向于二次函数,那么我们就要削减的影响
如果没有实际摆脱这些特征或改变我们假设的形式,我们可以修改我们的损失函数
我们已经添加了两个额外的项在式子末尾,以抬高的消耗
现在为了让损失函数更接近于0,我们将减少的值,让它们接近于0
这将大大减少在我们损失函数里的值
现在有新的假设(由粉色线描绘的)看起来就像一个二次函数,
但它由于额外的小项能更好地拟合数据。
正则化所有的theta参数以一种统一的方式如下
λ是正则化参数,决定我们theta参数膨胀的代价有多少
使我们假设的输出函数平滑可以减小过拟合!
如果λ选择太大,将会使函数平滑太厉害然后造成欠拟合。
而如果λ太小,他就可能造成过拟合。
!!!正则化的线性回归
梯度下降
给两边的线性回归和逻辑斯蒂回归添加正则化项
{线性回归}
给你一个问题来判断大小~
为啥呢?因为学习率比较小吗,第一项不能太大了!
【正规方程式】
处理正则化使用的对于非迭代正规方程的替代方法。
添加正则化项,等式和原来一样,处理我们在圆括号里加了另一个项
我们应该有维度(n+1)*(n-1)
直觉上,这是相同的矩阵(尽管我们不包含X0),并用单独一个实数λ乘上去。
所以这样的正则化居然让矩阵可逆了呢
{正则化逻辑回归}
用我们拟合线性回归类似的方法对逻辑回归进行正则化→避免过拟合
↑最后的损失函数
↑最后的梯度下降
使用正则化的逻辑回归
高等最优化
标签:函数,梯度,回归,分类,正则,拟合,theta From: https://www.cnblogs.com/asandstar/p/16774113.html