Appearance
信用评分模型数据清洗和标注流程设计
1.导入库
python
import pandas as pd- 导入 pandas 库,⽤于数据处理和分析,通常别名为 pd
2.加载数据集
python
data = pd.read_csv('finance数据集.csv')
print(data.head())pd.read_csv(): 读取CSV文件- 参数:文件路径('finance数据集.csv')
data.head(): 显示数据框的前5行功能:加载数据集并预览前5行数据
3.导入可视化库
python
import matplotlib.pyplot as plt
import seaborn as snsmatplotlib.pyplot: Python绘图库seaborn: 基于matplotlib的统计数据可视化库
4.绘制箱线图
python
plt.figure(figsize=(12, 8))
numeric_cols = data.select_dtypes(include=['float64', 'int64']).columns
for i, col in enumerate(numeric_cols, 1):
plt.subplot(3, 4, i)
sns.boxplot(x=data[col])
plt.title(col)
plt.tight_layout()
plt.show()plt.figure(figsize=(12, 8)): 设置图形大小(宽12英寸,高8英寸)select_dtypes(): 选择指定数据类型的列include=['float64', 'int64']: 选择数值型列
enumerate(numeric_cols, 1): 遍历数值列,从1开始计数plt.subplot(3, 4, i): 创建3行4列的子图网格sns.boxplot(): 绘制箱线图x=data[col]: 指定绘图数据
plt.title(col): 设置子图标题为列名plt.tight_layout(): 自动调整子图参数plt.show(): 显示图形功能:可视化数值特征的分布和异常值
5.IQR处理异常值
python
Q1 = data[numeric_cols].quantile(0.25)
Q3 = data[numeric_cols].quantile(0.75)
IQR = Q3 - Q1
data_cleaned = data[~((data[numeric_cols] < (Q1 - 1.5 * IQR)) | (data[numeric_cols] > (Q3 +1.5 * IQR))).any(axis=1)]quantile(0.25),quantile(0.75): 计算25%和75%分位数- IQR = Q3 - Q1: 计算四分位距
- 异常值判定条件:小于Q1-1.5IQR或大于Q3+1.5IQR
- any(axis=1) : 检查每行是否有任何列满足条件
- ~ : 逻辑取反,保留非异常值
- 功能:基于IQR方法识别并删除异常值
6.处理重复值
python
duplicates = data_cleaned.duplicated()
num_duplicates = duplicates.sum()
data_cleaned = data_cleaned[~duplicates]
print(f'删除的重复行数: {num_duplicates}')data.duplicated(): 标识重复行sum(): 统计重复行数- ~duplicates : 保留非重复行
- 功能:删除完全重复的行并打印删除数量
7.数据归一化
python
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
data_cleaned[numeric_cols] = scaler.fit_transform(data_cleaned[numeric_cols])MinMaxScaler(): 创建最小-最大缩放器- 归一化公式:(x - min)/(max - min)
fit_transform(): 计算最小/最大值并应用转换- 功能:将数值特征缩放到[0,1]范围
8.设定目标变量
python
target_variable = 'SeriousDlqin2yrs'- 指定目标变量列名
9.划分特征和目标
python
X = data_cleaned.drop(columns=[target_variable,'Unnamed: 0'])
y = data_cleaned[target_variable]- drop() : 删除指定列(目标变量)得到特征矩阵
- y : 提取目标变量
- 功能:分离特征(X)和目标(y)
10.划分训练集和测试集
python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print(f'训练数据形状: {X_train.shape}')
print(f'测试数据形状: {X_test.shape}')train_test_split(): 划分数据集- test_size=0.2 : 测试集占20%
- random_state=42 : 随机种子(保证可重复性)
- shape : 打印数据维度
- 功能:按80/20比例划分训练/测试集
11.保存清洗后的数据
python
cleaned_file_path = '2.1.3_cleaned_data.csv'
data_cleaned.to_csv(cleaned_file_path, index=False)to_csv(): 保存为CSV文件- index=False : 不保存行索引
功能:保存处理后的数据集
制定数据清洗规范
txt
1. 数据加载:使用 pandas 库加载数据集,检查数据的基本结构和类型。
2. 检查数据集中的异常值并处理异常值,使用箱线图检测异常值,使用IQR方法处理异常值;
3. 检查数据集中的重复值并删除所有重复值,并记录删除的行数;
4. 对数据进行归一化处理;
5. 保存清洗后的数据: 将经过清洗和处理后的数据保存为新的 CSV 文件,以便后续使用。制定特征工程规范
(1)创建新的特征IncomeToDebtRatio,MonthlyIncome,并添加到数据集中;
(2)将SeriousDlqin2yrs设为目标变量并标注;
(3)对数据进行划分;
(4)保存处理后的数据,将经过清洗和处理后的数据保存为新的 CSV 文件。