用于将数据集中的实例分类为与另一个较小数据集相似的算法,其中较小数据集代表单一类别

我有一个代表二元类别实例的数据集。特别之处在于只有正类实例,我没有负类实例。或者说,我想从负类中提取那些与正类更接近的实例。

具体来说,假设我们有从我们商店购买商品并主动申请会员卡的客户数据,撇开隐私问题(这只是一个例子),我们有不同的属性,如年龄、邮编等。

另一组客户,按照我们的例子,是那些没有申请卡的客户。

我们希望找到一部分与第一组中申请会员卡的客户最相似的人,以便向他们发送申请会员计划的优惠信息。

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

这也不是典型的无监督聚类,因为我们已经知道了一个聚类(会员卡客户)。

我想过使用kNN算法,但我不确定这里有哪些选择。

我还想知道,如果可能的话,如何使用Weka或其他Java库来实现这个目标,以及我是否应该对所有属性进行标准化处理。


回答:

你可以使用异常检测算法。这些算法可以告诉你新客户是否属于获得会员卡的客户群体,如果不属于,他们将被视为异常情况。

有两个基本思路(来自我下方链接的文章):

  1. 你可以将标记为正的客户(拥有卡的客户)的特征向量转换到一个较低维度的向量空间中(例如,使用PCA)。然后你可以计算转换后数据的概率分布,并判断一个新客户是否属于相同的统计分布。你也可以计算新客户到转换后数据中心的距离,并使用分布的标准差来决定它是否仍然足够接近

  2. 机器学习方法:你可以在拥有卡的客户数据上训练一个自编码器网络。自编码器在其架构中有一个瓶颈。它将输入数据压缩成一个维度较低的新特征向量,然后尝试从这个压缩向量重建输入数据。如果训练正确,对于与拥有卡的客户数据集相似的输入数据,其重建误差应该小于不相似的输入数据(希望这些是不想要卡的客户)。

作为开始,可以查看这个教程:https://towardsdatascience.com/how-to-use-machine-learning-for-anomaly-detection-and-condition-monitoring-6742f82900d7

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注