字典特征抽取
特征工程介绍:
特征工程就是帮助我们对特征进行处理。实际上就是数据处理
数据和特征决定了机器学习的上线,而模型和算法只是逼近这个上线而已。
特征抽取(特征提取):
机器学习算法 - 统计方法-数学公式
文本类型 -->>数值
类型 -->>数值
特征提取定义:
1、将任意数据(如文本和图像)转换为可用于机器学习的数字特征(特征值化是为了计算机更好的去理解数据)
a、字典特征提取(特征离散化)
b、文本特征提取
c、图像特征提取(深度学习)
2、特征提取API
sklearn.feature_extraction
字典特征提取: ---类别--> one-hot编码
from sklearn.feature_extraction import DictVectorizer(sparse = True) (Vectorizer 表示向量)
DictVectorizer.fit_transform(x) x:字典或者包含的迭代器返回值:返回sparse矩阵 (sparse 表示稀疏的意思)
DictVectorizer.inverse_transform(x) x:array数组或者sparse矩阵 返回值:转换之前的数据格式
DictVectorizer.get_feature_names() 返回类别的名称
例子:
data =[{"city":"北京","temperature":100},{"city":"上海","temperature":60},{"city":"深圳","temperature":30}]
# 1、实例化一个转换器
transfer = DictVectorizer()
# 2、调用fit_transform()
data_new = transfer.fit_transform(data)
print(data_new)
得到结果为:

为什么结果这么简单呢?因为from sklearn.feature_extraction import DictVectorizer(sparse = True)这里有个默认参数sparse,所以结果就是个稀疏矩阵,它只显示非零数字按位置表示出来,这样为了节省内存,提高加载速度!
那么我们将
transfer = DictVectorizer(sparse=False)
打印得到结果为

结果就一目了然了。我们还可以将这个矩阵的特征值打印出来
print(transfer.get_feature_names())
结果为:

应用场景:
1、数据集当中类别特征比较多的情况下
将数据集的特征 --->字典类型
Dictvectorize转换
2、本身拿到的数据就是字典类型

浙公网安备 33010602011771号