python-3.x - 在训练/测试拆分之前进行采样并且精度非常低
问题描述
我正在处理高度不平衡的数据集,其中包括大约 32,000 类 0 和 1,300 类 1。单个输入特征是文本(例如酒店评论)。经过预处理步骤将文本转换为向量后,维度长度变为 1,000 左右(使用 tf-idf)。
运行分类后,问题是我的精度太低(15%),而召回率(80%)似乎很好。
我尝试了许多不同的策略来克服这个问题,方法是应用欠采样,尝试不同的分类算法(逻辑、XGBoost、Light GBM,...),改变决策函数阈值,绘制精确召回曲线以找到最佳点(发现精确度不回忆的变化变化不大)。
我的问题是是否有任何方法可以提高我的精度?作为 ML 的初学者,精度如此之低的原因似乎是测试集也不平衡,因此很难获得更高的精度。我也尝试对测试集进行欠采样,但发现这不是我的做法。减小尺寸(例如 PCA)会克服这个问题吗?或者我还有其他方法可以尝试吗?请帮忙...
解决方案
推荐阅读
- google-apps-script - 如何将 Google 登录集成到您的 google 脚本网络应用程序中
- php - 从控制器调用渲染 Handler.php 时出错,使用 instanceof 捕获错误并处理异常并返回
- git - 忽略 .gitignore 中的行
- python - 如何使用 boto3 在 s3 存储桶上上传 aws 文件时获得成功响应?
- javascript - “钩子只能在函数组件的主体内部调用”而不违反任何规则
- python - 为什么我必须运行此 python 脚本两次才能正确格式化图像?
- mysql - 将两行表与条件合并
- python-3.x - Keras 中特征提取的 ResNet50 输入问题
- svg - 根据纵横比调整/裁剪动画 svg
- http - 是否有理由将 HTTP 与 HTTPS 用于没有输入的简单站点?