You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R class包KNN分类算法基于训练测试集完成收入预测问题排查

KNN模型全预测为同一类别的排查方案
  • 索引与标签匹配校验
    首先确认训练集索引in_train_census的逻辑正确性:运行table(Df_census$Income[in_train_census]),检查输出是否和你已知的训练集标签分布一致(15124条<=50K、4876条>50K),排除标签取值被误修改、训练集行索引错位的问题。同时确认x_train_auto的行顺序和Df_census[in_train_census, ]的行顺序完全对应,没有出现特征处理过程中行乱序的情况。
  • 特征预处理逻辑校验
    KNN为距离敏感模型,特征预处理错误是最常见的预测异常原因:
    1. 确认x_train_auto、x_test_auto的维度正确:运行dim(x_train_auto)和dim(x_test_auto),检查两者都为3列(对应Sex、EducYears、Age三个特征),排除特征合并时列错位、特征缺失或混入多余列的问题
    2. 确认缩放逻辑正确:测试集的EducYears、Age必须用训练集的均值、标准差做标准化/用训练集的最大最小值做归一化,不能单独用测试集自身的统计量做缩放,否则会导致测试集特征分布和训练集完全偏离
    3. 运行head(x_train_auto)、head(x_test_auto)检查特征取值范围符合预期:Sex为0/1,EducYears和Age为缩放后的值,没有出现特征值全部为0、无穷大等异常值
  • 模型参数与样本适配性校验
    你的训练集里<=50K样本占比超过75%,属于明显的类别不平衡场景:
    1. 你当前设置k=25,k值过大时每个测试样本的近邻会被占比更高的多数类主导,极易出现全预测为<=50K的问题。可以先尝试调小k值(比如k=3、k=5)重新预测,如果结果不再是全同一类别,说明是k值选择不合理导致的
    2. 如果调小k值后仍存在预测偏向多数类的问题,后续可以通过对多数类欠采样、少数类过采样,或引入类别权重的方式优化不平衡问题
  • 参数调用逻辑校验
    你代码中对knn参数的注释完全错误,要确认没有出现参数传值错误:train传训练集特征、test传测试集特征、cl传训练集对应的分类标签,没有误把标签列传入特征数据集。

内容的提问来源于stack exchange,提问作者Jim Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:39:02