支持混淆矩阵
Support in confusion matrix
我有一个不平衡的数据集,我正在使用 SMOTE 算法对其进行平衡。在我打印混淆矩阵时进行过采样后,它显示了以下输出:
支持:'0' 91
支持:'1' 209
我有一个包含 1000 个标签的数据集,其中标签 1 出现了 700 次,标签 0 出现了 300 次,我使用 0.3 作为测试数据,但为什么显示支持 91 和 209?
即使我不应用 SMOTE 算法,它也会显示 91 和 209,在应用 SMOTE 之后它是一样的。
澄清
首先,这不是混淆矩阵,这是分类报告。它重新组合了可以从混淆矩阵计算的指标。
打击目的
其次,您仅将 SMOTE
应用于您的训练集。因此,如果您遵循某人的代码,他们会在使用 SMOTE 过采样的训练数据上训练他们的模型。但是,测试是在原始数据上完成的(这是合乎逻辑的)。
您在训练集中使用 SMOTE 的目的是改善其不平衡性。一旦模型从新的 oversampled
数据中学习了所谓的 better
权重,您就可以继续测试您在执行 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)
我有一个不平衡的数据集,我正在使用 SMOTE 算法对其进行平衡。在我打印混淆矩阵时进行过采样后,它显示了以下输出:
支持:'0' 91 支持:'1' 209
我有一个包含 1000 个标签的数据集,其中标签 1 出现了 700 次,标签 0 出现了 300 次,我使用 0.3 作为测试数据,但为什么显示支持 91 和 209?
即使我不应用 SMOTE 算法,它也会显示 91 和 209,在应用 SMOTE 之后它是一样的。
澄清
首先,这不是混淆矩阵,这是分类报告。它重新组合了可以从混淆矩阵计算的指标。
打击目的
其次,您仅将 SMOTE
应用于您的训练集。因此,如果您遵循某人的代码,他们会在使用 SMOTE 过采样的训练数据上训练他们的模型。但是,测试是在原始数据上完成的(这是合乎逻辑的)。
您在训练集中使用 SMOTE 的目的是改善其不平衡性。一旦模型从新的 oversampled
数据中学习了所谓的 better
权重,您就可以继续测试您在执行 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)