ベ断桥烟雨ミの学习笔记 ベ断桥烟雨ミの学习笔记
首页
机器学习
技术杂谈
  • Qlittle - 一个笔记Blog (opens new window)
  • 冰白寒祭的博客 (opens new window)
GitHub (opens new window)
首页
机器学习
技术杂谈
  • Qlittle - 一个笔记Blog (opens new window)
  • 冰白寒祭的博客 (opens new window)
GitHub (opens new window)
  • 蓝桥云课

    • 实验一
    • 挑战一
    • 实验二
    • 挑战二
    • 实验三
    • 挑战三
    • 实验四
    • 挑战四
    • 实验五
    • 挑战五
    • 实验六
      • 特征提取
        • 文本数据
        • 图像数据
        • 地理空间数据
        • 日期和时间数据
        • Web 数据
      • 特征转换
        • 标准化和分布变换
        • 缺失值补全
      • 特征选择
        • 网格搜索
    • 挑战六
    • 实验七
    • 挑战七
    • 实验八
    • 挑战八
    • 实验九
    • 挑战九
  • 机器学习
  • 蓝桥云课
Dragon1573
2021-09-28
目录

实验六

# 特征工程和特征选择

# 特征提取

在实践中,很少有数据是以矩阵形式保存、可以直接使用的,这就是为什么需要对数据进行特征提取。

# 文本数据

  1. 对英文文本进行 切分词(tokenzie) 操作,
    • 最简单的情形下,一个单元就是一个单词(中文分词相对麻烦,但有另外的分词器可以完成,例如 Jieba 库);
    • 直接按单词切分可能会损失一些信息,如词组、短语和俚语;
  2. 对单词进行正则化(也称 词形规范化 ,有 词干提取 stemming 和 词形还原 lemmatization 两种形式),
  3. 对单词序列进行向量化表示( 词袋 ),以稀疏词频数组形式表示。
    • 词袋模型会让词序信息丢失
    • 可以使用 N-Gram 模型解决
    • 语料库中的专有名词具有更高的权重,区分文档效果会更好,可以借助 词频-逆向文本频率(TF-IDF) 模型解决
  4. 除了上述传统模型,还有 Word2Vec 、 GloVe 和 Fasttext 模型。
    • Word2Vec 是词嵌入算法的一个特殊情形
    • Word2Vec 可以向量化超高维空间的单词,还能比较它们的语义相似度
    • Word2Vec 模型并不理解单词的意思

# 图像数据

  • 图像预处理有流行的预训练网络
  • skimage 和 SimpleCV 能够实现检测角点、区域边界、色彩分布统计等底层特征提取功能
  • 现有的图像分析问题一般直接使用 卷积神经网络(CNN) 模型,Keras for Tensorflow 中的 ResNet50 预训练模型可以实现图像分类
  • 英文 OCR 识别可以使用 pytesseract 库(Linux 上需要配合 tesseract-ocr 程序和 libtesseract-dev 动态链接库)
  • Jupyter Notebook 不具备直接打开 Pillow 图片的能力,需要借助 matplotlib.pyplot.imshow() 进行显示

# 地理空间数据

  • 地理空间数据常常以地址或坐标(经纬度)的形式保存
  • 根据任务需求的不同,可能需要用到两种互逆的操作:地理编码(由地址重建坐标点)和逆地理编码(由坐标点重建地址)
    • 可以借助外部 API (Google Maps 或 OpenStreetMaps)实现转换
    • GeoPy 是地理空间处理的通用封装
    • 大量数据考虑使用离线版 OSM ,少量或微量数据可以考虑 reverse_geocoder
  • GPS 坐标噪声、特定地区和坐标加密(国际 WGS84 、国标 GCJ02 和百度 BD09)

# 日期和时间数据

对一些基于距离的机器学习算法(KNN、SVM 或 K-Means),将时间投影为圆弧长能够保留 时间差 信息,对它们处理时间数据很有帮助。

# Web 数据

  • User Agent 包含了用户身份信息,可以用于提取操作系统、设备信息、区分浏览器
  • PyPI 的 user_agents 库可以用于解析 UA
  • 可以从 Request Headers 中获取用户来源(refferer)、常用语言(Accept-Language)等元信息
  • IP 地址可以与地理信息(GeoIP 数据库)、ISP、连接方式相关联
    • 网络代理和数据库过期可能引入噪声
    • 可以通过其他手段辨认 IP 来源(直连或代理)
    • GeoIP 与 Accept-Language 可以作为用户定位的双因子认证

# 特征转换

决策树及其变体(随机森林、梯度提升)变得更加流行,因为它们在异常分布上的鲁棒性很好。

# 标准化和分布变换

  • 标准缩放(Standard Scaling),又称 Z 值标准化(Z-score normalization),常用于距离计算:

    z=x−μσ
  • 极小极大缩放(MinMax Scaling),常用于可视化:

    Xnorm=X−XminXmax−Xmin
  • 对数正态分布(Logarithmic Standard Scaling),适用于描述薪水、安保费用、城区人口、网络文章评论等信息,可以被应用于任何右重尾的分布

  • Box-Cox 转换,对数转换是其一个特例

  • Yeo-Johnson 转换(将应用范围扩展至负数)

# 缺失值补全

  • pandas.DataFrame.fillna 和 sklearn.preprocessing.Imputer 都可以用于缺失值处理
  • 缺失值处理方式:
    • 将缺失值编码为一个单独的空值,比如,类别变量使用 N/A 值;
    • 使用该特征最可能的值(数值变量使用均值或中位数,类别变量使用最常见的值);
    • 或者,反其道而行之,使用某个极端值(比较适合决策树,因为这样使得决策树模型可以在缺失值和未缺失值间分割);
    • 对于有序数据(例如时序数据),使用相邻值。
    • 使用固定值填充
  • 数据预处理比创建模型花去的时间更多,因此简单的使用固定值可能会埋下隐患,损害模型

# 特征选择

  • 数据越多,计算复杂度越高
  • 部分算法会将噪声(不含信息量的特征)视作信号,导致过拟合

# 网格搜索

  • 穷尽特征选取(Exhaustive Feature Selection):在特征子集上训练模型,储存结果,在不同子集上重复这一过程,比较模型的质量以识别最佳特征集
  • 循序特征选取(Sequential Feature Selection):固定一个较小的数字 N,迭代所有 N 特征的组合,选定最佳组合,接着迭代 N+1 特征组合,其中,之前的最佳组合固定不变,仅仅考虑一个新特征。重复这些迭代过程,直到达到特征最大值,或者直到模型的表现停止明显的提升
上次更新: 2021/09/28, 20:57:56
挑战五
挑战六

← 挑战五 挑战六→

Theme by Vdoing | Copyright © 2021-2023 Dragon1573 | CC-BY-SA 4.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式