让我们想想一个例子,一个电子商务网站,其中列出了产品销售。现在,一个人可以出现在特定的产品页面上,并决定是否将其添加到购物车中。如果我们把它看作是一个分类问题,那么,产品的规格可以是它的特征(例如,手机、相机分辨率、屏幕大小、价格、保修期),以及客户单击“添加到购物车”按钮或不点击“添加到购物车”按钮的特定产品页面视图可以是成功标准(分类标签)。
注意到,对于相同的特性集,对于产品页面视图,很少有客户单击add to cart按钮(y = 1)。这意味着对于同一个X,会有很多Y=0,很少有Y=1。
我的同行说,像XGBoost这样的机器学习算法将能够对此进行分类。虽然我不相信这样一个事实,即该算法如何能够预测对于一个X,Y将是1,而在现实中,它本身有很小的机会成为1,因为许多客户不会将它添加到购物车中。
我知道它会给我一个y值为1的概率分数,但那太低了,无法利用。
发布于 2018-07-03 09:27:46
我知道它会给我一个y值为1的概率分数,但那太低了,无法利用。
考虑到您对输入数据的描述,正如您解释的那样,它只是一个产品的规范(并且含蓄地表示您正在为某个已经到达产品页面的用户进行分类),那么这就是您所能做的最好的了。您只是没有关于用户的动机和历史的数据,这将使您能够进一步完善的平均购买概率给定的产品统计。
如果您可以访问有关访问者的数据,例如他们访问过的其他页面,以前的购买,他们是否从某个特定的广告或搜索结果点击等等,那么您可能能够进一步完善该值。然而,即使有了这类支持数据,你仍然很难预测一个清晰的“会买”和“不会买”--相反,你可能能够根据用户的详细信息,将一个通用的p=0.01细化成一个个性化的范围p=0.0001到p=0.05。
这种概率变化仍然可以成功地应用于广告和销售管道中。例如,在决定做什么广告时,0.01和0.05概率之间的差异是一个因素,可以提高网站广告部分的使用效率。诀窍是找到正确的方法来利用这些信息。
一般来说,你将无法做出可靠的预测,即用户会在网站上购买像手机这样的产品。隐藏的变量太多了。因此,不要试图设计依赖于直接的是/否预测的系统。
发布于 2018-08-08 23:18:48
看起来是个有趣的项目。如果我没有错,您希望预测特定用户是否将特定的产品添加到他/她的购物车(target = 1)中(target = 0)。在这个项目中使用数据科学概念是一个很棒的想法。
从我的观点来看,首先,您应该浏览您的数据,手动分析,并尝试收集尽可能多的隐藏数据。你做的分析越多(关于电子商务),你就会得到更多的数据。嗯,我不是电子商务世界的专家,但让我说一下,例如,哪种类型的日子(节日或工作日)或特定的用户历史可能对这个系统很有用。
这样做之后,您应该尝试填充丢失的数据(如果您丢失了一些数据),而不是仅仅忽略这些数据。然后,您应该绘制一些数据图表,以了解所有功能是如何相互关联的。这可能会帮助您分析哪些是重要的特性。例如,通过查看图表,您可能会看到特定产品的销售随着该产品的流行而增加。matplotlib和seaborn是最好的库。
下一步也是最重要的一步是应用机器学习模型来预测目标数据(是/否)。
很明显,大多数数据都带有No (y = 0)。因此,您的培训数据中有不平衡的数据集。正如您的同行所建议的那样,XGBoost将是分类不平衡数据的最佳方法。现在,在拟合模型之前,您应该对您的数据做一个小的修改。您可以通过对(y = 1)类增加权重来调整目标数据的权重。
weights = np.zeros(len(y_train))
weights[y_train == 0] = 5
weights[y_train == 1] = 10 我认为你也可以尝试cross-validation (5倍),只对你的培训数据.利用F1-Macro评分对模型的准确性进行评价也是很好的。
你绝对应该试试这个东西。也许你最终能得到比你预期更多的好处。您还可以使用这些数据在您的电子商务网站上制作产品推荐系统。
https://datascience.stackexchange.com/questions/33920
复制相似问题