逻辑回归
logistic regression code
1 | import pandas as pd |
分类评估的参数
准确率
准确率是所有预测正确的样本占总样本的比例
$$Accuracy = \frac{TP+TN}{TP+FN+FP+TN}$$精准率
精准率(又称查准率)是指所有被预测为正类的样本中,真正为正类的比例
$$Precision = \frac{TP}{TP+FP}$$召回率
召回率(又称查全率)是指所有实际为正类的样本中,被正确预测为正类的比例
$$Recall = \frac{TP}{TP+FN}$$F1-score
F1 值(F1 Score)是精准率和召回率的调和平均数,综合考虑了精准率和召回率的影响。
$$ F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} $$roc曲线
tpr、fpr来衡量不平衡的二分类问题
1 | import pandas as pd |
类别不平衡的处理
先准备类别不平衡的数据
1 | from imblearn.over_sampling import RandomOverSampler,SMOTE |
- 过采样
增加训练集的少数的类别的样本,使得正反例样本数据接近- 随机过采样(RandomOverSampler)
1
2
3
4
5ros = RandomOverSampler()
X_resampled,y_resampled = ros.fit_resample(X,y)
print(Counter(y_resampled))
plt.scatter(X_resampled[:,0],X_resampled[:,1],c=y_resampled)
plt.show()
SMOTE过采样(SMOTE)1
2
3
4
5smote = SMOTE()
X_resampled,y_resampled = smote.fit_resample(X,y)
print(Counter(y_resampled))
plt.scatter(X_resampled[:,0],X_resampled[:,1],c=y_resampled)
plt.show()
- 随机过采样(RandomOverSampler)
- 欠采样
减少训练集的多数的类别的样本,使得正反例样本数据接近- 随机欠采样(RandomUnderSampler)
1
2
3
4
5rus = RandomUnderSampler(random_state=0)
X_resampled,y_resampled = rus.fit_resample(X,y)
print(Counter(y_resampled))
plt.scatter(X_resampled[:,0],X_resampled[:,1],c=y_resampled)
plt.show()
- 随机欠采样(RandomUnderSampler)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QuickReference!