zoukankan      html  css  js  c++  java
  • 机器学习-数据的特征抽取

    数据的特征抽取

    现实世界中多数特征都不是连续变量,比如分类、文字、图像等,为了对非连续变量做特征表述,需要对这些特征做数学化表述,因此就用到了特征提取. 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_)
    

    图像特征提取

  • 相关阅读:
    HTTP Header 详解
    面试题----网页/应用访问慢突然变慢,如何定位问题
    PHP实现斐波那契数列
    常见的HTTP返回状态值
    通过实例理解单列索引、多列索引以及最左前缀原则
    Btree索引和Hash索引
    遍历和删除文件夹
    面试题之----禁掉cookie的session使用方案
    面试题之----写个函数来解决多线程同时读写一个文件的问题
    heredoc
  • 原文地址:https://www.cnblogs.com/20183544-wangzhengshuai/p/14327870.html
Copyright © 2011-2022 走看看