Machine learning 将数据集中的实例分类的算法类似于另一个较小的数据集,其中这个较小的数据集表示单个类

Machine learning 将数据集中的实例分类的算法类似于另一个较小的数据集,其中这个较小的数据集表示单个类,machine-learning,cluster-analysis,weka,data-mining,Machine Learning,Cluster Analysis,Weka,Data Mining,我有一个表示二进制类实例的数据集。这里的转折点是,只有来自积极类的实例,而我没有消极类的实例。或者更确切地说,我想从更接近正面的负面因素中提取出来 为了更具体,假设我们有一些人的数据,他们从我们的商店购买了一张忠诚卡,并在此时或之后自愿要求购买。撇开隐私问题不谈(这只是一个例子),我们有不同的属性,如年龄、邮政编码等 另一组客户(以我们为例)是未申请信用卡的客户 我们希望找到与第一组中申请忠诚卡的人最相似的人的子集,以便我们可以向他们发送申请忠诚计划的报价 这并不完全是一个分类问题,因为我们试图

我有一个表示二进制类实例的数据集。这里的转折点是,只有来自积极类的实例,而我没有消极类的实例。或者更确切地说,我想从更接近正面的负面因素中提取出来

为了更具体,假设我们有一些人的数据,他们从我们的商店购买了一张忠诚卡,并在此时或之后自愿要求购买。撇开隐私问题不谈(这只是一个例子),我们有不同的属性,如年龄、邮政编码等

另一组客户(以我们为例)是未申请信用卡的客户

我们希望找到与第一组中申请忠诚卡的人最相似的人的子集,以便我们可以向他们发送申请忠诚计划的报价

这并不完全是一个分类问题,因为我们试图从“否定”组中获取实例

它并不完全是集群,这通常是无监督的,因为我们已经知道一个集群(忠诚卡客户)

我想用kNN。但我真的不知道我有什么选择


我还想知道,如果可能的话,如何使用weka或其他Java库实现这一点,以及是否应该规范化所有属性。

您可以使用异常检测算法。这些算法告诉您新客户是否属于获得忠诚卡的客户组(在这种情况下,他们将是异常情况)

有两个基本想法(来自下面我链接的文章):

  • 将正标签数据(带卡的客户机)的特征向量转换为具有较低维度的向量空间(例如,通过使用PCA)。然后,您可以计算结果转换数据的概率分布,并确定新客户机是否属于相同的统计分布。您还可以计算新客户机到转换数据质心的距离,并通过使用分布的标准偏差来确定它是否仍然足够接近

  • 机器学习方法:使用卡数据在客户机上训练自动编码器网络。自动编码器的体系结构存在瓶颈。它将输入数据压缩成具有较低维数的新特征向量,然后尝试从该压缩向量重构输入数据。如果正确地完成了培训,与具有卡数据集的客户机相似的输入数据的重建误差应小于与之不相似的输入数据的重建误差(希望这些客户机不需要卡)

  • 先看一下本教程:


    这两种方法都需要首先标准化属性

    尝试一种单类支持向量机

    此方法尝试对边界建模,并将为您提供一个关于点是否应位于类中的二进制决策。这可以看作是一个简单的密度估计。主要的好处是,支持向量art将比训练数据小得多


    或者简单地使用最近邻距离对用户进行排名。

    那么你想要的是检测那些不是异常值的新实例吗?@OSainz你的概念有点正确,但它们不能被称为异常值,因为分类实例的集合要小得多。此外,这两个集合的质心、簇或其他可能被称为的东西可能相距很远。多亏了,第一种方法看起来很有希望。这对我来说是直截了当和可以理解的。我得去图书馆查一下细节。