我有一个不平衡的数据集,我正在使用 SMOTE 算法对其进行平衡。在我打印混淆矩阵时进行过采样后,它显示了以下输出:
支持:'0' 91 支持:'1' 209
我有一个包含 1000 个标签的数据集 1 出现 700 次,标签 0 出现 300 次,我使用 0.3 作为测试数据,但为什么它显示我支持 91 和 209?
即使我不应用 SMOTE 算法,它也会显示 91 和 209,并且在应用 SMOTE 之后它是相同的。
我有一个不平衡的数据集,我正在使用 SMOTE 算法对其进行平衡。在我打印混淆矩阵时进行过采样后,它显示了以下输出:
支持:'0' 91 支持:'1' 209
我有一个包含 1000 个标签的数据集 1 出现 700 次,标签 0 出现 300 次,我使用 0.3 作为测试数据,但为什么它显示我支持 91 和 209?
即使我不应用 SMOTE 算法,它也会显示 91 和 209,并且在应用 SMOTE 之后它是相同的。
澄清
首先,这不是混淆矩阵,这是分类报告。它重新组合可以从混淆矩阵计算的指标。
打击目的
其次,您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)