机器学习过程
一、数据清洗
缺失值:填充或删除缺失率过高的特征(有时缺失率不高,可尝试填充)
重复值:用pandas.drop_duplicates()删除完全重复的行(避免数据冗余影响模型)
异常值:用箱线图(IQR 法则)、Z-score 或可视化(如散点图)识别异常值
二、特征工程
1.特征转换
①类型转换
常用的字符型数据编码方式:
- 标签编码(Label Encoding):将每个唯一的类别映射到一个唯一的整数(如 0,1,2,...),建立一对一的映射关系。 例:['红','绿','蓝'] → [0,1,2]。
- 目标编码(Target Encoding* ):用类别对应的目标变量的统计值(如均值、中位数)来编码。例如,在分类问题中,用某个类别出现时的正例概率编码该类别。
示例:假设目标变量为 "是否购买"(1 = 购买,0 = 未购买):
类别 A 出现 100 次,其中 60 次购买 → 编码为 60/100=0.6
类别 B 出现 50 次,其中 10 次购买 → 编码为 10/50=0.2 - 独热编码(One-Hot Encoding):为每个类别创建一个独立的二进制特征(0 或 1),当样本属于该类别时特征值为 1,否则为 0。 例:['红','绿','蓝'] → 红:[1,0,0]绿:[0,1,0]蓝:[0,0,1]
- 频率 / 计数编码(Frequency/Count Encoding):用类别在数据集中出现的频率(占比)或次数(计数)来编码。例:类别 A 出现 100 次,总样本 1000 → 频率编码为 0.1,计数编码为 100类别 B 出现 50 次 → 频率编码为 0.05,计数编码为 50
- 嵌入编码(Embedding):通过神经网络学习类别到低维稠密向量的映射(类似 Word2Vec)。例如,将 1000 个类别映射到 10 维向量,每个向量捕捉类别间的语义关联。
- 哈希编码(Hashing Encoding):使用哈希函数将类别映射到固定维度的数值(如 100 维),通过哈希碰撞将高基数类别压缩到低维度。
编码方式选择:
②分布转换
③缩放处理
2.特征筛选
过滤法:基于统计特性的独立筛选,不依赖模型;方差选择、相关性分析(皮尔逊系数、卡方检验)、单变量统计检验、特征漂移检测(两个数据集进行对比,删掉漂移特征)(工具:Evidently等其他检测特征漂移工具)。
注:漂移特征不可都删除,结合业务逻辑和特征重要性进行删除。
包装法:基于模型性能的子集搜索;递归特征消除、贪心搜索(向前选择、向后选择)
嵌入法:模型训练中自动筛选
筛选完特征后进行去重
3.特征降维
补充:高频特征与上述处理方法相同,高频数据处理的核心是在保留关键信息的前提下降低数据维度、缓解计算压力
三、模型选择与优化
任务类型(分类 / 回归 / 聚类)、数据特点(线性 / 非线性、高维 / 低维)、业务需求(解释性优先 / 精度优先)选择模型(如逻辑回归、决策树、随机森林、SVM 等)。
模型选择后还需通过超参数调优(如网格搜索、随机搜索)和交叉验证评估性能,最终确定最优模型。
四、缺陷追溯
通过预测模型的结果及原始数据进行分析
1.通过决策树模型筛选重要路径
2.通过数据挖掘,给出特征重要性,针对重要特征进行分析(缺陷分布、箱线图等)

浙公网安备 33010602011771号