AI教程
-
模型评估指标怎么自定义?用 make_scorer 在交叉验证中核对误差方向
scikit-learn 的交叉验证评分默认遵循“越大越好”。如果业务指标是误差或损失,直接把正的损失函数当评分器会把方向弄反。用 make_scorer(greater_is_better=False) 包装后,可以在交叉验证中核对返回的负分,并在报告时把符号转回正的业务损失。
-
回归模型 MAPE 为什么会暴涨?检查零真值并对照 MAE
MAPE 把每条回归误差除以对应真值的绝对值;真值接近零时,即使绝对误差只有1,也可能得到惊人的比例。scikit-learn 遇到零真值会返回很大的有限数,不是无穷大。下面用四条人工数据逐行计算,和 MAE 对照,找出“百分比误差暴涨”的来源。
-
模型验证前怎么查重复样本?用行指纹核对训练集和验证集
表格模型验证前,要先查训练集和验证集有没有完全相同的特征行。重复行若来自同一原始记录的复制,验证分数可能偏乐观;同一特征行若对应不同标签,还要回查标注。下面用稳定的行指纹找出跨集合匹配,并保留两边编号供人工核实。
-
回归模型对哪些业务组误差大?按预定义分组计算 MAE 与样本数
总体 MAE 可能掩盖某一类业务样本上的大误差。要回答“模型对哪些组更不准”,先在看误差之前定义分组,再分别报告样本数和 MAE。下面用人为构造的两个区域作教学例子,逐行保留样本编号并核对加权汇总。
-
模型分数是否高于随机标签?用 permutation_test_score 做教学置换检验
一个分类器在交叉验证中得到较高分数,还需要问:它是否只是碰巧利用了这批样本的标签排列?permutation_test_score 保持特征与验证方案不变,反复打乱标签,形成“标签与特征无关联”时的分数对照。下面用人工合成数据执行一次教学检验。
-
同一模型为什么出现两种准确率?用 sample_weight 核对加权与未加权评估
同一批预测可以得到两种不同准确率:普通准确率每条样本权重相同,加权准确率会按事先定义的样本权重重新汇总。下面训练一个总预测多数类的教学模型,逐项核对正确数、权重和分母,说明数值差异从哪里来。
-
分类模型调参工具怎么选?同一搜索预算比较 GridSearchCV 与 RandomizedSearchCV
GridSearchCV 与 RandomizedSearchCV 都可以为分类器选超参数,但“哪个更好”必须先对齐搜索预算与交叉验证。下面让二者都评估9个候选、每个候选做同样3折验证,再比较它们探索了哪些参数与得到的验证分数。
-
预测未来 7 天结果怎么切验证集?按标签结束日期剔除跨界训练样本
预测未来7天累计结果时,一行训练样本的标签需要等到未来第7天才能确定。只按行日期把较早记录放进训练集,可能把验证开始之后才完成的标签带进去。下面给每条样本记录标签结束日期,并在每轮验证前剔除跨界训练行。
-
同一用户多条记录怎么验证模型?用 GroupKFold 保持逐折用户隔离
同一用户留有多条记录时,随机按行划成多折,会让同一用户同时出现在训练与验证。若目标是预测新用户,GroupKFold 可以让每一折的用户集合互不交叉,并让每位用户轮流进入验证折。下面同时输出折内分数和用户交集检查。
-
交叉验证为什么会泄漏?把缺失填补放进 Pipeline 后逐折评估
交叉验证中的泄漏常发生在划分之前:先用整张表计算缺失值的填补中位数,再把已经填好的数据送入交叉验证,验证折的信息已参与预处理。把 SimpleImputer 和分类器装进同一条 Pipeline,逐折拟合并核对中位数,才能检查这一步的边界。