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:

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

3957

被折叠的 条评论
为什么被折叠?



