特征生成(特征创建)

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

前言


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


一、特征生成的作用


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完全指南.


总结


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

相关文章
|
2月前
|
机器学习/深度学习 数据采集 算法
探索LightGBM:类别特征与数据处理
探索LightGBM:类别特征与数据处理
334 5
【yolo训练数据集】标注好的垃圾分类数据集共享
【yolo训练数据集】标注好的垃圾分类数据集共享
1499 83
【yolo训练数据集】标注好的垃圾分类数据集共享
|
机器学习/深度学习 存储 自然语言处理
使用特征包方法进行图像类别分类
使用特征包方法进行图像类别分类。这种技术通常也被称为词袋。视觉图像分类是为受测图像分配类别标签的过程。类别可能包含代表几乎任何东西的图像,例如狗、猫、火车、船。
73 0
|
机器学习/深度学习 存储 自然语言处理
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
文档级关系抽取:基于结构先验产生注意力偏差SSAN模型
|
机器学习/深度学习 算法 数据挖掘
使用图进行特征提取:最有用的图特征机器学习模型介绍
使用图进行特征提取:最有用的图特征机器学习模型介绍
387 0
使用图进行特征提取:最有用的图特征机器学习模型介绍
|
机器学习/深度学习 算法 开发者
自组织特征映射神经网络-1| 学习笔记
快速学习自组织特征映射神经网络-1。
117 0
自组织特征映射神经网络-1| 学习笔记
|
存储 机器学习/深度学习 数据可视化
特征工程之类别特征
特征工程之类别特征
|
机器学习/深度学习 算法
特征工程:什么是「组合特征」?要如何处理「高维组合特征」?
为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。在实际问题中,需要面对多种高维特征,简单地两两组合,依然容易存在参数过多、过拟合等问题。
262 0
|
机器学习/深度学习 自然语言处理 算法
03_特征工程—特征转换
03_特征工程—特征转换
324 0
03_特征工程—特征转换
|
机器学习/深度学习 编解码 数据可视化
十种方法实现图像数据集降维
十种方法实现图像数据集降维
十种方法实现图像数据集降维