用户画像-案例
基于用户搜索关键词数据为用户打上标签(年龄,性别,学历)
整体流程
### (一)数据预处理
* 编码方式转换
* 对数据搜索内容进行分词
* 词性过滤
* 数据检查
(二)特征选择
建立word2vec词向量模型
对所有搜索数据求平均向量
(三)建模预测
不同机器学习模型对比
堆叠模型
(一)数据预处理 将原始数据转换成utf-8编码,防止后续出现各种编码问题。由于原始数据比较大,在分词与过滤阶段会比较慢,这里我们选择了原始数据中的1W个
测试集的编码转换方式同上
生成对应的数据表
对用户的搜索数据进行分词与词性过滤,这里需要分别对训练集和测试集进行相同的操作,路径名字要改动一下
使用Gensim库建立word2vec词向量模型
参数定义:
sentences:可以是一个list
sg: 用于设置训练算法,默认为0,对应CBOW算法;sg=1则采用skip-gram算法。
size:是指特征向量的维度,默认为100。大的size需要更多的训练数据,但是效果会更好. 推荐值为几十到几百。
window:表示当前词与预测词在一个句子中的最大距离是多少
alpha: 是学习速率
seed:用于随机数发生器。与初始化词向量有关。
min_count: 可以对字典做截断. 词频少于min_count次数的单词会被丢弃掉, 默认值为5
max_vocab_size: 设置词向量构建期间的RAM限制。如果所有独立单词个数超过这个,则就消除掉其中最不频繁的一个。每一千万个单词需要大约1GB的RAM。设置成None则没有限制。
workers参数控制训练的并行数。
hs: 如果为1则会采用hierarchica·softmax技巧。如果设置为0(defau·t),则negative sampling会被使用。
negative: 如果>0,则会采用negativesamp·ing,用于设置多少个noise words
iter: 迭代次数,默认为5
加载训练好的word2vec模型,求用户搜索结果的平均向量
绘图函数,以性别为例,绘制混淆矩阵
测试集的构造方法和训练集一样
建立一个基础预测模型
堆叠模型