1.原始数据
1 | import pandas as pd |
2.样本不均衡采用的方法
2.1 过采样–让两个样本同样多
1 | # Amount列数值分布不均衡 |
2.2 下采用–让两个样本同样少
3.交叉验证
1 | from sklearn.cross_validation import train_test_split |
4.模型评估
- 例子:某个班级有男生80人,女生20人,共计100人,目标是找出所有女生,现在某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来
| 相关(Relevant),正类 | 无关(NonRelevant),负类 | |
|---|---|---|
| 被检索到(Retrieved) | true positives(TP 正类判定为正类,例子中就是正确的判定”这位是女生”) | false positives(FP 负类判定为正类,”存伪”,例子中就是分明是男生却判断为女生,当下伪娘横行,这个错常有人犯) |
| 未被检索到(Not Retrieved) | false negatives(FN 正类判定为负类,”去真”,例子中就是分明是女生,却判断为男生–梁山伯同学犯的错就是这个) | true negatives(TN 负类判定为负类,男生判断为男生,像我这样的纯爷们一准儿就会在此处) |
上述例子,可以得到这几个值:
TP = 20
FP = 30
FN = 0
TN = 50
- Recall(召回率) = TP/(TP+FN)
1 | from sklearn.linear_model import LogisticRegression |
5.混淆矩阵
1 | def plot_confusion_matrix(cm, classes, |
1 | import itertools |
6.阀值对结果的影响
1 | lr = LogisticRegression(C = 0.01, penalty = 'l1') |
7.SMOTE样本生成策略-过采样
1 | import pandas as pd |