按照回归线的形状分类时,如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,则这种回归分析称为一元线性回归分析;如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是非线性关系,则称为多元非线. 线性回归线性回归是世界上最知名的建模方法之一。在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计的。这些模型被叫作线性模型。在线性模型中,因变量是连续型的,自变量可以是连续型或离散型的,回归线)一元线性回归
Y 通常叫作响应输出或因变量,X 叫作输入、回归量、解释变量或自变量。线性回归最适合用直线(回归线)去建立因变量 Y 和一个或多个自变量 X 之间的关系,如图 1 所示。可以用以下公式来表示。Y = a+b x X+e其中,a 为截距,b 为回归线的斜率,e 是误差项。要找到回归线,就是要确定回归系数 a 和 b。假定变量 y 的方差是一个常量,可以用最小二乘法来计算这些系数,使实际数据点和估计回归直线之间的误差最小,只有把误差做到最小时得出的参数,才是我们最需要的参数。这些残差平方和常常被称为回归直线的误差平方和,用 SSE 来表示,如下。
线性回归模型的解释性很强,模型的权值向量十分直观地表达了样本中每一个属性在预测中的重要度。例如,要预测今天是否会下雨,并且已经基于历史数据学习到了模型中的权重向量和截距么则可以综合考虑各个属性来判断今天是否会下雨。
其中,X1 表示风力,X2 表示湿度,X3 表示空气质量。在训练模型时,要让预测值尽量逼近真实值,做到误差最小,而均方误差就是表达这种误差的一种方法,所以求解多元线性回归模型,就求解使均方误差最小化时对应的参数。
线性回归的理解和解释都非常直观,还能通过正则化来避免过拟合。此外,线性回归模型很容易通过随机梯度下降法来更新数据模型。但是,线性回归在处理非线性关系时非常糟糕,在识别复杂的模式上也不够灵活,而添加正确的相互作用项或多项式又极为棘手且耗时。
Spark MLlib 的 SGD 线性回归算法是由 LinearRegressionWithSGD 类实现的,该类是基于无正规化的随机梯度下降算法,使用由(标签,特征序列)组成的 RDD 来训练线性回归模型的。
该实例使用的数据存放在 lrws_data.txt 文档中,提供了 67 个数据点,每个数据点为 1 行,每行由 1 个标签值和 8 个特征值组成,每行的数据格式如下。标签值,特征 1 特征 2 特征 3 特征 4 特征 5 特征 6 特征 7 特征 8
医生希望通过肿瘤的大小 X1、长度X2、种类 X3 等特征来判断病人的肿瘤是恶性肿瘤还是良性肿瘤,这时目标变量 y 就是分类变量(0 表示良性肿瘤,1 表示恶性肿瘤)。线性回归是通过一些 x 与 y 之间的线性关系来进行预测的,但是此时由于 y 是分类变量,它的取值只能是 0、1,或者 0、1、2 等,而不能是负无穷到正无穷,所以引入了一个 sigmoid 函数,即
逻辑回归特别适合用于分类场景,尤其是因变量是二分类的场景,如垃圾邮件判断,是否患某种疾病,广告是否点击等。逻辑回归的优点是,模型比线性回归更简单,好理解,并且实现起来比较方便,特别是大规模线性分类时。