机器学习之scikit-learn特征工程

一.特征工程是什么

特征工程是将原始数据转换为更好的代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性。

二.字典特征抽取

  • 作用:对字典数据进行特征化处理
  • API: sklearn.feature_extraction.DictVectorizer
  • 相关语法:
dic = DictVectorizer()      ###进行实例化
dic.fit_transform(x)        ###x为字典或者包含字典的迭代器;返回值是一个sparse
矩阵
dic.inverse_transform(y)    ###y为array数组或者sparse矩阵;返回值是转换之前的数据格式
dic.get_feature_names()     ###返回类别的名称

三.文本特征抽取

  • 作用:对文本数据进行特征化处理
  • API: sklearn.feature_extraction.text.CountVectorizer
  • 相关语法:
cout = CountVectorizer()    ###进行实例化
cout.fit_transform(x)       ###x为文本或者包含文本字符串的可迭代对象;返回值是一个sparse矩阵
cout.inverse_transform(y)   ###y为array数组或者sparse矩阵;返回值是转换之前的数据格式
cout.get_feature_names()    ###返回类别的名称

在进行中文文本特征抽取时,要对中文进行分词可以使用jieba模块
例如
机器学习之scikit-learn特征工程
机器学习之scikit-learn特征工程

四.TF-IDF特征抽取

  1. 概念:TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜寻引擎应用,作为文件与用户查询之间相关程度的度量或评级。
    • TF:term frequency
      词的频率:指的是某一个给定的词语在该文件中出现的次数
    • IDf:inverse document frequency
      逆文档频率:是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。
    • TF*IDF=词语的重要程度
      某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
  2. API: sklearn.feature_extraction.text.TfidVectorizer
    相关语法:
tf = TfidVectorizer()     ###进行实例化
tf.fit_transform(x)       ###x为文本或者包含文本字符串的可迭代对象;返回值是一个sparse矩阵
tf.inverse_transform(y)   ###y为array数组或者sparse矩阵;返回值是转换之前的数据格式
tf.get_feature_names()    ###返回类别的名称
上一篇:TF-IDF


下一篇:git和GitHub(gitee)