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

R语言线性SVM模型仅输出True positive和False positive的原因咨询

线性SVM模型混淆矩阵仅输出真阳性、假阳性的问题原因

混淆矩阵术语对应翻译

  • True Positive (TP):真阳性
  • False Positive (FP):假阳性
  • False Negative (FN):假阴性
  • True Negative (TN):真阴性

核心原因梳理

  • 代码存在多处语法错误,导致模型训练/预测结果异常
    1. 变量拼写错误:训练的模型变量命名为svm_Linar,后续预测调用的是未定义的svm_Linear,预测结果并非当前训练模型输出
    2. 训练函数参数缺失:train方法中method"svmLinear"缺少等号,应为method = "svmLinear",参数传递错误导致模型未按预期训练
    3. 归一化函数语法错误:normal_data函数的return括号仅包裹了分子部分,实际返回值为x-min(x)而非归一化结果,数据预处理完全不符合预期
    4. 训练集索引未定义:代码中直接使用intrain_SVM做数据集拆分,但没有提前通过createDataPartition等方法生成采样索引,拆分逻辑完全随机,可能出现测试集仅包含单一类别的情况
  • 测试集类别单一
    数据集拆分错误导致测试集中admit列仅存在「录取(正例)」一种标签,没有未录取的负样本,自然不存在真阴性、假阴性两类统计结果
  • 目标变量被错误预处理
    归一化操作时将admit目标列和特征列一起做了数值转换,若原始admit的标签值不是0/1二值,转换后标签映射错误,模型将所有样本预测为同一类别
  • 类别极度不平衡
    若数据集中录取样本占比极高,模型退化为无差别预测所有样本为录取,若测试集也以录取样本为主,也会出现假阴性、真阴性为0的情况

修复建议

  1. 修正上述所有语法错误,补充训练集索引生成代码:intrain_SVM <- createDataPartition(y = SVMdata$admit, p = 0.7, list = FALSE)
  2. 归一化仅作用于特征列,不要对目标admit列做归一化处理
  3. 拆分数据集后先检查训练集、测试集的admit类别分布,确保两类样本都存在
  4. 将测试集的admit列也转换为因子类型,和训练集保持一致

内容的提问来源于stack exchange,提问作者MOHAMMAD SAMEER

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:45:01