正如您在此处看到的那样,笔记本的结构方式使我可以在实际代码本身中散布有关您在此处看到的内容的小注释和评论,并且可以在 Web 浏览器中实际运行此代码! 因此,对于我来说,这是一种非常方便的格式,可以为您提供一些参考,您可以在以后的生活中使用它来提醒自己,我们将要讨论这些算法的工作原理,并实际对其进行实验和玩耍 和他们自己在一起。
我们可以做的另一件事是使用`is`,它等同于相同的事物。 它是 Python 式的平等表示,因此`1 == 3`与`1 is 3`是同一回事,但这被认为是使用 Python 的方式。 因此,`1 is 3`返回为`False`,因为`1`不是`3`。
# if-else 循环
# `if-else`循环
```py
if1is3:
...
...
@@ -728,7 +728,7 @@ All is well with the world
```
我们也可以在此处执行`if-else`和`else-if`块。 让我们在这里做一些更复杂的事情。 如果`1 is 3`,我将打印`How did that happen?`,但是`1`当然不是`3`,所以我们将退回到`else-if`块,否则,如果`1`不是`3`,我们 ll 测试是否`1 > 3`。 嗯,这也不是正确的,但是如果确实如此,我们将打印`Yikes`,最后我们将进入将打印`All is well with the world`的所有`else`子句。
我们也可以在此处执行`if-else`和`else-if`块。 让我们在这里做一些更复杂的事情。 如果`1 is 3`,我将打印`How did that happen?`,但是`1`当然不是`3`,所以我们将退回到`else-if`块,否则,如果`1`不是`3`,我们测试是否`1 > 3`。 嗯,这也不是正确的,但是如果确实如此,我们将打印`Yikes`,最后我们将进入将打印`All is well with the world`的所有`else`子句。
实际上,`1`既不是`3`,也不是`1`大于`3`,并且肯定是`All is well with the world`。 因此,您知道其他语言具有非常相似的语法,但这是 Python 的特性以及如何执行`if-else`或`else-if`块。 因此,请再次随身携带此笔记本。 以后可能是一个很好的参考。
在某些情况下 k 均值不会收敛,也就是说,没有稳定的簇,但在这里我们不做讨论。 您可以在[这个页面](http://webdocs.cs.ualberta.ca/~nray1/CMPUT466_551/kmeans_convergence.pdf)上进一步了解 k 均值的收敛性。
在某些情况下 K 均值不会收敛,也就是说,没有稳定的簇,但在这里我们不做讨论。 您可以在[这个页面](http://webdocs.cs.ualberta.ca/~nray1/CMPUT466_551/kmeans_convergence.pdf)上进一步了解 K 均值的收敛性。
## 一个简单的例子
在进入 k 均值聚类之前,让我们看一个简单的示例。 我们将在以下各列中使用 T 恤尺寸的数据集:
在进入 K 均值聚类之前,让我们看一个简单的示例。 我们将在以下各列中使用 T 恤尺寸的数据集:
*`Size`:这是指 T 恤的尺寸
*`Height`:这是指一个人的身高
...
...
@@ -78,7 +78,7 @@ k 均值算法是迭代的。 首先从数据中随机选择`K`点,然后将
您会看到尺寸小的人,例如身材矮小,身高矮,体重轻且呈蓝色。 类似地,对于其他 T 恤尺寸,人的身高和体重彼此围绕在一起。
在前面的案例中,我们为 T 恤尺寸设置了标签。 但是,如果我们没有随身携带的 T 恤尺寸,而是拥有个人的身高和体重,而我们想根据身高和体重来估算尺寸,那么这就是 k 均值算法可以帮助我们的地方:
在前面的案例中,我们为 T 恤尺寸设置了标签。 但是,如果我们没有随身携带的 T 恤尺寸,而是拥有个人的身高和体重,而我们想根据身高和体重来估算尺寸,那么这就是 K 均值算法可以帮助我们的地方:
```py
>>>frommathimportsqrt
...
...
@@ -104,7 +104,7 @@ S 0 15 0
```
我们根据已知的 T 恤尺寸在 k 均值算法中假设了三个聚类(稍后我们将讨论如何确定聚类的数量),然后在“平均长度”中输入身高和体重 k-均值算法。 发布之后,我们将预测存储桶并将这些存储桶分配给`SizePredict`变量。 然后,我们查看实际值与预测值之间的混淆矩阵,以了解预测存储桶所属的位置。 我们可以看到`0`桶属于`L`衬衫尺寸,`1`属于`S`和`2`属于`M`。 现在,将桶映射回 T 恤尺寸并绘制散点图:
我们根据已知的 T 恤尺寸在 K 均值算法中假设了三个聚类(稍后我们将讨论如何确定聚类的数量),然后在“平均长度”中输入身高和体重 K 均值算法。 发布之后,我们将预测存储桶并将这些存储桶分配给`SizePredict`变量。 然后,我们查看实际值与预测值之间的混淆矩阵,以了解预测存储桶所属的位置。 我们可以看到`0`桶属于`L`衬衫尺寸,`1`属于`S`和`2`属于`M`。 现在,将桶映射回 T 恤尺寸并绘制散点图: