数据挖掘算法简介 (4/10) - 线性回归

4.   线性回归算法(Microsoft Linear Regression Algorithm

a.    目的:

Microsoft 线性回归算法是 Microsoft 决策树算法的一种变体,有助于计算依赖变量和独立变量之间的线性关系,然后使用该关系进行预测。

b.   原理

Microsoft 线性回归算法是 Microsoft 决策树算法的一种变体。 如果选择 Microsoft 线性回归算法,将会调用带有参数的 Microsoft 决策树算法特例,这些参数不但会限定算法行为,而且还会要求输入数据的类型。 另外,在线性回归模型中,整个数据集都用于计算初始传递中的关系,而标准决策树模型则不断将数据拆分为更小的子集或树。

c.    方法

Microsoft 决策树算法可用于多种任务:线性回归、分类或关联分析。 若要为进行线性回归而实现此算法,应控制算法的参数以限制树的增长,并使模型中的所有数据都位于单个节点中。 也就是说,虽然线性回归基于决策树,但该树仅包含一个根节点而没有任何分支:所有数据都位于根节点中。

为实现这一目的,算法的 MINIMUM_LEAF_CASES 参数应设置为大于或等于该算法用于为挖掘模型定型的总事例数。 通过以这种方式设置该参数,算法在任何情况下都不会创建拆分,从而执行线性回归。

表示回归线的公式采用了通式 y = ax + b,该公式称为回归公式。 变量 Y 表示输出变量,X 表示输入变量,a  b是可调整的系数。 您可以通过查询已完成的挖掘模型来检索回归公式的系数、截距和其他信息。 

d.   数据要求

线性回归模型必须包含一个键列、若干连续数值输入列和至少一个连续数值数据类型的可预测列:

·       单个key - 每个模型必须包含一个数值或文本列,用于唯一地标识每个记录。 不允许复合键。

·       输入列:输入列必须包含连续数值数据,并且向其分配相应的数据类型。

·       可预测列  - 至少需要一个可预测列。 可以在一个模型中包含多个可预测属性,但是这些可预测属性必须是连续数值数据类型。 不能将 Datetime 数据类型用作可预测属性,即使数据的本身存储是Datetime

e.    查看模型

若要浏览模型,可以使用“Microsoft 树查看器 线性回归模型的树结构非常简单,回归方程式的所有相关信息都包含在一个节点中。

f.     预测

模型处理完毕后,结果将以一组统计信息和线性回归公式的形式存储,您可以利用这些结果来计算未来趋势。 除了通过选择 Microsoft 线性回归算法创建线性回归模型外,您还可以在可预测属性为连续数值数据类型时,创建包含回归的决策树模型。 在这种情况下,如果找到适当的分离点,该算法会对数据进行拆分;但对于某些数据区域,则会创建回归公式。 

g.    自定义参数与性能优化

                                         i.     设置算法参数

1.    MAXIMUM_INPUT_ATTRIBUTES

定义算法在调用功能选择之前可以处理的输入属性数。 如果将此值设置为 0,则表示关闭功能选择。默认值为 255

2.    MAXIMUM_OUTPUT_ATTRIBUTES

定义算法在调用功能选择之前可以处理的输出属性数。 如果将此值设置为 0,则表示关闭功能选择。默认值为 255

3.    FORCE_REGRESSOR

强制算法将指示的列用作回归量,而不考虑算法计算出的列的重要性。

                                       ii.     建模标志

Microsoft 线性回归算法支持下列建模标志。 创建挖掘结构或挖掘模型时,定义建模标志以指定分析期间如何处理每列中的值。 

1.    NOT NULL

指示该列不能包含 Null 如果 Analysis Services 在模型定型过程中遇到 Null 值,则会导致错误。

适用于挖掘结构列。

2.    REGRESSOR

指示该列包含在分析过程中应被视为潜在独立变量的连续数值。但将列标记为回归量不能确保该列将在最终模型中用作回归量。适用于挖掘模型列。

                                     iii.     线性回归模型中的回归量(同决策树)

线性回归模型基于 Microsoft 决策树算法。 但是,即使不使用 Microsoft 线性回归算法,任何决策树模型也都可以包含表示连续属性的回归的树或节点。

您无需指定连续列表示回归量。 即使不对列设置 REGRESSOR 标志,Microsoft 决策树算法也会将数据集分区成具有有意义模式的区域。 其差异是:如果设置建模标志,此算法将尝试查找 a*C1 + b*C2 + ... 形式的回归等式,以适合树中节点的模式。 将对剩余的总和进行计算,如果偏差过大,则在树中执行强制拆分。

例如,如果是将 Income 用作属性来预测客户购买行为,并对该列设置了 REGRESSOR 建模标志,则该算法将使用标准回归公式先尝试适合 Income 值。 如果偏差过大,则会放弃使用回归公式,并根据其他属性对树进行拆分。 拆分后,决策树算法将尝试在每个分支中拟合收入的回归量。

可以使用 FORCED_REGRESSOR 参数来保证该算法将使用某一特定的回归量。 此参数可用于 Microsoft 决策树算法和 Microsoft 线性回归算法。

h.   应用

可以使用线性回归确定两个连续列之间的关系。 例如,您可以使用线性回归根据生产或销售数据计算趋势线。 还可以使用线性回归作为基础,来开发更复杂的数据挖掘模型,以评估数据列之间的关系。

尽管有许多计算线性回归的方法,而且这些方法不需要数据挖掘工具,但是使用 Microsoft 线性回归算法计算线性回归的优势在于可以自动计算并测试变量之间所有可能的关系。 您不必选择计算方法,如计算最小平方法等。 但对于结果受多个因素影响的应用场景,线性回归可能会过分简化其中的关系。