如上所示,k-means 将点分配给其最近的形心。但究竟有什么 "最近"平均值
要将 k-means 应用于特征数据,您需要定义 将所有特征数据组合成单个数值的相似度, 称为手动相似度衡量。
假设有一个鞋子数据集。如果该数据集以鞋码为唯一特征, 您可以判断两双鞋子的相似之处,即依据两者之间的差异 尺寸尺寸间的数值差异越小, 鞋子之间的相似之处。
如果该鞋子数据集有两个数字特征,即尺码和价格,您就可以 转换为代表相似性的单个数字。首先缩放数据, 两个功能相当:
- 尺码(秒):鞋子尺码可能形成高斯分布。确认这一点。 然后对数据进行归一化。
- 价格 (p):数据很可能属于泊松分布。确认这一点。如果您 有足够的数据,请将数据转换为分位数,然后扩展到 \([0,1]\)。
接下来,计算 均方根误差 (RMSE)。 这种粗略的相似性衡量方法由 \(\sqrt{\frac{(s_i - s_j)^2+(p_i - p_j)^2}{2}}\)。
举一个简单的例子,计算两只美国尺码的鞋的相似度 价格为 120 和 150。由于我们没有足够的数据来理解 我们将缩放数据,而不进行归一化或使用 分位数。
操作 | 方法 |
---|---|
缩放。 | 假设最大可能的鞋码为 20。8 和 11 除以 最大大小 20 得到 0.4 和 0.55。 |
提高价格。 | 用 120 和 150 除以最高价格 150 得到 0.8 和 1。 |
找出大小差异。 | \(0.55 - 0.4 = 0.15\) |
了解差价。 | \(1 - 0.8 = 0.2\) |
计算 RMSE。 | \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\) |
直观地说,当特征数据越多,相似度衡量就越多 相似。实际上,相似度度量 (RMSE) 会降低。打造您的 相似度测量遵循您的直觉,即从 1 中减去。
\[\text{Similarity} = 1 - 0.17 = 0.83\]
一般来说,您可以按照 准备数据,然后将 使用欧几里得距离计算数据。
如果该数据集同时包含鞋子尺寸和鞋子颜色,会怎么样?颜色为 分类数据, 机器学习速成课程 使用分类数据。 分类数据与数值大小数据相结合更难。可以是:
- 单值(单价),例如汽车的颜色(“白色”或“蓝色”),但绝不会 两者)
- 多值(多价),例如电影的类型(电影可以是 “操作”和“喜剧”或仅“操作”)
如果单元数据匹配(例如在两双蓝色鞋子的情况下), 则样本之间的相似度为 1。否则,相似度为 0。
多元数据(例如电影类型)更难处理。如果存在 则相似性可以用 常用值,称为 Jaccard 相似性。示例 Jaccard 相似度的计算:
- [“comedy”,”action”] 和 [“comedy”,”action”] = 1
- [“comedy”,”action”] 且 [“action”] = 1⁄2
- [“comedy”,”action”] 和 [“action”, "drama"] = 1⁄3
- [“comedy”,”action”] 和 [“non-digit”,”bioography”] = 0
Jaccard 相似度并不是唯一可能的手动相似度衡量指标, 分类数据。另外两个示例:
- 邮政编码可以先转换为纬度和经度, 计算它们之间的欧几里得距离。
- 颜色可转换为 RGB 数字值, 值组合成欧几里得距离。
请参阅使用分类数据 。
一般来说,手动相似度衡量必须与 真正的相似度。如果您选择的指标未编码,则表示没有对 对信息进行编码。
在计算相似度度量之前,请仔细预处理数据。通过 都经过简化。现实世界中的大多数数据集都很大 非常复杂。如前所述,分位数是不错的默认选择 用于处理数字数据。
随着数据复杂性的增加,建立手册变得更加困难 相似度衡量。在这种情况下,请 监督式相似度度量,其中监督式机器 会计算相似度。我们将在后续视频中 。