机器学习中的数据集问题及应对策略
1. 不平衡类分布问题
1.1 不平衡类分布的概念
在数据集里,不平衡类分布指的是分类问题中,一个或多个类别的出现次数与其他类别不同。通常,当这种差异显著时,在学习过程中就会产生问题;不过,若差异只有几个百分点,往往不会有太大影响。
例如,一个包含三个类别的数据集,若每个类别都有 1000 个观测值,那么该数据集的类分布就是完全平衡的;但要是类别 1 只有 100 个观测值,类别 2 有 10000 个观测值,类别 3 有 5000 个观测值,那这就是不平衡类分布。这种情况并不罕见,比如构建识别信用卡欺诈交易的模型,欺诈交易在所有交易中所占的比例通常极小。
1.2 不平衡类分布示例
下面使用 MNIST 数据集进行基本的逻辑回归,以展示不平衡类分布可能带来的问题。
import numpy as np
from sklearn.datasets import fetch_mldata
from sklearn.metrics import confusion_matrix
import tensorflow as tf
mnist = fetch_mldata('MNIST original')
Xinput, yinput = mnist["data"], mnist["target"]
# 创建新标签
y_ = np.zeros_like(yinput)
y_[np.any([yinput == 0], axis = 0)] = 0
y_[np.any([yinput > 0], axis = 0)] =
超级会员免费看
订阅专栏 解锁全文
1358

被折叠的 条评论
为什么被折叠?



