我想使用K-means算法训练数据,然后在另一组相似数据上进行测试,只移除一列。我是机器学习的新手,所以我从https://www.datacamp.com/community/tutorials/k-means-clustering-python上获取了代码,并将其应用于我的一组数据集,但是在这个网站上,预测部分在哪里进行的呢?我们只是提供数据并测试准确性。我们如何将算法应用于测试数据(显然会有所不同)以预测缺失属性的值呢?
回答:
当你开始学习机器学习时,这种困惑是很常见的。
来自维基百科:
监督学习是根据示例输入-输出对,学习将输入映射到输出的函数的机器学习任务。它从由一组训练示例组成的标记训练数据中推断出函数。在监督学习中,每个示例都是由一个输入对象(通常是一个向量)和一个期望的输出值(也称为监督信号)组成的对。监督学习算法分析训练数据并生成一个推断函数,该函数可用于映射新示例。最佳情景将允许算法正确确定未见实例的类别标签。这需要学习算法以一种“合理”的方式从训练数据泛化到未见的情况(参见归纳偏见)。
同样来自维基百科:
无监督学习是机器学习的一个分支,它从未被标记、分类或归类的测试数据中学习。无监督学习不是响应反馈,而是识别数据中的共性,并根据每条新数据中这些共性的存在或缺失做出反应。
K-means聚类算法是一种无监督学习算法。在无监督学习中,你没有标签,因为你不是在试图预测某事。相反,你是在尝试找到一种方法来将数据聚类,使具有共同特征的数据点被分组在一起。
你首先在监督学习中使用测试(和通常的验证)集的原因,是为了评估模型的泛化性能,以避免过拟合。然而,在无监督学习中,你无法评估这一点,因为你不知道数据的实际聚类。因此,使用测试集是没有意义的。