首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >一种算法,用于从与另一个较小的数据集相似的数据集中对实例进行分类,其中此较小的数据集表示单个类

一种算法,用于从与另一个较小的数据集相似的数据集中对实例进行分类,其中此较小的数据集表示单个类
EN

Stack Overflow用户
提问于 2019-05-22 19:18:14
回答 2查看 126关注 0票数 3

我有一个表示来自二进制类的实例的数据集。这里的问题是只有来自正类的实例,而我没有来自负类的实例。或者更确切地说,我想从负片中提取出那些更接近正片的东西。

更具体地说,假设我们有从我们商店购买商品的人的数据,当时要求购买忠诚卡,或者稍后根据自己的意愿。抛开隐私问题不谈(这只是一个例子),我们有不同的属性,比如年龄、邮政编码等。

在我们的示例中,另一组客户端是未申请该卡的客户端。

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

这并不是一个确切的分类问题,因为我们试图从“负面”组中获取实例。

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

我考虑过使用kNN。但我真的不知道我有什么选择。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-22 20:55:04

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

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

  1. 您可以将带正标签的数据(有卡的客户)的特征向量转换到具有较低维度的向量空间(例如,通过使用主成分分析)。然后,您可以计算转换后的数据的概率分布,并找出新客户端是否属于相同的统计分布。您还可以计算新客户端到转换后数据的质心的距离,并通过使用分布的标准差来决定它是否仍然足够接近。
  2. 机器学习方法:您可以使用卡数据在客户端上训练自动编码器网络。自动编码器在其架构中有一个瓶颈。它将输入数据压缩为具有较低维度的新特征向量,然后尝试从该压缩向量重建输入数据。如果训练正确,则与具有卡数据集的客户端相似的输入数据的重建误差应该小于与其不相似的输入数据的重建误差(希望这些客户端不需要卡)。

先来看看这个教程吧:https://towardsdatascience.com/how-to-use-machine-learning-for-anomaly-detection-and-condition-monitoring-6742f82900d7

这两种方法都需要首先对属性进行标准化。

票数 2
EN

Stack Overflow用户

发布于 2019-05-24 03:29:50

并尝试使用单类支持向量机

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56255659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档