特征工程介绍

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。

(1)什么是特征工程

特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。

意义:会直接影响机器学习的效果

(2)特征工程的位置与数据处理的比较

sklearn:用来做特征工程(对于特征的处理提供了强大的接口)

pandas:数据清洗、数据处理(一个数据读取非常方便以及基本的处理格式的工具)

特征工程包括内容

  • 特征抽取/提取
  • 特征预处理
  • 特征降维

特征提取

(1)将任意数据(如文本或图像)转换为可用于机器学习的数字特征

注:特征值是为了计算机更好的去理解数据

  • 字典特征提取(特征离散化)
  • 文本特征提取
  • 图像特征提取

(2)特征提取API

sklearn.feature_extraction
①字典特征提取

作用:对字典数据进行特征值化

sklearn.feature_extraction.DictVectorizer(sparse=True,...)

  • DictVectorizer.fit_transform(X)

    X:字典或者包含字典的迭代器

    返回值:返回sparse矩阵

  • DictVectorizer.inverse_transform(X)

    X:array数组或者sparse矩阵

    返回值:转换之前数据格式

  • DictVectorizer.get_feature_names() 返回特征名称

使用:

from sklearn.feature_extraction import DictVectorizer
def dict_demo():
    # 字典特征提取
    data=[{'city':'北京','temperature':100},{'city':'上海','temperature':60},{'city':'深圳','temperature':30}]
    #1、实例化一个转换器  sparse=False返回二维数组,sparse=Ture返回sparse矩阵(稀疏矩阵)
    #稀疏矩阵  将非零值按位置表示出来
    transfer=DictVectorizer(sparse=False)
    #2、调用fit_transform()
    result=transfer.fit_transform(data)
    print("result:\n",result)
    return None

注:对于特征当中存在的类别信息会做one-hot编码处理

②文本特征提取

文本特征提取内容较多,放在下一篇博文中详细说明:
机器学习框架sklearn之文本特征提取

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐