• 1.2_数据的特征抽取


    现实世界中多数特征都不是连续变量,比如分类、文字、图像等,为了对非连续变量做特征表述,需要对这些特征做数学化表述,因此就用到了特征提取. sklearn.feature_extraction提供了特征提取的很多方法

    分类特征变量提取

    我们将城市和环境作为字典数据,来进行特征的提取。

    sklearn.feature_extraction.DictVectorizer(sparse = True)

    将映射列表转换为Numpy数组或scipy.sparse矩阵

    • sparse 是否转换为scipy.sparse矩阵表示,默认开启

    方法

    fit_transform(X,y)

    应用并转化映射列表X,y为目标类型

    inverse_transform(X[, dict_type])

    将Numpy数组或scipy.sparse矩阵转换为映射列表

    from sklearn.feature_extraction import DictVectorizer
    onehot = DictVectorizer() # 如果结果不用toarray,请开启sparse=False
    instances = [{'city': '北京','temperature':100},{'city': '上海','temperature':60}, {'city': '深圳','temperature':30}]
    X = onehot.fit_transform(instances).toarray()
    print(onehot.inverse_transform(X))

    文本特征提取(只限于英文)

    文本的特征提取应用于很多方面,比如说文档分类、垃圾邮件分类和新闻分类。那么文本分类是通过词是否存在、以及词的概率(重要性)来表示。

    (1)文档的中词的出现

    数值为1表示词表中的这个词出现,为0表示未出现

    sklearn.feature_extraction.text.CountVectorizer()

    将文本文档的集合转换为计数矩阵(scipy.sparse matrices)

    方法

    fit_transform(raw_documents,y)

    学习词汇词典并返回词汇文档矩阵

    from sklearn.feature_extraction.text import CountVectorizer
    content = ["life is short,i like python","life is too long,i dislike python"]
    vectorizer = CountVectorizer()
    print(vectorizer.fit_transform(content).toarray())

    需要toarray()方法转变为numpy的数组形式

    温馨提示:每个文档中的词,只是整个语料库中所有词,的很小的一部分,这样造成特征向量的稀疏性(很多值为0)为了解决存储和运算速度的问题,使用Python的scipy.sparse矩阵结构

    (2)TF-IDF表示词的重要性

    TfidfVectorizer会根据指定的公式将文档中的词转换为概率表示。(朴素贝叶斯介绍详细的用法)

    class sklearn.feature_extraction.text.TfidfVectorizer()

    方法

    fit_transform(raw_documents,y)

    学习词汇和idf,返回术语文档矩阵。

    from sklearn.feature_extraction.text import TfidfVectorizer
    content = ["life is short,i like python","life is too long,i dislike python"]
    vectorizer = TfidfVectorizer(stop_words='english')
    print(vectorizer.fit_transform(content).toarray())
    print(vectorizer.vocabulary_)

    图像特征提取

  • 相关阅读:
    数据持久化编程学习总结
    Boost Replaceable by C++11 language features or libraries
    【敬业福bug】支付宝五福卡敬业福太难求 被炒至200元
    由文字生成path后制作写字的动画
    CSS经典布局之弹性布局
    HDU2082 找单词 【母函数】
    HDOJ 题目2475 Box(link cut tree去点找祖先)
    DELPHI中MDI子窗口的关闭 和打开
    sql语句中日期相减的操作
    Delphi编码规范
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/10070190.html
Copyright © 2020-2023  润新知