特征生成(特征创建)

简介: 特征生成(特征创建)

前言


数据决定了模型效果的上限,使用复杂模型只能逼近上限!


一、特征生成的作用


1、增加特征表达能力,提升模型效果。

2、可以融入业务上的理解设计特征,增加模型的可解释性。


二、特征生成的方法


2-1、转换方式


转换方式

1、数值类型:加减乘除等运算、排序编码、多个列统计。

2、字符串类型


  • 截取:当字符类型的值过多时,通常可以对字符类型变量做截取,以减少模型的过拟合。
  • 统计频次:统计字符出现的频次。
  • 统计字符长度:统计字符串出现的长度。


3、日期类型:日期间隔、月份、周几、小时数。

分组聚合方式:计数、求最大值、最小值、平均值、求和、方差、均差、绝对值自定义函数。

# 
import numpy as np
df['c'] = np.sum(df[['a', 'b']], axis=1)
# 其他聚合函数
# np.var()
# np.max()
# np.min()
# np.abs()

使用决策树创造新特征


三、自动化特征生成工具FeatureTools


介绍:Featuretools是执行自动化特征工程的框架。它擅长将时间和关系数据集转换为用于机器学习的特征矩阵, 把常见的特征工程方法进行了自动化封装,即所谓的dfs(深度特征合成).


3-1、涉及概念&安装


实体:即一张表或者是一个dataframe,多张表的集合叫做实体集。一个实体可以看作是一个pandas的数据框表示,多个实体的集合称为实体集合。

关系:表之间的关联键的定义。

算子:指的是一些特征工程的函数。

原理:DFS(一种特征工程方法,支持从单个或者多个数据框中构造新特征, 把常见的特征工程方法进行了自动化封装。)通过将特征算子应用于Entityset的实体关系来构建新特征。

安装:

pip install featuretools -i https://mirror.baidu.com/pypi/simple


3-2、官方小栗子

导入数据集

data :相当于有三个数据表,包括客户、会话、事务表。

import featuretools as ft
data = ft.demo.load_mock_customer()
customers_df = data["customers"]
customers_df


输出


cb9e7bd0c6e642c1b9a401eca883970b.png

sessions_df = data["sessions"]
sessions_df.sample(5)


输出

06afb2ffe01144309595662c320ea22b.png

transactions_df = data["transactions"]
transactions_df.sample(5)


输出

b55bfba1687e4ac397ef37fb4a238228.png

# 指定字典,包含数据集中所有数据表的字典,数据表与其索引列和时间索引列一起传入。
dataframes = {
     "customers" : (customers_df, "customer_id"),
     "sessions" : (sessions_df, "session_id", "session_start"),
     "transactions" : (transactions_df, "transaction_id", "transaction_time")
}
# 指定数据表之间的关系
# 当两个数据帧具有一对多关系时,我们将“一个”数据帧称为“父数据帧”。父项和子项之间的关系定义如下:
# (parent_dataframe, parent_column, child_dataframe, child_column)
# 创建数据表之间的关联
relationships = [("sessions", "session_id", "transactions", "session_id"),
                 ("customers", "customer_id", "sessions", "customer_id")]
# 使用深度特征合成构建特征。
# 设置主实体为customers
feature_matrix_customers, features_defs = ft.dfs(
    dataframes=dataframes,
    relationships=relationships,
    target_dataframe_name="customers",
)
feature_matrix_customers

输出:


faa5f8d77ff2434fa0aae6a8d0bfec1d.png


四、自动化特征生成简易算法包ATOM


参考文章:

FeatureTools官方文档.

featuretools完全指南.

featuretools入门尝试.

机器学习实战 | 自动化特征工程工具Featuretools应用.

阿里云开发者社区:featuretools完全指南.


总结


自古表白多白表,常与生人道人生。

相关文章
|
6月前
|
机器学习/深度学习 数据采集 算法
探索LightGBM:类别特征与数据处理
探索LightGBM:类别特征与数据处理
549 5
|
1月前
|
自然语言处理 大数据 测试技术
PAIRDISTILL: 用于密集检索的成对相关性蒸馏方法
在大数据时代,有效的信息检索技术对于从海量数据中提取相关信息至关重要。国立台湾大学的研究者提出了一种名为PAIRDISTILL的新方法,通过成对相关性蒸馏,利用成对重排序器提供的细粒度训练信号,显著提升了密集检索模型的性能。该方法不仅在MS MARCO等基准测试中表现出色,还在领域外和零样本场景中展现出强大的泛化能力,为密集检索领域提供了新的研究方向。
78 13
PAIRDISTILL: 用于密集检索的成对相关性蒸馏方法
|
2月前
|
自然语言处理 数据挖掘
数据特征包括分布特征、统计特征、对比特征、帕累托特征和文本特征
数据特征包括分布特征、统计特征、对比特征、帕累托特征和文本特征
90 4
|
2月前
|
机器学习/深度学习 数据挖掘
数据特征
数据特征
71 1
|
6月前
|
机器学习/深度学习 存储 数据可视化
MambaOut:状态空间模型并不适合图像的分类任务
该论文研究了Mamba架构(含状态空间模型SSM)在视觉任务(图像分类、目标检测、语义分割)中的必要性。实验表明,Mamba在这些任务中效果不如传统卷积和注意力模型。论文提出,SSM更适合长序列和自回归任务,而非视觉任务。MambaOut(不带SSM的门控CNN块)在图像分类上优于视觉Mamba,但在检测和分割任务中略逊一筹,暗示SSM在这类任务中可能仍有价值。研究还探讨了Mamba在处理长序列任务时的效率和局部信息整合能力。尽管整体表现一般,但论文为优化不同视觉任务的模型架构提供了新视角。
107 2
|
6月前
|
机器学习/深度学习 XML 编解码
ENVI实现最小距离法、最大似然法、支持向量机遥感图像监督分类与分类后处理操作
ENVI实现最小距离法、最大似然法、支持向量机遥感图像监督分类与分类后处理操作
291 1
|
机器学习/深度学习 存储 自然语言处理
使用特征包方法进行图像类别分类
使用特征包方法进行图像类别分类。这种技术通常也被称为词袋。视觉图像分类是为受测图像分配类别标签的过程。类别可能包含代表几乎任何东西的图像,例如狗、猫、火车、船。
92 0
|
机器学习/深度学习 存储 自然语言处理
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
|
机器学习/深度学习 自然语言处理 算法
稀疏特征和密集特征
在机器学习中,特征是指对象、人或现象的可测量和可量化的属性或特征。特征可以大致分为两类:稀疏特征和密集特征。
223 0
|
存储 机器学习/深度学习 数据可视化
特征工程之类别特征
特征工程之类别特征