我应该选择哪种算法进行潜在客户评分

人工智能 机器学习
2021-10-20 08:56:50

我是 ac# 高级开发人员,我的任务是尝试预测每个新客户的潜力,或者每个客户的价值。我没有机器学习的经验,但我玩过accord-framework.net 并在简单的任务上得到了一些不错的结果。

我的训练数据模型是:

GeoLocation, // the country of ip when registed. iso code string
Age, // number
DateRegistered, //date time
Email, //string can be broken to vendors as catergorial (gmail, yahoo, microsoft and such)
EmailValidated, //is the email really exists. bool
PhoneNumber, //string
PhoneNumberValidated, // is the phone number really exists
CampaignName, //string (may be categirial)
UserAgent, //string should I make it categorial? (has info about browser, device, verndor, operation system and such, long string)
LandedOnPage, //string first url the customer entered from 
RegisteredFromPage, //string url of the page that the user registered from
RefererUrl, //string url the client came to our site from,
NumberOfPurchases, //the amount of times the customer puschase something on our site
CustomerValueUsd, //the total amount of USD the customer spent in our site

输出应该CustomerValueUsd

我有很多历史数据,所以我可以回测。

我的问题:

  1. 即使我没有机器学习经验,执行此任务是否有意义?考虑到我使用的是众所周知的框架,这项任务有多复杂?
  2. 假设我正在接受任务,我应该选择哪种算法来执行这种任务?
  3. 我应该如何构建训练数据?看到我的评论,你认为我的评论可以开始吗?或者我可以直接破坏数据?
2个回答

ML 是一个广泛而深入的话题。

您需要的是“分类”来预测结果。首先,您需要将所有内容都转换为数字(检查 word2vec)。然后,预处理数据(例如检查什么是标准化)。使用任何 ML 技术(即线性分类器、SVM、深度学习、神经分类器)训练分类器。然后,您可以使用该回归函数来预测更多值。如果您需要更详细的方法来做到这一点,最好买一本解释所有其他选项的“厚”书。

即使我没有机器学习经验,执行此任务是否有意义?考虑到我使用的是众所周知的框架,这项任务有多复杂?

我认为这确实有意义,并且使用已建立的框架可以让您快速启动并运行。

假设我正在接受任务,我应该选择哪种算法来执行这种任务?

这是一个回归问题,因此我建议您不要将其视为分类任务(除非您希望获得像“盈利”/“非盈利”这样的二进制输出)。本质上,您正在尝试确定您的输入(以前的购买、位置等)与某个指标(客户的美元价值)之间的相关性。神经网络在这方面非常擅长(Accord 似乎支持神经网络,因此您应该能够使用它;Keras作为接口的TensorFlow或Caffe可能是其他需要考虑的选项)。

我应该如何构建训练数据?看到我的评论,你认为我的评论可以开始吗?或者我可以直接破坏数据?

在大多数情况下,您希望在将数据提供给算法之前对其进行标准化(这对于神经网络尤其重要)。您应该做的另一件事是考虑哪些功能将与任务相关。例如,由于您希望将客户价值作为预测输出,因此客户的电话号码和电子邮件地址很可能不相关,但之前的购买次数、年龄和地理位置可能非常相关。也许您的数据库中还有其他特征——以前购买的总金额、购买频率、退货数量或退款请求等。请记住通过将数据分成训练、验证和测试集来检查模型(如根据经验,70% 的训练 / 10% 的验证 / 20% 的测试,但这取决于你有多少数据)。