0

我有一个不平衡的数据集,我正在使用 SMOTE 算法对其进行平衡。在我打印混淆矩阵时进行过采样后,它显示了以下输出:

支持:'0' 91 支持:'1' 209

我有一个包含 1000 个标签的数据集 1 出现 700 次,标签 0 出现 300 次,我使用 0.3 作为测试数据,但为什么它显示我支持 91 和 209?
即使我不应用 SMOTE 算法,它也会显示 91 和 209,并且在应用 SMOTE 之后它是相同的。

4

1 回答 1

0

澄清

首先,这不是混淆矩阵,这是分类报告。它重新组合可以从混淆矩阵计算的指标。

打击目的

其次,您SMOTE只适用于您的火车组。因此,如果您遵循某人的代码,他们会在使用 SMOTE 过采样的训练数据上训练他们的模型。但是,测试是在原始数据上完成的(这是合乎逻辑的)。

您在火车组中使用 SMOTE 的目的是改善其不平衡性。一旦模型better从新oversampled数据中学习了所谓的权重,您就可以继续测试您在拆分时拆分的测试数据train_test_split(X,y,test_size=0.3)

代码

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3)

X_train_sampled , y_train_sampled = sm.fit_sample(X_train,y_train.ravel())

model.fit(X_train_sampled,y_train_sampled) 

model.predict(X_test)
于 2020-11-30T00:21:28.910 回答