@浙大疏锦行
一、知识点
1.1 数据预处理
1.1.1 导入所需要的包
(边写代码边添加包)
import pandas as pd #用于数据处理和分析,可处理表格数据 import numpy as np #用于数值计算,提供高效数组操作 import matplotlib.pyplot as plt #用于绘制各类图表 import seaborn as sns #基于matplotlib的绘图库,绘制更美观 import warnings warnings.filterwarnings('ignore') #设置中文字体(解决中文显示问题) plt.rcParams['font.sans-serif'] = ['SimHei'] # Windows系统常用黑体字体 plt.rcParams['axes.unicode_minus'] = False # 正常显示负号1.1.2查看数据
data=pd.read_csv(r'文件地址')
data.head()
1.1.3特征名映射
mapping={'Term':'期限'}
data=data.rename(columns=mapping)
1.1.4删除无用列
data=data.drop(column=['ID'])
data.head()
1.1.5编码映射
两种标签编码方式:
方法一:使用map():未匹配转化为NAN
mapping = { "Term": { "Short Term": 1, "Long Term": 0 }, "Home Ownership": { "Rent": 0, "Own Home": 1, "Have Mortgage ": 2, "Home Mortgage": 3 } } data['Term']=data['Term'].map(mapping['Term'])方法二:使用replace():未匹配则静默跳过
mapping = { "Term": { "Short Term": 1, "Long Term": 0 }, "Home Ownership": { "Rent": 0, "Own Home": 1, "Have Mortgage ": 2, "Home Mortgage": 3 } } data=data.replace(mapping)1.1.6填补缺失值
#确定需要填充的列 data.isnull().sum() missing_cols= [ '年收入', '当前工作年限' ] #使用众数填充缺失值 for col in missing_cols: #可能存在多个众数,这里取第一个 mode_val=data[col].mode()[0] data[col].fillna(mode_val,inplace=True)1.1.7异常值处理
异常值可处理可不处理,不处理也会增强泛化性和鲁棒性
异常值一般不处理,或者结合对照试验处理和不处理都要尝试一下
# 1. 绘制箱线图观察异常值 plt.figure(figsize=(8,6)) sns.boxplot(x=data['年收入']) plt.title('年收入箱线图') plt.xlabel('年收入') plt.show() # 2.计算Q1下四分位数、Q3上四分位数、IQR四分位距离 Q1=data[column_name].quantile(0.25) Q3=data[column_name].quantile(0.75) IQR=Q3-Q1 #3.确定异常值边界 lower_bound=Q1-1.5*IQR upper_bound=Q3-1.5*IQR #4.筛选数据,保存边界内的数据 data_before_drop = len(data) data_filtered = data[ (data[column_name] >= lower_bound) & (data[column_name] <= upper_bound) ].copy() # 使用 .copy() 避免 SettingWithCopyWarning # 5. 更新 DataFrame 并报告结果 data = data_filtered data_after_drop = len(data) rows_dropped = data_before_drop - data_after_drop print(f"\n原始数据行数: {data_before_drop}") print(f"删除异常值后行数: {data_after_drop}") print(f"共删除异常值 (行): {rows_dropped}") print(f"\nDataFrame 已更新,'{column_name}' 的异常值已被移除。")1.1.8可视化部分
1.1.9其他核心部分
特征工程
1.2机器学习模型建模
数据划分、数据归一化、模型训练与评估