Datawhale&天池贷款违约预测——Task3 特征工程

本文探讨Datawhale与天池联合的贷款违约预测任务,重点在于特征工程的三个关键步骤:数据预处理(包括缺失值填充和异常值处理)、类别特征编码(如哑变量编码、labelEncode和onehot编码)以及特征选择(filter、wrapper和embedded方法)。通过这些技术,提升模型预测违约的能力。

Datawhale&天池贷款违约预测——Task3 特征工程

1.特征工程目的

特征工程是数据分析中最耗时间和精力的一部分工作。数据和特征决定了机器学习的上限,而模型和算法则是逼近这个上限。因此,特征工程就变得尤为重要了。特征工程的主要工作就是对特征的处理,包括数据预处理,特征选择,甚至降维技术等跟特征有关的工作。

2. 主要内容

2.1 数据预处理

  • 缺失值的填充(掌握数据类型,数据类型转换,填充方法等)
  • 异常值的处理(3segama原则、箱型图、小提琴图等)
  • 数据分箱(固定宽度分箱,分位数分箱,卡方分享等)
    代码示例
#导入库
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
warnings.filterwarnings('ignore')

from sklearn.model_selection import StratifiedKFold,KFold
from sklearn.metrics import accuracy_score,f1_score,roc_auc_score,log_loss

缺失值填充

  • 指定值填充(-1,999,0等)
  • 向上或向下填充
  • 用众数填充或者中位数等统计量进行填充
# 缺失值填充——注意数据类型
train=pd.read_csv('train.csv')
testA=pd.read_csv('testA.csv')
train.isnull().sum()
#按照中位数填充数值型特征
train[numerical_fea]=train[numerical_fea].fillna(train[numerical_fea].median())
testA[numerical_fea]=testA[numerical_fea].fillna(train[numerical_fea].median())
train.isnull().sum()
#注意到employmentLength变量没有填充到,数据类型是object
train['employmentLength'].head()
#类型是object
#employmentLength是对象型特征,将它转换到数值特征

def employmentLength_to_int(s):
    if pd.isnull(s):
        return s ##若s是空返回空
    else:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值