◆ 回归与分类相似,只不过回归的预测结果是连续
的,而分类的预测结果是离散
的php
◆ 如此,使得不少回归与分类的模型能够通过改动而通用html
◆ 所以对于回归和分类中基本原理相同或相似的模型 ,再也不赘述java
◆ Spark实现的回归算法很丰富 ,有不少模型一样能够用于分类git
◆ 在回归分析中,自变量与因变量之间知足或基本知足线性关系
,可使用线性模型进行拟合github
◆ 如回归分析中,只有一个自变量的即为一元线性回归,其自变量与因变量之间的关系能够用一条直线近似表示算法
◆ 同理,对于多变量的回归称为多元线性回归
,其能够用一个平面或超平面来表示apache
◆ 自变量与因变量之间具备线性趋势,在前面介绍过相关系数机器学习
◆ 独立性 因变量之间取值相互独立,不存在关联函数
◆ 例如探究沸点与气压的关系,研究浮力与表面积之间的关系,物理上经典的探索力与加速度之间的关系学习
◆ 对于统计学习来说,机器学习模型就是一个函数表达式,其训练过程就是在不断更新这个函数式的参数
,以便这个函数可以对未知数据产生最好的预测效果
◆ 机器学习的这个过程,与人的学习过程原理是同样的,都是先学习然后使用,故归属于人工智能领域
◆ 前面说"以便达到最好的预测效果”, 那么如何量化"好的预测效果”呢?
◆ 衡量预测效果好坏的函数称为代价函数(cost function) ,或损失函数(loss function).
◆ 例如:用一个模型预测是否会下雨,若是模型预测错误一天,则损失函数加1 那么机器学习算法的直接目标就是千方百计调节这个函数的参数 以便可以使预测错误的天数减小,也就是下降损失函数值,同时,也提升了预测的准确率
◆ 线性回归是最简单的数学模型之一
◆ 线性回归的步骤是先用既有的数据,探索自变量X与因变量Y之间存在的关系 这个关系就是线性回归模型中的参数.有了它,咱们就能够用这个模型对未知数据进行预测
◆ 机器学习的模型基本的训练过程亦是如此,属于监督学习
◆ 线性回归的数学表达式是
◆ 上式分别为一元线性回归与写成矩阵形式的线性回归模型
◆ 又称最小平方法,经过最小化残差平方和
来找到最佳的函数匹配
◆ 即最小二乘法以残差的平方和做为损失函数,用于衡量模型的好坏
◆ 利用最小二乘法能够实现对曲线
的拟合
◆ 以一元线性回归为例,演示推倒过程
◆ 随机梯度降低(SGD)是机器学习中经常使用的一种优化方法
◆ 它是经过不断迭代更新
的手段,来寻找某一个函数的全局最优解
的方法
◆ 与最小二乘法相似,都是优化算法,随机梯度降低特别适合变量众多,受控系统复杂的模型,尤为在深度学习中具备十分重要的做用
◆ 梯度是微积分中的一个算子,用来求某函数在该点处沿着哪条路径变化最快
,通俗理解即为在哪一个路径上几何形态更为“陡峭”
◆ 其数学表达式为(以二元函数为例)
◆ 线性模型的梯度降低推倒过程
◆ 随机梯度降低的"随机”体如今进行梯度计算的样本是随机抽取的n个,与直接采用所有样本相比,这样计算量更少
◆ 随机梯度降低善于解决大量训练样本的状况
◆ 学习率
决定了梯度降低的速度,同时,在SGD的基础上引入了”动量”的概念,从而进一步加速收敛速度的优化算法也陆续被提出
因为训练集有序,为提升准确率,应打乱顺序-shuffle
◆ 线性简言之就是两个变量之间存在一 次方函数关系
◆ 天然界中变 量间更多的关系是非线性的,绝对的线性关系相对不多
◆ 所以,在选择数学模型进行拟合的时候,不少状况使用非线性函数构造的模型可能比线性函数模型更好
◆ 逻辑回归即logistic回归,是一种广义上的线性回归,可是与线性回归模型不一样的是,其引入了非线性函数
◆ 所以,逻辑回归能够用于非线性关系的回归拟合,这一点是线性回归所不具有的
◆ 逻辑函数(英语:logistic function)或逻辑曲线(英语:logistic curve)是一种常见的S函数,它是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增加的关系时命名的。
广义Logistic曲线能够模仿一些状况人口增加(P)的S形曲线。起初阶段大体是指数增加;而后随着开始变得饱和,增长变慢;最后,达到成熟时增长中止。
◆ 改进线性回归模型
◆ 咱们一般理解是“千锤百炼”确定质量过硬,而机器学习是同样的吗?
◆ 人学习太过容易不懂得变通,过于教条,变成所谓的”书呆子” 机器学习也是同样
◆ 咱们把机器学习模型训练得太过 ,陷入“教条”的状态称之为过拟合
(over fitting)
◆ 反之,预测能力不强,宛若“智障”的模型称之为欠拟合
(under fitting)
◆ 下面分别演示了用三个不一样的数学模型对样本点进行拟合,产生的三种状态
◆ 对于欠拟合状态,只须要加大训练轮次,增长特征量,使用非线性模型等便可实现
◆ 而相反,过拟合却每每更加棘手
◆ 经常使用的减小过拟合的方法有交叉验证法,正则化方法等
◆ 所谓交叉验证法,就是在训练过程当中,将训练数据集
拆分为训练集
和验证集
两个部分
当两者同时达到最优,便是模型最优的时候
◆ 咱们在前面的示例中能够看到,对于过拟合现象,每每都是模型过于复杂,超过实际须要
◆ 那么,可否在损失函数的计算中,对模型的复杂程度进行量化,越复杂的模型,就越对其进行”惩罚”, 以便使模型更加”中庸”
◆ 上面的思路就是正则化的思想,经过动态调节惩罚程度, 来防止模型过于复杂
◆ 令损失函数为
◆ 则通过优化的参数为
◆ 其中
为正则化项,反应了模型的复杂程度,在不一样算法中有差别,例如能够为
该算法官方归类于分类算法
逻辑回归算法
分类结果(由于分类,因此都是显示的都是1500)
◆ 保序回归是用于拟合非递减数据
(非递增也同样)的一种回归分析,同时,保序回归可以使得拟合以后的偏差最小化 保序回归(英文:Isotonic regression)在数值分析中指的是在保序约束下搜索一个加权 w 的最小二乘 y 以拟合变量 x,它是一个二次规划问题:
◆ 比较保序回归与线性回归
◆ 保序回归用于拟合非递减数据 ,不须要事先判断线性与否,只需数据整体的趋势是非递减的便可 例如研究某种药物的使用剂量与药效之间的关系
◆ 适用保序回归的前提应是结果数据的非递减,那么,咱们能够经过判断数据是否发生减小来来触发计算
◆ 算法描述
◆ Spark实现求解该模型的算法是pool adjacent violators算法(PAVA)
◆ 例如原序列为{1,3,2,4,6}通过保序回归为{1,3,3,3,6}
保序回归属于回归算法族。标准保序回归是一个问题,给定一组有限的实数Y = y1,y2,...,yn表示观察到的响应,X = x1,x2,...,xn未知的响应值拟合找到一个函数最小化
相对于x1≤x2≤...≤xn的彻底顺序,其中 ![]()
wi
是正的权重。由此产生的函数称为保序回归。 它可被视为顺序限制约束的最小二乘问题。基本上保序回归是最适合原始数据点的单调函数。 咱们实现了一个 pool adjacent violators algorithm 算法,该算法使用一种并行化保序回归的方法。 训练输入是一个DataFrame,它包含三列 : 标签,功能和权重。 此外,IsotonicRegression算法有一个称为等渗默认为true的可选参数。该论证指定等渗回归是等渗的(单调递增的)仍是反单调的(单调递减的)。 训练返回IsotonicRegressionModel
,可用于预测已知和未知特征的标签。 保序回归的结果被视为分段线性函数。所以,预测规则是: 1 若是预测输入与训练特征彻底匹配,则返回相关联的预测。若是有多个具备相同特征的预测,则返回其中一个。哪个是未定义的(与java.util.Arrays.binarySearch相同) 2 若是预测输入低于或高于全部训练特征,则分别返回具备最低或最高特征的预测。 3 若是存在具备相同特征的多个预测,则分别返回最低或最高。![]()