0

我有一个运行 KNN 分析的 proc discrim 语句。当我设置 k = 1 时,它会为所有内容分配一个类别(如预期的那样)。但是当 k > 1 时,它会留下一些未分配的观察结果(将类别设置为其他)。

我假设这是对两个或更多类别的死锁投票的结果。我知道有一些方法可以解决这个问题,要么随机选择一张陷入僵局的选票作为答案,要么将最近的陷入僵局的选票作为答案。

此功能在 proc discrim 中可用吗?你如何告诉它如何处理死锁?

干杯!

4

1 回答 1

1

当最近邻居的数量为两个或更多时,您将观察分配给“其他”类的假设是由于分配给两个或更多指定类的相同概率是正确的。您可以通过指定 PROC DISCRIM 语句选项 OUT=SASdsn 来查看这一点,以编写一个 SAS 输出数据集,说明该过程对输入观察的分类程度。该输出数据集包含分配给每个指定类别的概率。例如,使用 iris 数据集的两个最近邻 (K=2) 会产生五个观察值,该过程将其分类为不明确的,分配到 Versicolor 或 Virginica 类的概率为 0.50。从输出数据集中,您可以选择这些模糊分类的观察值,并在随后的 DATA 步骤中将它们随机分配给这些类别。或者,您可以将用于对这些模棱两可的观察值进行分类的变量值与每个类别的这些值的平均值进行比较,可能通过计算平方距离 +/- 由每个值的标准差标准化并分配观察到“最接近”的班级。

于 2012-12-27T16:13:06.540 回答