机器学习 - 欧几里得距离分类器练习

数据挖掘 机器学习 Python 分类 k-nn
2022-02-22 12:36:09

我正在大学参加一门选修课,主要侧重于机器学习的基础。现在我们进行了第一个练习——这个任务实际上应该用任何语言来完成(我选择了 Python)。我们的老师没有很好地解释理论与实践之间的关系,所以我们所有人都很难跟上——所以我决定在这里发布这个问题。我不希望任何人给我一个解决方案,我只是不明白他想要什么,并且可能暗示如何解决这个问题。:

这是完整的练习:

欧式距离分类器

  1. 开发一个欧几里得距离分类器如下: 生成 1000 个随机点,对应于 3 个特征大小为 2 的类中的每个类,用于 3 类分类问题。为简单起见,分别考虑 N([0 1 2], I)、N([0 0 1], I) 和 N([1 0 0],I) 之后的类。

  2. 根据最小欧几里得距离分类器生成输出一个 1000 维向量,其第 i 个分量包含分配对应向量的类。

我知道我应该生成具有属于三个类别之一的两个特征的随机点 - 好的。但我不明白句子的第二部分。这些类通常以 [0, 1, 2]、[0, 0, 1] 和 [1, 0, 0] 的均值(?)向量分布?

  1. 我在正态分布中的第二个参数是什么
  2. 向量是否代表多元正态分布的位置/平均值?
  3. 你会如何处理这个问题?使用ak最近邻算法?

感谢您提供任何有用的答案!

最大限度

1个回答

显然你的练习不是很清楚,至少对我来说不是。

我想你应该考虑I作为变量的方差或标准偏差,只需确保它是您的代码的一个参数,以便您稍后可以更改它,以防它不是您假设的那样。如果它对应于某些东西,请检查您的课程,但它对我来说似乎并不熟悉。

不知道你的第二个问题是什么意思,但这里是我需要创建的向量:

  1. 点向量(第一个问题),每个点都存在于二维空间中(特征大小)。
  2. 类向量(第二个问题),这个向量看起来像 [1, 0, 2, 2, 1, 1, ...]。对于这个向量,这意味着点向量的第一个值属于 1 类,第二个值属于 0 类,第三个属于 2 类,...

由于练习询问欧几里德距离分类器,您只需要创建一个算法,该算法取一个点,计算每个类中心的欧几里德距离,并将其分类到最近的类中。(不确定那种分类器可以被认为是机器学习,但是 w/e)。

你可能注意到了,但给出的平均值是 3-D 向量,这很奇怪,因为我说过我们的点存在于 2-D 空间中。我猜每个平均向量的最后一个值是生成的点的类(只是我的猜测,不是责怪你的老师,但正如我所说,你的练习不是很清楚)。因此,根据该解释,类将根据分布进行分布:

  • [0, 1],第 2 类的 I 方差或标准偏差。
  • [0, 0],第 1 类的 I 方差或标准偏差。
  • [1, 0],0 类的 I 方差或标准偏差。

希望对您有所帮助,如果您还有其他问题,请随时提出。