Microsoft逻辑回归算法是Microsoft神经网络算法的变体,其中 HIDDEN_NODE_RATIO 参数设置为 0。 此设置将创建不包含隐藏层的神经网络模型,因此相当于逻辑回归。
Microsoft逻辑回归算法的实现
假设可预测列仅包含两种状态,但仍希望执行回归分析,将输入列与可预测列包含特定状态的概率相关。 下图说明了如果将可预测列的状态指定为 1 和 0,计算该列包含特定状态的概率,并针对输入变量进行线性回归,您将获得的结果。
x 轴包含输入列的值。 y 轴包含可预测列将是一种或另一种状态的概率。 问题在于,线性回归不会限制列介于 0 和 1 之间,即使这些是列的最大值和最小值。 解决此问题的一种方法是执行逻辑回归。 逻辑回归分析不会创建直线,而是创建一条包含最大值和最小约束的“S”形状曲线。 例如,下图演示了对上一示例所用的相同数据执行逻辑回归时将实现的结果。
请注意,曲线始终不会高于 1 或低于 0。 可以使用逻辑回归来描述哪些输入列在确定可预测列的状态方面非常重要。
特征选择
所有 Analysis Services 数据挖掘算法都自动使用功能选择来改进分析和减少处理负载。 用于逻辑回归模型中特征选择的方法取决于特性的数据类型。 由于逻辑回归基于Microsoft神经网络算法,因此它使用应用于神经网络的特征选择方法的子集。 有关详细信息,请参阅功能选择(数据挖掘)。
评分输入
在神经网络模型或逻辑回归模型的上下文中评分意味着将数据中存在的值转换为一组使用相同刻度的值的过程,因此可以相互比较。 例如,假设收入的输入范围为 0 到 100,000,而 [儿童数] 的输入范围为 0 到 5。 此转换过程允许你对每个输入的重要性进行 评分或比较,而不考虑值的差异。
对于训练集中显示的每个状态,模型将生成一个输入。 对于离散输入或离散化输入,如果缺少状态至少出现在训练集中一次,则会创建一个附加输入来表示缺失状态。 对于连续输入,最多创建两个输入节点:一个用于缺失值,如果训练数据中存在,则为所有现有值或非 null 值创建一个输入。 每个输入都使用 z 分数规范化方法(x - μ)/StdDev 缩放为数字格式。
在 z 分数规范化期间,平均值(μ)和标准偏差是在完整的训练集中获得的。
连续值
值存在:(X - μ)/σ // X 是正在编码的实际值)
值不存在: - μ/σ // 负穆除以西格玛)
离散值
μ = p - (状态的先前概率)
StdDev = sqrt(p(1-p))
值存在:(1 - μ)/σ(1减μ)除以σ)
值不存在:(-μ)/σ//负穆除以西格玛)
了解逻辑回归系数
统计文献中有多种方法用于执行逻辑回归,但所有方法的一个重要部分是评估模型的拟合度。 提出了各种拟合优度的统计量,其中包括赔率比和协变量模式。 有关如何度量模型拟合的讨论超出了本主题的范围;但是,可以检索模型中系数的值,并使用这些系数来设计自己的拟合度量值。
注释
作为逻辑回归模型的一部分创建的系数不表示奇数比率,不应解释为此类系数。
模型图中每个节点的系数表示该节点的输入的加权总和。 在逻辑回归模型中,隐藏层为空;因此,只有一组系数存储在输出节点中。 可以使用以下查询检索系数的值:
SELECT FLATTENED [NODE_UNIQUE NAME],
(SELECT ATTRIBUTE_NAME< ATTRIBUTE_VALUE
FROM NODE_DISTRIBUTION) AS t
FROM <model name>.CONTENT
WHERE NODE_TYPE = 23
对于每个输出值,此查询返回指向相关输入节点的系数和 ID。 它还返回一行,其中包含输出值和截距。 每个输入 X 都有自己的系数(Ci),但嵌套表还包含一个“自由”系数(Co),根据以下公式计算:
F(X) = X1*C1 + X2*C2 + ... +Xn*Cn + X0
激活:exp(F(X)) / (1 + exp(F(X)))
有关详细信息,请参阅 逻辑回归模型查询示例。
自定义逻辑回归算法
Microsoft逻辑回归算法支持影响生成的挖掘模型的行为、性能和准确性的多个参数。 还可以通过在用作输入的列上设置建模标志来修改模型的行为。
设置算法参数
下表介绍了可用于Microsoft逻辑回归算法的参数。
HOLDOUT_PERCENTAGE 指定在训练数据中用于计算保留集误差的事例百分比。 训练数据挖掘模型时,HOLDOUT_PERCENTAGE 被用作停止条件的一部分。
默认值为 30。
HOLDOUT_SEED指定一个数字,用于在随机确定保留数据时对伪随机生成器进行种子设定。 如果HOLDOUT_SEED设置为 0,则算法会根据挖掘模型的名称生成种子,以确保在重新处理期间模型内容保持不变。
默认值为 0。
MAXIMUM_INPUT_ATTRIBUTES定义算法在调用特征选择之前可以处理的输入属性数。 将此值设置为 0 以关闭功能选择。
默认值为 255。
MAXIMUM_OUTPUT_ATTRIBUTES定义算法在调用功能选择之前可以处理的输出属性数。 将此值设置为 0 以关闭功能选择。
默认值为 255。
MAXIMUM_STATES指定算法支持的最大属性状态数。 如果属性的状态数大于最大状态数,则算法使用属性的最常用状态并忽略剩余状态。
默认值为 100。
SAMPLE_SIZE 指定要用于训练模型的事例数。 算法提供程序使用此数字或未包含在由HOLDOUT_PERCENTAGE参数指定的保留百分比中的事例总数的百分比,两者取较小值。
换句话说,如果HOLDOUT_PERCENTAGE设置为 30,则算法将使用此参数的值,或等于事例总数的 70% 的值(以较小者为准)。
默认值为 10000。
建模标记
支持以下建模标志与Microsoft逻辑回归算法一起使用。
NOT NULL 表示该列不能包含 null。 如果 Analysis Services 在模型训练期间遇到 null,则会出现错误。
适用于数据挖掘结构列。
MODEL_EXISTENCE_ONLY意味着该列将被视为具有两种可能的状态: Missing 和 Existing。 null 是缺失值。
适用于挖掘模型列。
要求
逻辑回归模型必须包含键列、输入列和至少一个可预测列。
输入列和可预测列
Microsoft逻辑回归算法支持下表中列出的特定输入列内容类型、可预测列内容类型和建模标志。 有关在挖掘模型中使用内容类型的含义的详细信息,请参阅内容类型(数据挖掘)。
| 列 | 内容类型 |
|---|---|
| 输入属性 | 连续、离散、离散化、键、表 |
| 可预测属性 | 连续、离散、离散化 |
另请参阅
Microsoft逻辑回归算法线性回归模型查询示例逻辑回归模型(Analysis Services - 数据挖掘)的挖掘模型内容Microsoft神经网络算法