独家 | 一文带你读懂特征工程!

简介:

无论它的规模和大小如何,数据已经成为现代企业、公司和组织的一流资产。任何一个智能系统都需要数据驱动,无论它多复杂。每个智能系统的核心,均有一个或多个基于某种数据学习方法的算法,例如机器学习、深度学习或统计方法,它们利用这些数据来生成知识,并在一段时间内提供智能洞察。

算法本身是非常通用的,但无法在普通原始数据上有效发挥作用。因此,需要从原始数据中提取有意义的特征,我们才能够理解和使用这些数据。

任何一个智能数据洞察系统基本上都由端到端的管道组成:

• 先是 获取原始数据
• 然后利用数据处理技术,从这些数据中 获取、处理和提取有意义的特征和属性
• 最后,通常利用统计模型或机器学习模型等技术 对这些特征进行 建模

如果有必要的话,还需要根据手头要解决的问题部署该模型以供将来使用。

f6341d5fdbd51a8aa7df92d4c1b41edf361481c8

获取原始数据后,直接在数据之上构建模型是鲁莽的,因为我们无法从普通原始数据中获得想要的结果或性能,而且算法本身也不会自动从中提取有意义的特征。在上图中指出的数据准备方面,在对原始数据进行必要的清洗、预处理分析之后,便可以采用多种方法从中提取有意义的属性或特征。特征工程是一门艺术,也是一门科学,这也是为什么数据科学家在建模之前通常会把70%的时间花在数据准备上。

“特征工程是将原始数据转化为特征的过程,这些特征可以更好地向预测模型描述潜在问题,从而提高模型对未见数据的准确性。”

-Jason Brownlee博士

这让我们深入了解了为什么特征工程是一个将数据转化成作为机器学习模型输入的特征的过程,换句话说,高质量的特征有助于提高模型整体的性能和准确性。特征在很大程度上与基本问题相关联。

因此,即使机器学习任务在不同的场景中可能是相同的,比如将物联网事件分类为正常和异常行为,或者将客户情绪分类,但每个场景中提取的特征都会有很大的不同。

什么是特征?

特征通常是建立在原始数据之上的特定表示,它是一个单独的可测量属性,通常用数据集中的列表示。对于一个通用的二维数据集,每个观测值由一行表示,每个特征由一列表示,对于每一个观测具有一个特定的值。

f67b7aaca564df8a30ecff1a97762840ef426d5e

因此,就像上图中的例子一样,每行通常表示一个特征向量,所有观察到的全部特征集形成一个二维特征矩阵,也称为特征集。这类似于用来表示二维数据的数据框或电子表格。机器学习算法通常与这些数值矩阵或张量一起工作,因此绝大多数特征工程技术都是将原始数据转换为一些数值表达,以便算法理解。

基于数据集的特征可以分为两大类:

• 固有的原始特征 是直接从数据集获得的,没有额外的数据操作。
• 派生特征 通常是从特征工程中获得的,是从现有的数据属性中提取出来的特征。

举一个简单的例子:通过将当前日期减去订单日期,可以从包含“订单日期”的订单数据集中创建一个新的“订单履行日期”。另一方面,在特定的深度学习算法中,特征通常比较简单,因为算法本身会内部转化数据。这种方法需要的数据量会比较大,并以牺牲解释性为代价。然而,在图像处理或自然语言处理用例中,这样的折中方法往往是值得的。

对于公司面临的大多数其他用例,例如预测分析,特征工程是将数据转换成机器学习所需要的格式。特征的选择对模型的解释性和性能都至关重要。如果没有特征工程,今天的大公司就无法部署精确的机器学习系统。

特征工程

数值数据通常以标量值的形式描述观测、记录或测量数据。在这里,我们所说的数值数据是指连续数据,而不是通常用来表示分类数据的离散数据。数值数据也可以是向量值,其中向量中的每个值或实体都可以表示一个特定的特征。整数和浮点数是连续数值数据中最常见和最广泛使用的数值数据类型。

即使数值数据可以直接输入机器学习模型,在构建模型之前,仍然需要设计与场景、问题和领域相关的特征。因此,对特性工程的需求仍然存在。


原文发布时间为:2018-08-23

本文作者:Bhalchandra

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”。

相关文章
|
分布式计算 Hadoop 大数据
【大数据开发技术】实验04-HDFS文件创建与写入
【大数据开发技术】实验04-HDFS文件创建与写入
762 0
|
存储 计算机视觉 Python
BGR与RGB
BGR与RGB
3381 1
|
3月前
|
虚拟化 iOS开发 开发者
Mac 下载 VMware 11.1.0-1.dmg 后如何安装?超简单教程(附安装包)
本教程介绍在Mac上安装VMware 11.1.0的完整步骤,适用于OS X 10.8-10.10系统。包括版本兼容性确认、安装包下载、拖拽安装方法及首次运行时的“无法验证开发者”问题解决。若系统为macOS 11及以上,建议使用更新版本的VMware Fusion。安装后可正常创建和运行虚拟机。
1248 0
|
存储 SQL 运维
OLAP数据库选型指南:Doris与ClickHouse的深入对比与分析
OLAP数据库选型指南:Doris与ClickHouse的深入对比与分析
|
C++ Python
python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用
python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用
696 1
|
机器学习/深度学习 数据采集 算法
推荐引擎离线算法与在线算法的探索与实践
推荐引擎是现代互联网产品中至关重要的组成部分。离线算法和在线算法分别负责处理大量数据的预处理和模型训练,以及快速响应用户的实时请求。通过合理的架构设计和算法选择,可以构建出高效且个性化的推荐系统,从而提升用户体验,增加用户满意度和留存率。未来,随着技术的发展,推荐引擎将更加智能化和个性化,为用户提供更加精准的服务。
|
Java API 领域建模
领域驱动设计(DDD)-简单落地
一、序言     领域驱动设计是一种解决业务复杂性的设计思想,不是一种标准规则的解决方法。在本文中的实战示例可能会与常见的DDD规则方法不太一样,是简单、入门级别,新手可以快速实践版的DDD。如果不熟悉DDD设计思想可看下基础思想篇 二、设计阶段     领域建模设计阶段常见的方法有 四色建模法、EventSourcing等 推荐一篇博文正确理解领域建
12636 1
|
监控 算法 Java
CPU突然被打满的原因(全方位分析)
CPU突然被打满的原因(全方位分析)
|
Python
【零碎知识】【Python】@classmethod 与 @staticmethod
【零碎知识】【Python】@classmethod 与 @staticmethod
320 0
|
监控 Java 数据库
java线上服务问题排查总结
java线上服务问题排查 1、业务日志相关 如果应用系统出现异常,一般都会在业务日志中体现 查看日志问题常用命令,以标装springboot应用为例: 进到标装日志目录:cd /wls/applogs/rtlog/spri* --善用tab键 统计当天业务日志中ERROR出现数量:egre.
47589 0