备注
1.用户是多个,广告也是多个,一个用户可能对多个广告产生行为,一个广告也可能被对多个用户点击,这显然是不好处理的.我们假设只有一个广告,那么他对于用户而言只有两种情况,被点击和不被点击,这就成了一个二分类的问题.我们把用户特征与广告特征拼接,作为x,把与x对应的是否点击作为y,对于离散数据做分类可以使用knn,支持向量机,决策树/随机森林..对于离散数据.使用这些方法之前最好先做稀疏处理,我们最常用的方法是onehot.在另一篇博文里介绍了这种方法的优缺点,我想可以用w2v或者autoencoding处理一些关联较大的数据,比如interest1.我们的数据有四个g,稀疏处理后将会变得更大,可以对数据先拆分,我会分享顺序拆分的代码.
2.我还有一种思路,就是先对用户特征稀疏化,做kmeans聚类,判断同类用户与广告之间的关系,这样问题可能会简单一些
3.亲测只有knn或者的决策树的话准确率不会比随机猜测高太多,我们在他之前再套一层boosting算法
4.考虑到内存溢出,我把训练集分块进行训练,得到每块的模型,当用整个测试集进行测试的时候出现了shape不匹配的问题,问题应该是数据集不完全包括测试集的特征,导致one-hot编码后维度不同,解决的办法:把每块数据集与测试集整合编码。