zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    废水回收
    XJOI网上同步训练DAY6 T2
    XJOI网上同步训练DAY6 T1
    Codeforces 351B Jeff and Furik
    对拍 For Linux
    Codeforces 432D Prefixes and Suffixes
    Codeforces 479E Riding in a Lift
    Codeforces 455B A Lot of Games
    Codeforces 148D Bag of mice
    Codeforces 219D Choosing Capital for Treeland
  • 原文地址:https://www.cnblogs.com/keye/p/11157827.html
Copyright © 2011-2022 走看看