特征生成(特征创建)

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

前言


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


一、特征生成的作用


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:类别特征与数据处理
537 5
|
26天前
|
机器学习/深度学习 算法 数据挖掘
稀疏促进动态模态分解(SPDMD)详细介绍以及应用
稀疏促进动态模态分解(SPDMD)结合了动态模态分解(DMD)的数学优雅性和稀疏优化技术,有效提取高维数据中的关键特征。SPDMD通过稀疏约束自动筛选出最重要模态,去除冗余信息,提升模型的可解释性和计算效率。该方法在流体动力学、图像处理、时间序列分析及金融数据等领域广泛应用,能够识别主要趋势、周期性模式及异常现象。SPDMD不仅提高了数据分析效率,还为各领域研究提供了强有力的工具。通过自动选择最相关的模态,SPDMD尤其适用于大规模数据集和实时应用。
53 4
|
2月前
|
自然语言处理 数据挖掘
数据特征包括分布特征、统计特征、对比特征、帕累托特征和文本特征
数据特征包括分布特征、统计特征、对比特征、帕累托特征和文本特征
76 4
|
2月前
|
机器学习/深度学习 数据挖掘
数据特征
数据特征
53 1
|
6月前
|
机器学习/深度学习 存储 数据可视化
MambaOut:状态空间模型并不适合图像的分类任务
该论文研究了Mamba架构(含状态空间模型SSM)在视觉任务(图像分类、目标检测、语义分割)中的必要性。实验表明,Mamba在这些任务中效果不如传统卷积和注意力模型。论文提出,SSM更适合长序列和自回归任务,而非视觉任务。MambaOut(不带SSM的门控CNN块)在图像分类上优于视觉Mamba,但在检测和分割任务中略逊一筹,暗示SSM在这类任务中可能仍有价值。研究还探讨了Mamba在处理长序列任务时的效率和局部信息整合能力。尽管整体表现一般,但论文为优化不同视觉任务的模型架构提供了新视角。
103 2
|
机器学习/深度学习 存储 自然语言处理
使用特征包方法进行图像类别分类
使用特征包方法进行图像类别分类。这种技术通常也被称为词袋。视觉图像分类是为受测图像分配类别标签的过程。类别可能包含代表几乎任何东西的图像,例如狗、猫、火车、船。
89 0
|
机器学习/深度学习 存储 自然语言处理
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
|
机器学习/深度学习 自然语言处理 算法
稀疏特征和密集特征
在机器学习中,特征是指对象、人或现象的可测量和可量化的属性或特征。特征可以大致分为两类:稀疏特征和密集特征。
218 0
|
机器学习/深度学习 算法 数据挖掘
使用图进行特征提取:最有用的图特征机器学习模型介绍
使用图进行特征提取:最有用的图特征机器学习模型介绍
465 0
使用图进行特征提取:最有用的图特征机器学习模型介绍
|
存储 机器学习/深度学习 数据可视化
特征工程之类别特征
特征工程之类别特征