字典特征抽取


特征工程介绍

影响机器学习的几个地方
算法或特征工程

数据和特征决定机器学习的上限,而模型和算法只是逼近这个上限。

特征抽取

将任意数据转换为可用于机器学习的数字特征

特征提取API

在计算机中,我们可以用一维数组来存储向量,用二维数组来存储矩阵

字典特征提取

下面是对字典数据进行特征化

如何理解下面这个图

我们可以发现,字典实际上只有两个属性,一个是城市,一个是温度,那么为什么生成的矩阵中会有4列呢,其实是因为我们有三个城市,所以为了区分,我们3列来区分地方,如果这里北京是 0 1 0 。

字典特征提取实际上就是把类别转换为one-hot编码

样例代码:

data = [{\\\\'city\\\\': \\\\'北京\\\\',\\\\'temperature\\\\':100}, {\\\\'city\\\\': \\\\'上海\\\\',\\\\'temperature\\\\':60}, {\\\\'city\\\\': \\\\'深圳\\\\',\\\\'temperature\\\\':30},{\\\\'city\\\\': \\\\'香港\\\\',\\\\'temperature\\\\':30}]
# 1、实例化一个转换器类
transfer = DictVectorizer(sparse=True)
# 2、调用fit_transform()
data_new = transfer.fit_transform(data)
print("data_new:\n", data_new.toarray(), type(data_new))
print("特征名字:\n", transfer.get_feature_names())

注意:默认transform会返回一个sparse矩阵(稀疏矩阵)

.toarray()后

稀疏矩阵的意义是节省内存,作用就是按位置表示出来

应用场景

1.如果数据集中特征比较多
2.如果本身拿到的就是字典数据时也可以使用


文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录