• sklearn.feature_extraction.DictVectorizer


    sklearn.feature_extraction.DictVectorizer:将字典组成的列表转换成向量。(将特征与值的映射字典组成的列表转换成向量)

    1. 特征矩阵行代表数据,列代表特征,0表示该数据没有该特征

    from sklearn.feature_extraction import DictVectorizer
    
    
    # 设置sparse=False获得numpy ndarray形式的结果
    v = DictVectorizer(sparse=False)
    D = [{'foo':1, 'bar':2}, {'foo':3, 'baz':1}]
    
    # 对字典列表D进行转换,转换成特征矩阵
    X = v.fit_transform(D)
    # 特征矩阵行代表数据,列代表特征,0表示该数据没有该特征
    print(X)

    2.  get_feature_names()获取特征列名

    # 获取特征列名
    print(v.get_feature_names())
    ['bar', 'baz', 'foo']

    3. inverse_transform将特征矩阵还原成原始数据

    # inverse_transform将特征矩阵还原成原始数据
    # inverse:相反的
    print(v.inverse_transform(X) == D)

    4. 直接进行转换,不先进行拟合的话,无法识别新的特征

    # 直接进行转换,不先进行拟合的话,无法识别新的特征。即没有fit。
    print(v.transform([{'foo':4, 'unseen_feature':3}]))
    [[ 0.  0.  4.]]

    5. 配合特征选择

    from sklearn.feature_selection import SelectKBest, chi2
    
    # 使用卡方统计筛选出最好的2个特征
    support = SelectKBest(chi2, k=2).fit(X, [0,1])
    
    # 进行筛选,筛选的结果会自动覆盖原有特征矩阵
    print(v.restrict(support.get_support()))
    print(v.get_feature_names())
    DictVectorizer(dtype=<class 'numpy.float64'>, separator='=', sort=True,
                   sparse=False)
    ['bar', 'foo']

    来自: https://www.cnblogs.com/hufulinblog/p/10591339.html

  • 相关阅读:
    使用HTTP协下载文件
    DNS协议 实践
    操作系统学习笔记 线程
    操作系统学习笔记 进程
    操作系统学习笔记 操作系统概述
    操作系统学习笔记 栈
    操作系统学习笔记 概述
    C语言中的fread和fwrite
    【原】python-jenkins信息
    【转】通过python调用jenkins 常用api操作
  • 原文地址:https://www.cnblogs.com/keye/p/11157827.html
Copyright © 2020-2023  润新知