zoukankan      html  css  js  c++  java
  • 我的腾讯looksalike解题思路

    赛题:https://pan.baidu.com/s/1Re0k81XieiXFI6hkwgL8oA

    分析:

    1.用户是多个,广告也是多个,一个用户可能对多个广告产生行为,一个广告也可能被对多个用户点击,这显然是不好处理的.我们假设只有一个广告,那么他对于用户而言只有两种情况,被点击和不被点击,这就成了一个二分类的问题.我们把用户特征与广告特征拼接,作为x,把与x对应的是否点击作为y,对于离散数据做分类可以使用knn,支持向量机,决策树/随机森林..对于离散数据.使用这些方法之前最好先做稀疏处理,我们最常用的方法是onehot.在另一篇博文里介绍了这种方法的优缺点,我想可以用w2v或者autoencoding处理一些关联较大的数据,比如interest1.我们的数据有四个g,稀疏处理后将会变得更大,可以对数据先拆分,我会分享顺序拆分的代码.

    2.我还有一种思路,就是先对用户特征稀疏化,做kmeans聚类,判断同类用户与广告之间的关系,这样问题可能会简单一些

    3.亲测只有knn或者的决策树的话准确率不会比随机猜测高太多,我们在他之前再套一层boosting算法

    4.考虑到内存溢出,我把训练集分块进行训练,得到每块的模型,当用整个测试集进行测试的时候出现了shape不匹配的问题,问题应该是数据集不完全包括测试集的特征,导致one-hot编码后维度不同,解决的办法:把每块数据集与测试集整合编码。

    5.第一周结果出来,有大佬做了总结,他们采用里gbdt和deepfm结合的方式来做,前一个是梯度提升树,属于treemodel,后者是一个深度模型,华为2017年提出的用户推荐算法,它基于特征工程,对小块数据用gbdt做特征挖掘,再进行特征的拼接和分割,然后用deepfm训练,大佬的算法就是厉害,这些我都不会

    数据:可以联系我要

  • 相关阅读:
    sqlite数据库如何远程连接?
    redis的两种持久化方案
    Netty入门系列(1) --使用Netty搭建服务端和客户端
    使用MQ消息队列的优缺点
    Netty基础系列(3) --彻底理解NIO
    Netty基础系列(2) --彻底理解阻塞非阻塞与同步异步的区别
    Netty基础系列(1) --linux网路I/O模型
    Jedis异常解决:NOAUTH Authentication required
    java并发编程(2) --Synchronized与Volatile区别
    java并发编程(1) --并发基础及其锁的原理
  • 原文地址:https://www.cnblogs.com/wbt1995/p/8920625.html
Copyright © 2011-2022 走看看