推荐收藏,机器学习7种特征编码太好用了
admin
2024-03-09 15:04:41
0次

在结构化数据中经常遇到列表或交易等非结构化列,比较典型的案例如下,此时一个列表列会包含字符串 或 一个列表:

ID列     Tag列  
用户A    tag1, tag2, tag3  
用户B    tag3, tag5, tag6, tag10  
用户C    tag3, tag5, tag6, tag10  

如何对此类列进行编码和提取特征呢?本文将给出一些基础和进阶的解决方法。

方法1:进行基础统计

在进行编码时,最基础的想法是可以统计个数,个数的多少可以直观反应这列包含的信息的多少。

df['Tag列'].apply(len)  

当然可以直接进行统计列表长度,也可以先计算每个tag的频次,然后进行相应的统计。

  • 优点:实现简单,并没有增加维度;

  • 缺点:信息丢失较多

方法2:提取TFIDF

在进行编码的过程中,可以使用onehot对单个某个tag进行编码,又或者使用直接使用TFIDF进行编码。

  • CounterVecoter:计算TF

  • TFIDFVector:计算TF + IDF

from sklearn.feature_extraction.text import CountVectorizer  
from sklearn.feature_extraction.text import TfidfVectorizer  
  • 优点:可以对tag进行有效索引;

  • 缺点:增加特征维度;

方法3:TFIDF + LDA/SVD

进行次数编码容易造成维度爆炸,一种代替的方法是先进行TFIDF编码,然后进行降维:LDA、SVD或者t-SNE降维。

from sklearn.decomposition import PCA  
from sklearn.decomposition import LatentDirichletAllocation  
from sklearn.decomposition import TruncatedSVD  
  • 优点:维度更低,特征更加有区分性。

  • 缺点:降维需要额外的训练时间;

方法4:句子嵌入

词向量是一种非常有效的单词编码方法,可以对单词进行映射。我们可以参考无监督句子编码的方法,对tag进行嵌入,然后对多个tag进行聚合。

如果一个tag编码为100维度,则我们需要将任意多个tag都编码为100维度。这里的聚合方法包括:

  • Mean-pooling

  • Max-pooling

  • TFIDF-pooling

  • SIF Embedding

上述实现过程需要额外训练词向量,如果使用深度学习框架实现会更加快速。

  • 优点:维度更加可控,语义更加完整。

  • 缺点:不适用tag乱序的情况

方法5:频繁项聚类

对于tag列可以作为集合进行处理,可以参考频繁项挖掘的方法进行聚类操作。频繁项集聚类提供了一个减少维度,聚类之后的聚类类别可以单独当做类别变量。

相应簇由包含频繁项集,当然也可以使用文本聚类的方法,比如层次聚类。

  • 优点:可解释性强,维度低;

  • 缺点:需要额外编码,聚类更新困难

方法6:PageRank

在多个tag进行编码的过程,可以单独计算每个tag的IDF,也就是权重。当然我们也可以将多个tag组合在一起视为一个图。

比如tag1, tag2, tag3可以构建为一个三个节点的有向图,构建完成之后然后计算每个节点的权重。

通过PageRank可以计算得到每个tag的权重,也可以得到所有tag得到的图的核心节点。

  • 优点:tag权重有意义,可解释。

  • 缺点:适用于tag间存有向的情况。

方法7:minihash或者LSH

如果将tag列表当做集合看待,我们可以使用minihash进行对集合进行编码,然后使用LSH进行编码。LSH包含多次哈希,最终可以将包含相同tag的列表哈希得到相同的桶中。

  • 优点:适用于大规模和分布式数据集

  • 缺点:需要手动设计哈希函数

相关内容

热门资讯

一分钟了解!新大海互娱辅助功能... 一分钟了解!新大海互娱辅助功能软件,新大海互娱总是是有辅助软件1、新大海互娱免费脚本咨询教程、新大海...
推荐十款辅助器!捕鱼游戏辅助器... 推荐十款辅助器!捕鱼游戏辅助器多功能AIapp,捕鱼游戏好像有辅助器app1、下载好捕鱼游戏脚本下载...
一分钟揭秘外挂!小白大作战外挂... 一分钟揭秘外挂!小白大作战外挂多功能AI工具,小白大作战一直是真的有外挂工具小白大作战是不是有人用挂...
一分钟了解!新星游辅助器功能神... 一分钟了解!新星游辅助器功能神器,新星游确实真的有辅助器神器1、超多福利:超高返利,海量正版游戏,新...
一分钟了解透视器!纵横互娱透视... 一分钟了解透视器!纵横互娱透视器多功能AI脚本,纵横互娱果然是有透视器脚本纵横互娱透视方法中分为三种...
一分钟了解!欢乐五张辅助器功能... 一分钟了解!欢乐五张辅助器功能教程,欢乐五张一直有辅助器教程一、欢乐五张可以开透视的定义与意义1、欢...
总算明白外挂!牛大亨外挂多功能... 总算明白外挂!牛大亨外挂多功能AI攻略,牛大亨切实存在有外挂攻略1、在牛大亨插件功能辅助器技巧中,中...
传递经验!双喜互娱辅助器功能a... 传递经验!双喜互娱辅助器功能app,双喜互娱一直是有辅助器app1、首先打开双喜互娱辅助器下载最新版...
今日百科透视器!星际互联透视器... 今日百科透视器!星际互联透视器多功能AI方法,星际互联其实是真的有透视器方法1、每一步都需要思考,不...
今日公布!双喜互娱辅助器功能a... 今日公布!双喜互娱辅助器功能app,双喜互娱原来有辅助器app双喜互娱是不是有人用挂微扑克wpk插件...