当前位置: 首页 > 开发杂谈 >

Day 15 : 特徵工程 tf.Tramsform 介绍

  • 特徵工程是机械学习相当重要的一环,有处理数据以及实行 ML/DL 任务经验者对特徵工程一定不陌生,一般来说常以 Pandas 及 Sklearn 完成任务,也有用 Excel 打天下,能够善用的就是好工具。
  • 到了用於生产的机械学习情境,前述的工具在使用上就有限制,首先您是在生产过程 Online 进行特徵工程,资料流底层可能是 Apache Spark , Flink 等批次/串流/分散式运算情境,对於不同特徵的特徵工程计算会有时差、等待等情形,您所熟悉的模组恐怕较难因应。
  • 基於前述想法,本篇介绍常用的特徵工程,并介绍用於生产中的机械学习 TFX 中的特徵工程组件 tf.Tramsform

用於生产的特徵工程 tf.Tramsform

  • tf.Tramsform 做 TFX 的其中一个组件,主要任务为特徵工程。

  • tf.Tramsform 为能运用在平行运算可扩展的丛集环境,系基於 Apache Beam 的框架,您所写的TFT特徵工程操作,虽然写起来像 TensorFlow ,底层已转化为用 Beam 计算。

  • 您安排好的特徵工程通常写在preprocessing_fn()自订函式中,譬如某些特徵的资料型态转换、资料清洗、标准化等,甚至可能复数特徵进行Bucketize、Feature Cross 等,把特徵工程的逻辑写入,您也可以设想,现在的工作是在之後部署时面对「未知」资料流的资料工程手段。

  • 接着我们把焦点聚焦到「训练」与「部署」的情形,在 TensorFlow Dev Summit 2018 介绍 tf.Tramsform 用於生产阶段式转化为 tf.Graph 的运作,转换为tf.Graph 最大好处是可以摆脱对 Python 编译器的依赖,可以实现 TensorFlow 并行并在多个设备上高效运行,这样的转换带来训练资料与部署时的特徵工程作业一致,也带来在不同装置环境一致的好处,消逆了Training-Serving Skew

  • 举例有 X, Y, Z 等3个特徵,分别进行特徵工程,并且在分散式的运算情境中进行。

  • 前述的运算在 tf.Tramsform 称之为Analyze,分析出的计算套在tf.Graph 运算,两者情境感受一致。

  • 最後您可以用tft.apply_save_model 储存模型。

特徵工程与 tf.Tramsform 模组常用方法整理

  • 数值范围的特徵工程

    • Scaling
    • Normalizing
    • Standardizing
      tft.scale_to_z_score
      tft.scale_0_to_1
      tft.scale_to_qaussian
      
  • 群组化的特徵工程

    • Bucketizing
      tft.bucketize
      tft.quantiles
      tft.apply_buckets
      
  • 词汇型的特徵工程

    • Bag of words
    • TF-IDF
    • Ngrams
      tft.bag_of_words
      tft.tfidf
      tft.ngrams
      tft.string_to_int
      
  • 降维的特徵工程

    • PCA
      tft.pca
      
  • 特徵编码的特徵工程

    • One-Hot encoding
    • Embedding
      #0-N
      pandas.factorize() 
      sklearn.preprocessing.LabalEncoder() 
      
      #One-Hot
      tf.one_hot
      pandas.get_dummies()
      sklearn.preprocessing.OneHotEncoder()
      
  • 组合特徵的特徵工程

    • Feature crossing
      tf.string_join
      tft.string_to_int
      

小结

  • 特徵工程是机械学习的大事,本篇试图介绍 TFX 的特徵工程组件 tf.Tramsform ,主要是因为网路上特徵不缺乏特徵工程教学,但用於生产的机械学习解决方案考虑比较严谨,可以看到 tf.Tramsform 为了能在生产环境运行,底层采用 Apache Beam,并且转化为 tf.Graph 来实现高速、并行、不局限 Python 环境的特徵工程,这在部署在服务器、web、手机装置有较好的适应能力。
  • 後续将介绍实际运行的程序,会更清晰,我们明天见。

/images/emoticon/emoticon07.gif

参考


相关文章:

  • 如何给亚马逊新品listing进行定价
  • shopee虾皮售后怎么做
  • Shopee卖家关于XDE服务的一些事
  • 远端系列 - 1:什麽是本地数据库(local repository)、远端数据库(remote repository)?
  • EP15 - 中场闲聊,所以我说大家的 DevOps 和 CI/CD 呢?
  • 亚马逊入驻管理规则详解
  • 软件工程师从新手到高手的流程
  • lazada​双12广告投放检查清单——利用A2C数据
  • 无限风光在险峰 结案会议
  • Cotex-M55 首篇
  • 鬼故事 - 不修拉,这辈子都不可能修的
  • Shopee卖家怎样优化店铺
  • Day13 Android - banner(横幅广告)应用(2)
  • wish商户平台Fulfillment By Store (FBS) 概述
  • 新手小白需要知道的亚马逊托盘规则
  • PayPal国外买东西教程:银联卡(国内储蓄卡信用卡)怎么用PayPal买国外的东西更安全
  • 一键脚本:Aria2+Aria2Ng+OneIndex | 自动上传OneDrive
  • G口服务器推荐:G口服务器VPS哪家好
  • 教程/魔改BBR 一键安装脚本 for CentOS/Debian 7+
  • 支持支付宝的国外VPS主机服务器大全:用支付宝买国外网站空间服务器VPS
  • 让 Rank Math SEO 输出关键词 keywords meta 字段信息
  • 最新虚拟信用卡无限开卡渠道大全
  • WordPress 通过代码实现 Ajax 自动完成搜索
  • 瑞士银行开户指南:0门槛开户欧洲银行卡教程【Dukascopy开户教程】
  • 301 重定向怎么做?301 重定向教程和方法
  • 礼品卡和虚拟信用卡的区别:Prepaid Debit Card和Virtual Credit Card区别
  • TikTok与LiveRamp合作,助力品牌安全可靠地触达受众
  • 海外适合游戏投放的渠道有哪些?
  • 虚拟卡服务商大全,能开通虚拟卡的几个服务商
  • Hostinger主机如何添加一个新的域名(网站),如何更改主机的主域名(Main Domain)