You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取两类双变量LDA的实际边界方程?

推导LDA两类分类的边界线公式(Y = bX + c形式)

核心原理

对于两类LDA,决策边界是两类样本的判别得分相等的点集合。当两类先验概率相等时(这里雌性F和雄性M的prior都是0.5),边界满足:
w₁*var1 + w₂*var2 = t
其中:

  • w₁、w₂是LDA输出的线性判别系数
  • t是两类中心在判别轴上的得分中点

从你的LDA结果计算边界

1. 提取关键参数

从你的fit输出中,提取三个核心部分:

  • 线性判别系数:w₁=7.567377(对应var1),w₂=-5.860438(对应var2)
  • 两类均值:
    • 雌性(F):mu_F_var1=4.4825,mu_F_var2=7.2200
    • 雄性(M):mu_M_var1=4.7600,mu_M_var2=6.4675

2. 计算判别得分的中点t

先计算两类中心在LD1轴上的得分:

  • F类得分:7.567377*4.4825 + (-5.860438)*7.2200 ≈ -8.41
  • M类得分:7.567377*4.7600 + (-5.860438)*6.4675 ≈ -1.88

因为两类先验概率相等,中点t为两类得分的平均值:
t = (-8.41 + (-1.88))/2 ≈ -5.145

3. 整理为Y = bX + c形式

把边界方程7.567377*var1 -5.860438*var2 = -5.145变形:

-5.860438*var2 = -7.567377*var1 -5.145
var2 = (7.567377/5.860438)*var1 + (5.145/5.860438)

计算系数:

  • b ≈ 7.567377 / 5.860438 ≈ 1.291
  • c ≈ 5.145 / 5.860438 ≈ 0.878

最终边界线公式为:
var2 = 1.291*var1 + 0.878

验证代码(可选)

如果想在R中直接计算并验证,运行这段代码:

# 提取系数和均值
w <- fit$scaling[,1]
mu_F <- fit$means["F",]
mu_M <- fit$means["M",]

# 计算阈值t
score_F <- t(w) %*% mu_F
score_M <- t(w) %*% mu_M
t <- (score_F + score_M)/2

# 计算b和c
b <- w[1]/(-w[2])
c <- t/(-w[2])

# 输出结果
cat("边界线公式:var2 =", round(b,3), "*var1 +", round(c,3), "\n")

运行后会得到和手动计算一致的结果。


内容的提问来源于stack exchange,提问作者Xun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 16:57:32