阿里云天池金融风控训练营【Task3 特征工程】学习笔记

本文是阿里云天池金融风控训练营Task3的学习笔记,主要探讨特征工程,包括数据预处理(缺失值填充、时间格式处理、特征编码等)、异常值处理、数据分桶及特征交互等,旨在提升模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

金融风控训练营 Task3 特征工程 学习笔记

本学习笔记为阿里云天池龙珠计划金融风控训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampfr

一、学习知识点概要

二、学习内容

1. 内容介绍
  • 数据预处理
    • 缺失值的填充
    • 时间格式处理
    • 对象类型特征转换到数值
  • 异常值处理
    • 基于3segama原则
    • 基于箱型图
  • 数据分箱
    • 固定宽度分箱
    • 分位数分箱
      • 离散数值型数据分箱
      • 连续数值型数据分箱
    • 卡方分箱(选做作业)
  • 特征交互
    • 特征和特征之间组合
    • 特征和特征之间衍生
    • 其他特征衍生的尝试(选做作业)
  • 特征编码
    • one-hot编码
    • label-encode编码
  • 特征选择
    • 1 Filter
    • 2 Wrapper (RFE)
    • 3 Embedded
2. 代码示例
1. 此次学习所用到的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns  #基于matplotlib的图形可视化
import datetime
from tqdm import tqdm  #进度提示信息
from sklearn.preprocessing import LabelEncoder  
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.preprocessing import MinMaxScaler
import xgboost as xgb
import lightgbm as lgb  #基于直方图的切分点算法
from catboost import CatBoostRegressor #基于对称决策树为基学习器实现
import warnings
from sklearn.model_selection import StratifiedKFold, KFold
from sklearn.metrics import accuracy_score, f1_score, roc_auc_score, log_loss
warnings.filterwarnings('ignore')
2. 特征预处理
  • 缺失值处理

    参考于:

    博客缺失值填充的几种方法

    1. 填充固定值

      df.fillna(0,inplace=True) #填充0
      df.fillna(df.mean(),inplace=True) #填充均值
      df.fillna(df.median(),inplace=True) #填充中位数
      df.fillna(df.mode(),inplace=True) #填充众数
      
    2. 填充上下条的数据

      df.fillna(method='pad',inplace=True) #填充前一条数据的值,但前一条不一定有值
      df.fillna(method='bfill',inplace=True) #填充后一条数据的值,但后一条不一定有值
      
    3. 填充插值得到的数据

      用插值法拟合出缺失的数据,再进行填充

      for f in features: #插值法填充
          df[f] = df[f].interpolate()
      df.dropna(inplace=True)
      
    4. 填充KNN数据

      填充近邻的数据,用knn计算临近的k个数据,再填充均值

      from fancyimpute import KNN
      
      train_data_x = pd.DataFrame(KNN(k=6).fit_transform(train_data_x), columns=features)
      
    5. 填充模型预测的值

      把缺失值作为新的label,建立模型得到预测值,然后进行填充

      选择某个缺失值数量适当的特征采用随机森林RF进行拟合,其他缺失特征采用均值进行填充

  • 时间格式处理

    #转化成时间格式
    for data in [data_train, data_test_a]:
        data['issueDate'] = pd.to_datetime(data['issueDate'],format='%Y-%m-%d')
        startdate = datetime.datetime.strptime('2007-06-01'
### 阿里云天池蒸汽预测的特征工程技术方案 在阿里云天池中的工业蒸汽量预测问题中,特征工程是一个至关重要的环节。通过合理的特征提取和转换,可以显著提升模型的表现。以下是关于该问题的一些常见特征工程技术及其应用: #### 数据预处理 数据预处理是特征工程的第一步,主要包括缺失值填充、异常值检测以及标准化/归一化操作。对于时间序列数据而言,通常会采用插值法来填补缺失的时间戳对应的数值[^1]。 #### 时间特性挖掘 由于蒸汽消耗往往具有周期性和趋势性特点,因此可以从原始时间字段派生出多种新变量作为输入给到后续建模过程之中。比如提取日期部分(年份、月份)、星期几等循环模式;或者计算前后一段时间内的平均值变化率形成新的统计指标[^2]。 #### 外部因素引入 除了利用内部记录的数据外,还可以考虑加入外部可能影响结果的因素作为额外维度参与到训练当中去。例如天气状况(温度湿度),节假日安排等因素都可能会间接作用于最终产出水平之上从而帮助提高预测精度[^3]。 #### 特定领域知识的应用 针对具体行业背景下的专业知识也能够为构建更有效的特征提供思路。如电力行业中不同设备运行状态切换时产生的瞬态效应可能是重要信号源之一,则需特别关注这些特殊时刻附近的行为表现并加以编码表示出来供算法学习使用。 ```python import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler def preprocess_data(df): df['hour'] = df.index.hour # 添加小时列 df['day_of_week'] = df.index.dayofweek # 添加周几列 scaler = StandardScaler() scaled_features = scaler.fit_transform(df[['temperature', 'humidity']]) df[['scaled_temperature', 'scaled_humidity']] = scaled_features return df ``` 上述代码展示了如何基于Pandas库对数据集进行基础的时间特性和标准化处理的例子。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值