java基础巩固-宇宙第一AiYWM:为了维持生计

机器学习巨人的肩膀
一、机器学习常见算法(未完待续…) 1.算法一:线性回归算法:找一条完美的直线,完美拟合所有的点,使得直线与点的误差最小数据+算法==>模型(规律)线性回归算法线性回归算法整体思路:
2.把w参数与样本数据带入到误差函数中求解误差值3.误差值与用户指定的误差阈值比较线性回归具体知识点线性回归算法的量化公式:
当咱们J(θ)值越小,证明咱们好几亿数据跟直线的误差越小,不就相当于说咱们已经找到这条完美直线【这条完美直线指的是这条直线到所有点的距离最小,也就是所有点的误差最小】了嘛完美直线如果是曲线,虽然说曲线能够拟合所有的点也就是说能够保证误差很小,但是曲线不能体现出数据的规律,所以曲线算作过拟合,而不是完美直线体现出来的完美拟合咱们的目标是这个J(θ)值越小越好【这个J(θ)是个凹函数,所以这个J(θ)有极小值】,所以可以通过求导(求偏导)然后令导数为0求出极小值 。但是在海量数据下,通过求导【求偏导数】令导为0求极值根本不太现实,你求导求到啥时候 。所以此时通过 正向试参数这种方法,其实就是令未知参数为0为1...同时和几亿个数据或者叫点带入到误差函数中,求出一个J(θ)误差值,如果这个误差值在咱们可接受的范围内,不就相当于把未知参数试出来了嘛【其实咱们试w这未知参数就是在改变直线的方向和与坐标轴的交点,从而确定在w这未知参数为多少时直线与点的距离最近,也就相当于误差最小】 。未知参数有了相当于直线的方程不就有了,不就相当于找到完美直线了嘛 。
此时咱们目标是想预测的y值准确些,所以咱们此时玩的是y轴方向上的误差 。或者说此时的点到直线上的距离是y轴方向的并不是真正的点到直线的距离【真正的点到直线的距离是要做垂线的哦】但是J(θ),或者说误差并不是越小越好,可能会出现过拟合等情况光说试w这未知参数,那咋调呢,就是 梯度下降法【梯度下降法指的就是调整w参数这种方法,用来优化损失函数,梯度的方向总是指向函数增大的方向,而咱们w参数调整的方向正好是梯度相反的方向,所以叫做梯度下降法】梯度下降法:调整w未知参数的方法就是梯度下降法【调整w参数的方法是沿着梯度的负方向,或者说梯度下降的方法调整,所以叫梯度下降法】
如果导数>0,w参数往小了调整;在训练模型的时候,一般都会指定收敛条件【多个收敛条件,满足一个即可停止迭代】,不然会无休止的调整参数,一般常用的收敛条件有两个:线性回归的抗噪声以及抗冗余
2.算法二:逻辑回归分类算法或者,咱们可以用Y=0.5作为咱们人为设置的一个分类阈值【分类阈值可以调整,判断日常消费这种0.51、0.49就可以得到结论推送结论了 。但是诊断病情、股票这些高精尖的0.9左右你才敢得结论推送结论吧】,不就可以进行分类了嘛【计算出来的y值大于0.5属于上面那一类,小于0.5属于下面那一类】样本倾斜:如果空间中样本的分布如下,那么无法准确找到一根分类线来将数据分开【一根直线无法分开样本数据,有可能就表示咱们需要升高维度喽】,此时就要调整样本的维度或者换个非线性算法
模型正确率是50%证明模型很差,这跟咱们瞎猜差不多
假如训练逻辑回归算法模型时要求分类的直线过原点,也就是无截距
逻辑回归的误差函数/损失函数逻辑回归算法训练模型的整体流程:逻辑回归常用优化方法:归一化后还有问题:
w越大的优点和缺点:【同理,w越小正好对应w越大的缺点和优点,所以w并不是越大越好或者越小越好,而是刚刚好才好】L1正则化与L2正则化:为了达到刚刚好的w参数这个目的,需要重写一些误差函数,在原来的误差函数那一坨【就是Σ(y-…h(…)…)…】后面加了一项带有惩罚系数(λ)的正则化项 。【其实逻辑回归这里的惩罚系数感觉跟线性回归差不多,就是为了控制步长或者增长率】L2正则化: