机器学习中的数据问题及应对策略
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)] = 1
# 随机划分训练集和开发集
超级会员免费看
订阅专栏 解锁全文

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



