2022.3.4科研记录

这篇科研记录探讨了独热编码在处理非连续数值特征时的优势与稀疏性问题,特别是在面对大量类别特征如srcmac和dstmac时的挑战。文章提供了使用sklearn库进行独热编码的示例代码。对于多行特征的数据,如文章分类任务,提出了使用RNN(如LSTM)、CNN或注意力模型(如BERT)等方法。讨论中还提及了LSTM能捕捉句子顺序关系,以及词级编码器和sentence encoder的潜在应用。
摘要由CSDN通过智能技术生成

2022.3.4科研记录

杂七杂八的觉得有用的链接
1.有关独热编码
独热编码的优点为:
1.能够处理非连续型数值特征。
2.在一定程度上也扩充了特征。比如性别本身是一个特征,经过one hot编码以后,就变成了男或女两个特征。
当然,当特征类别较多时,数据经过独热编码可能会变得过于稀疏
↑这是个问题,数据中心server数量太多,在我的项目里如何解决src mac 和dst mac这两个特征的类别过多问题。
↓这是原博主给出的独热编码的代码

from sklearn import preprocessing
 
 
encoder = preprocessing.OneHotEncoder()
# 4个特征:
 
#第一个特征(即为第一列)为[0,1,2,1],其中三类特征值[0,1,2],因此One-Hot Code可将[0,1,2]表示为:[100,010,001]
#第一个特征有三种值:采用三个编码:[100,010,001]
 
#同理第二个特征列可将两类特征值[2,3]表示为[10,01]
 
 
#第三个特征将4类特征值[1,2,4,5]表示为[1000,0100,0010,0001]
 
#第四个特征将2类特征值[3,12]表示为[10,01]
 
encoder.fit([
    [0, 2, 1, 12],
    [1, 3, 5, 3],
    [2, 3, 2, 12],
    [1, 2, 4, 3]
])
encoded_vector = encoder.transform([[2, 3, 5, 3]]).toarray()
print("\n Encoded vector =", encoded_vector)
#[[0. 0. 1.    0. 1.      0. 0. 0. 1.     1. 0.]]

2.如何对多行特征的数据进行分类呢?
如果特征扩展到多行呢,比如说现在有若干篇文章,假设每篇文章句子数相同(即行数相同)。那么文章特征
可以表示为:

那么像诸如这样的数据,,请问哪种模型可以完成这样的分类任务呢?该用什么机器学习算法或者深度学习模型?
↑这个问题其实和我要处理的差不多
下面的几个解答有一定的参考意义:
①RNN的方式:假设句子之间存在顺序关系,可以使用例如CRU或者LSTM来进行序列关系学习;每个句子是一个timestamp,那么一个样本就是4个timestamp,然后每个timestamp下有n个feature,喂给LSTM学习,然后取出最后一个时间步下的hidden state喂给一个全连接层,再进行预测就好;RNN的好处是可以捕捉句子的顺序关系
②既然您的句特征已经提取出来了,那么lstm和CNN的方法都是可行的,也可以试试attention类的模型,比如bert(基本上nlp上的the state of the art都是这类的,这个我接触不多,给个建议而已)如果不用手工特征应该是可以训练一个语言模型,比如lstm,然后把句子过一遍来得到句子特征的,或者最简单办法把句子内的word embedding加权求个和也可以
③这类模型太多了,你要先抓住你要的问题是什么,你的目的是对文章分类,因此你只需要对文章进行表示学习就好了,比如你可以用一个最简单的词级编码器,不考虑句子构成直接从单词维度对文章表示,然后进行分类(最后经过一个softmax函数),如果你想考虑句子级别,那么可以再增加一个sentence encoder。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值