线性回归
算法介绍
LinearRegression是一种线性回归模型,常用于预测数值型的连续变量。它采用最小化平方误差和的方法来拟合数据集,并试图找到一条直线来描述自变量与因变量之间的关系。这条直线可以被用来作出新的预测。
使用场景
- 结构化数据:例如金融领域中贷款利率、房价等的预测、医学领域中慢性疾病预测等。
- 非结构化数据转化后的数据:例如文本分类中利用tf-idf特征矩阵进行的预测、图像处理中基于颜色特征和纹理特征建立的线性回归模型等。
- 优势介绍
- 易于实现和解释:Linear Regression 的原理十分简单,公式易于理解,且容易可视化。
- 适用性广泛:线性回归可以处理大部分结构化数据场景,使求解特定问题变得非常方便。这样权衡准确性、速度和可解释性后,线性回归可能是你的第一选择。
- 计算速度快:计算量不大,参数少,直接利用矩阵运算,因此计算速度适中。
- 可点性强:结果有极强的解释性。每个特征的系数都能通过系数大小呈现出来,甚至可以通过数据标度得知该特征对响应变量的影响方向。
- 劣势介绍
- 需要满足特定假设条件:与许多机器学习算法类似,线性回归算法也需要满足一些假设前提条件。常见的仅考虑影响目标变量的因素,不存在多重共线性体现为自变量之间存在严格的线性关系。
- 容易被离群值误导:线性回归对离群值非常敏感,只要有一个离群值或极端值就可以对模型产生很大影响。
- 必须存在线性关系:因为其是一种线性方法,所以会受到样本的线性限制。要想获得更好的结果必须指定正确的特征才能得到令人满意的结果。
- 不适用于非线性问题:Linear Regression 的主要缺点之一是不能很好地处理非线性数据和噪声的情况。
参数介绍
仅支持通过可视化方式,配置读取该组件参数,参数详情如下表所示:
页签 | 参数 | 参数名称 | 是否必选 | 参数描述 | 默认值 |
---|---|---|---|---|---|
数据源 | 表名 | inputTable | 是 | 数据表 | 无 |
默认参数 | 选择特征标签列 | labelColName | 是 | 输入表中选择标签列名类型。 | 无 |
模型参数 | 是否计算模型的截距 | fit_intercept | 是 | 默认True,是否计算模型的截距,为False时,则数据中心化处理。 | True |
模型参数 | 是否中心化 | normalize | 默认False,是否中心化,或者使用sklearn.preprocessing.StandardScaler()。 | False | |
模型参数 | 是否拒绝覆盖原数据 | copy_X | 默认True,否则X会被改写。 | True |
- 推荐参数值
- fit_intercept:是否拟合截距,默认为True;
- normalize:是否对自变量先进行标准化处理再训练,默认为False。
- 调参建议
- 对于小型数据集,fit_intercept 和 normalize 均可设置为默认值,不会影响模型性能;对于大型数据集,可以将 normalize 设置为 True 进行标准化处理。
- 如果数据中存在严重多重共线性问题,可以考虑使用正则化方法(如 L1 或 L2 正则化)来约束参数。
- 对于需要构建基于交互项或多项式功能的非线性模型的问题,可以结合特征工程的方法来提高模型的表现。