python 我有一个平衡的数据集,在我把它分割成训练集和测试集之后,测试集是不平衡的,原因是什么?

mnowg1ta  于 2023-03-16  发布在  Python
关注(0)|答案(1)|浏览(131)

我的整个数据集是8个类,每个类100个被试,我做分类的时候,我把它拆分了,测试集是不平衡的。
我确实分裂了:

_train, X_test, y_train, y_test = train_test_split(data.iloc[:, :-1], data.iloc[:, -1], test_size=0.2, random_state=42)

RFC的混淆矩阵为enter image description here,例如:二等舱只有10个,为什么要平衡呢?
谢谢大家。

wj8zmpe1

wj8zmpe11#

scikit-learn中的train_test_split函数以随机的方式分割类数。
要保持测试集和训练集中的类数相等,需要添加“stratify”参数。
See documentation

_train, X_test, y_train, y_test = train_test_split(data.iloc[:, :-1], 
    data.iloc[:, -1], 
    test_size=0.2, 
    random_state=42,
    stratify=data.iloc[:, -1])

相关问题