sklearn 特征提取

本文介绍了使用sklearn库进行特征提取的方法,包括从字典加载特征、特征散列、词袋表示、TF-IDF以及图像特征提取。字典向量化适合作为机器学习输入,特征散列用于高效处理大规模数据,文本特征提取则通过TF-IDF等技术将文本转化为数值特征,图像特征提取则涉及图像处理。
摘要由CSDN通过智能技术生成

Feature extraction 特征提取

参考自官方文档http://scikit-learn.org/stable/modules/feature_extraction.html

注意:特征提取与特征选择不同:前者包括将任意数据(如文本或图像)转换为可用于机器学习的数值特征。后者是应用这些特征的机器学习技术。

从字典加载特征

DictVectorizer类可将表示为标准Python字典(dict)对象列表的特征数组转换为scikit学习估计器能使用使用的NumPy / SciPy表示。

虽然Python的dict不是特别快,但它具有使用方便,稀疏(不需要存储缺失特征)和以键值对存储特征的优点。

measurements=[
    {
  'city':'Dubai','temperature':33},
    {
  'city':'London','temperature':12.},
    {
  'city':'San Fransisico','temperature':18.},
]
from sklearn.feature_extraction import DictVectorizer
vec=DictVectorizer()
vec.fit_transform(measurements).toarray()#这里对文本的处理方式类似于one_hot编码方式。原数据如果是数字类型则不变
array([[  1.,   0.,   0.,  33.],
       [  0.,   1.,   0.,  12.],
       [  0.,   0.,   1.,  18.]])
vec.get_feature_names()
['city=Dubai', 'city=London', 'city=San Fransisico', 'temperature']

DictVectorizer在自然语言处理(NLP)中也十分有用, 下面是‘The cat sat on the mat.‘中围绕’sat’一词提取的特征

pos_window = [
    {
        'word-2': 'the',
        'pos-2': 'DT',
        'word-1': 'cat',
        'pos-1': 'NN',
        'word+1': 'on',
        'pos+1': 'PP',
    },
    # in a real application one would extract many such dictionaries
]

该描述可以被矢量化成适合于馈送到分类器的稀疏二维矩阵

vec=DictVectorizer()
pos_vectorized=vec.fit_transform(pos_window)
pos_vectorized
<1x6 sparse matrix of type '<class 'numpy.float64'>'
    with 6 stored elements in Compressed Sparse Row format>
pos_vectorized.toarray()
array([[ 1.,  1.,  1.,  1.,  1.,  1.]])
vec.get_feature_names()
['pos+1=PP', 'pos-1=NN', 'pos-2=DT', 'word+1=on', 'word-1=cat', 'word-2=the']

特征散列 Feature Hashing

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值