在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):Huangtuzhi/AlibabaRecommand开源软件地址(OpenSource Url):https://github.com/Huangtuzhi/AlibabaRecommand开源编程语言(OpenSource Language):Python 100.0%开源软件介绍(OpenSource Introduction):AlibabaRecommand介绍通过对用户在移动终端上一个月的行为数据进行分析,为后一天的用户购买行为作出预测,进行推荐。 目录结构
使用TrainModel类用来生成每个样本的特征和对应的label
PredictEmption类用来生成模型和选取最优阈值
GetFeature31day.py用来提取31天的特征样本和进行预测
原理题目给了31天的数据,我们选择第30天作为分割点。用前30天的数据提取n维特征(每个[user_id,item_id]对可以提取一行特征),用第31天的真实数据去标记每行特征。 举个例子:某个[user_id,item_id]对[9909811,266982489]在前30天出现,如果在第31天它也出现了且behavior_type为购买,则标记这一行的label为1,否则为0。 这样形成了很多行的特征数据,我们把数据进行Logistic Regression训练,得到一个二分类的模型,这样模型就训练好了。 接下来就是预测,预测的东西就是上面的label,也即模型的输出。label为1表示我们认为用户会购买。那么模型的输入是什么呢?模型的输入就是31天所有数据的特征。
因为31th的label数据是已知的,所以可以利用它对训练出来的模型进行评估。而32th的label就是输出结果了。 建模模型建立主要采取对特征数据进行Logistic Regression。 现有一组用户在一个月内的移动端数据,我们需要预测他们在后一天购买某件商品的可能性。通过二值分类,我们仅仅能够预测用户是否购买,不同于此的是,现在我们还关心购买的可能性,即:
取值范围是区间[0,1]。 在二值分类中,我们通过w*x得到一个score后,通过符号运算sign来预测y是+1或-1。而对于当前问题,如果能够将这个score映射到[0,1]区间,问题似乎就迎刃而解了。而问题的关键就是选择映射函数,逻辑斯蒂回归选择的映射函数是S型的sigmoid函数。
s取值范围是整个实数域,f(x)单调递增。而逻辑斯蒂回归用
来逼近上面的目标函数。其中,x为要预测的样本,w为训练出的模型向量(w和x的维度相同),h是算得的样本概率。 说明本repo是一个流程和预测的框架,特征工程很多地方还需要改善。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论