基于Python的Kaggle案例分析(一)

来源:互联网 发布:制谱软件x 编辑:程序博客网 时间:2024/06/03 19:38
预测来自电子商务站点的搜索结果的准确性

案例大纲:
1、案例背景
2、数据预处理
3、特征工程
4、模型实现


1、案例背景
       目前,小型在线企业没有很好的方法来评估其搜索算法的性能,使得他们难以提供卓越的客户体验。这个比赛的目的是创建一个可以用来衡量搜索结果相关性的开源模型,要求评估搜索算法准确性。
       训练数据属性包括:
        ----- id: 样本id
        ----- query: 搜索词语
        ------  product_description:产品描述的完整文本(部分带有Html)
        ------ median_relevance: 三位评分员的相关性评分中位数,值为1到4的整数。
        ------ relevence_variance:评分员的相关性评分的方差
        测试集数据属性包括:
        ----- id: 样本id
        ----- query: 搜索词语
        ------  product_description:产品描述的完整文本(部分带有Html)
        目标变量:median_relevance
        对这些数据进行进一步的解释,就是顾客输入搜索关键词以后会得到很多搜索结果,每条搜索结果都有相关的产品描述,假设取出前十条搜索结果,让三个评分员打分,评价每条搜索结果与顾客搜索关键词的相关性,这样每个搜索结果就有三个分数,取三个分数的中位数作为该搜索结果的分数,这就是median_relevance,但是这是人为评价,需要大量的人力物力,所以要实现机器评分,以2万多条人工评分得到的样本进行学习,之后就可以实现机器评分了。relevence_variance在测试集没有,应该是不会用到的。
2、数据预处理
    主要针对顾客的搜索关键词进行数据预处理:
(1)去除HTML标签
(2)拼写错误修正;同义词修正;其他单词替换
(3)词干化:比如将动词的单数形式、现在分词形式、过去形式等同一个词不同形式转为原型。
3、特征工程
(1)词频特征。搜索关键词的词频、产品名称的词频、产品描述的词频,搜索关键词的长度、产品名称的长度、产品描述的长度,搜索关键词数所占比例、产品名称词数所占比例、产品描述词数所占比例,对缺少产品描述的搜索进行统计。
(2)词距离特征:查询关键词与产品名称的距离,或查询关键词与产品描述的距离,根据评分分组,评分有4、3、2、1分,例如评分为4的有"abc"、“efg”等为一组,评分为3的有“qqq”、"rrr"为一组,或者同时考虑搜索关键词与评分,例如搜索关键词为‘abc’评分1的为一组,搜索关键词为“abc”,评分为2的为一组,搜索关键词为“abc”,评分为3的为一组,搜索关键词为“abc”,评分为4的为一组,这样就会得到261*4组样本。接下来计算每个样本与每个分组的所有样本的距离
(3)TF-IDF词向量特征
(4)查询ID特征:查询ID进行独热编码,方便后续处理,用到sklearn.preprocessing库的LabelBinarizer模块。
4、模型实现
    针对上述特征采取集成学习算法。对XGBoost Linear Booster、XGBoost Tree Booster、GradientBoostingRegressor、RandomForestRegressor、SVM、Ridge、Keras NN、  RGF Regression进行集成。

     我这里解释得还算相对简单,视频讲解得也不是很详细,因为代码非常多,也不可能一个个讲解,所以讲了大体思路。所以我提供了该比赛项目获奖者的代码、思路及数据的GitHub链接:https://github.com/ChenglongChen/Kaggle_CrowdFlower,链接中的名称为:Kaggle_CrowdFlower_ChenglongChen.pdf的,讲解了整个处理的思路。
原创粉丝点击