如何检查 python 中 k-means 聚类的准确性?如何知道预测变量在 k-means 算法中代表什么?
How to check the accuracy of k-means clustering in python? How to know what the predicted variables represent in k-means algorithm?
以上数据框表示确定我是否患有癌症的属性。 class代表这个人是否患有癌症。 Class-2代表没有癌症,4代表得了癌症。当我通过删除 class 和 id 在数据帧上尝试 K-means 时,我得到的所有行的预测都是 0,1。但是现在我很困惑 0/1 是否等于 2。如何解决这个问题以及如何检查我的模型的准确性。
K-Means 算法不是 class 算法,而是一种聚类算法。这意味着它不会为您提供从特征到癌症的映射 class。它仅在特征 space.
中找到聚类(相关数据点的子集)
因此输出 0/1 是每个数据点对找到的聚类的成员资格。
如果您想检查聚类是否与癌症相关 classes,请进行分析:
- 簇 0 中有多少数据点实际上是癌症 class 2?
- 聚类 1 中有多少数据点实际上是癌症 class 4?
另请参阅 confusion matrix 以获取有关如何评估此类问题的信息。
您的混淆矩阵应如下所示:
+-----------------+-----------------------+-----------------------+
| | actual cancer class 4 | actual cancer class 2 |
+-----------------+-----------------------+-----------------------+
| k-Means class 0 | true positive | false positive |
| k-Means class 1 | false negative | true negative |
+-----------------+-----------------------+-----------------------+
- 真阳性:算法预测癌症而人确实患有癌症
- 假阳性:算法预测癌症但人没有癌症
- 假阴性:算法预测没有癌症但人实际上患有癌症
- 真阴性:算法预测没有癌症,人没有癌症
- 只取集群0中的数据点;数一数其中有多少人患有癌症 class 4 -> 这将是您的真阳性。
- 现在只取集群 0 中的数据点;计算其中有多少人患有癌症 class 2 -> 这将是您的误报。
- 对底片重复。
准确度 可以使用以下公式计算:acc = (TP+TN) / (TP+FP+FN+TN)
以上数据框表示确定我是否患有癌症的属性。 class代表这个人是否患有癌症。 Class-2代表没有癌症,4代表得了癌症。当我通过删除 class 和 id 在数据帧上尝试 K-means 时,我得到的所有行的预测都是 0,1。但是现在我很困惑 0/1 是否等于 2。如何解决这个问题以及如何检查我的模型的准确性。
K-Means 算法不是 class 算法,而是一种聚类算法。这意味着它不会为您提供从特征到癌症的映射 class。它仅在特征 space.
中找到聚类(相关数据点的子集)因此输出 0/1 是每个数据点对找到的聚类的成员资格。
如果您想检查聚类是否与癌症相关 classes,请进行分析:
- 簇 0 中有多少数据点实际上是癌症 class 2?
- 聚类 1 中有多少数据点实际上是癌症 class 4?
另请参阅 confusion matrix 以获取有关如何评估此类问题的信息。
您的混淆矩阵应如下所示:
+-----------------+-----------------------+-----------------------+
| | actual cancer class 4 | actual cancer class 2 |
+-----------------+-----------------------+-----------------------+
| k-Means class 0 | true positive | false positive |
| k-Means class 1 | false negative | true negative |
+-----------------+-----------------------+-----------------------+
- 真阳性:算法预测癌症而人确实患有癌症
- 假阳性:算法预测癌症但人没有癌症
- 假阴性:算法预测没有癌症但人实际上患有癌症
- 真阴性:算法预测没有癌症,人没有癌症
- 只取集群0中的数据点;数一数其中有多少人患有癌症 class 4 -> 这将是您的真阳性。
- 现在只取集群 0 中的数据点;计算其中有多少人患有癌症 class 2 -> 这将是您的误报。
- 对底片重复。
准确度 可以使用以下公式计算:acc = (TP+TN) / (TP+FP+FN+TN)