线性回归原理:线性回归通过一个或者多个自变量与因变量之间进行建模的回归分析。其中特点为一个或多个称为回归系数的模型参数的线性组合
特点:只有一个自变量的情况称为单变量回归,大于一个自变量情况的叫做多元回归。
具体如同吴恩达在第二章中描述的一样。我们将数据分为训练值和测试值
线性回归的损失与优化
但实际上预测结果必定会与真实值之间有一定的误差。那如何判定损失的程度那?通过损失函数来判定。
总损失定义为:
就是通过预测值减去真实值得平方然后累加,得出总损失函数。那么我们如何尽量使其减小那?
在这里具体有两种方法:
1.最小二乘法之正规方程
2.梯度下降算法,此算法建议看吴恩达的机器学习视频,讲的十分清楚。由于本人已经看过在此不再列出。
再次列出二者的区别。
线性回归API
正如前文所说对于回归的性能我们也需要做一些评估。sklearn有特定的API。
欠拟合与过拟合
总的来说,西瓜书对于欠拟合和过拟合有着很好的解释。过拟合问题就是系统学习能力过强,把不太一般的特征都学到了。这样的话,在泛化的过程中却不能很好地拟合。这是因为学习的特征过多,导致模型过于复杂。
欠拟合,一个假设在训练集上不能获得更好的拟合,因此在测试集上也不能很好的拟合数据。学习的特征过少,导致模型十分简单。
那么有没有办法解决那?自然是可以得。我们在想解决办法之前先要查询到其原因。
1,欠拟合
原因:学习到的数据特征过少
解决办法:增加数据的特征数量。
2,过拟合
原因:原始特征过多,存在一些嘈杂特征,模型过于复杂是因为模型尝试兼顾各个特征。
解决办法:交叉验证或者正则化。
对于欠拟合来说,增加数据的特征数量即可。但对于过拟合来说要怎么做那?
我们在前面可以得知生成的数学模型如下。
因为高次项与其对应的系数相乘结果越大,那么标志着模型越复杂。正则化就是要将模型变得简单。然而我们又没有办法直接处理高次项,那么我们就要考虑解决系数了。我们使得每一个系数即w矩阵每一个都很小,那么模型就会变得很简单。就达到我们的目的了。
线性回归的改进--岭回归
岭回归:本质也是一种线性回归,只是在算法建立回归方程时,加上了正则化的限制,从而达到解决过拟合的效果。
如上图其中超参数alpha:正则化的力度,取值范围0~1 coef_:回归系数,即我们可以通过它来查看我们生成的模型前面的具体系数。
具体描述可以理解为,正则化力度越大,那么权重系数会越小。而正则化力度越小,权重系数会越大。
逻辑回归实际上用于分类问题。但输入的实际是一个线性回归的结果。
它的输出为[0,1]区间的概率值,默认0.5作为阈值。逻辑回归的分类是通过属于某个类别的概率值,来判断是否属于某个类别,并且这个类别默认标记为1(正例),另外的一个类别会标记为0(反例)。(方便计算损失)。
其简单来说,给定一个数据集,在与w值相乘后可以可得出一个回归值,即该答案是在0到1内连续的。我们对其设置一个阀值当超过阀值时设结果为1,而当输出结果小于阀值时,判断为0。
eg。
假设有A,B两个类别,当输出结果概率超过0.5,预测判为A(1),否则判为B(0)。
同样逻辑回归会有对应的损失。逻辑回归的损失称为对数似然损失。由于与线性回归的原理一样,但被分为分类问题,所以只能通过梯度下降求解。
对数似然损失函数:
在前面讨论过监督学习和非监督学习,总体来说判别是监督学习还是非监督学习主要通过判别数据是否有目标值。
k-means具体描述:
聚类算法的评估标准: