本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客。版权声明:禁止转载,欢迎学习。QQ邮箱地址:[email protected],如有任何商业交流,可随时联系
刚开始写作本文时,并没有感觉太难,后面在写特征工程方面时,发现很多指标问题,不得开始挖掘统计指标,居然发现ROC我之前理解有误,真是血中带泪的进行反复求证,为自己点赞
平均值的理论:所有数据之和除以数据点的个数,以此表示数据集的平均大小。其数学定义为
方差理论:为了表示数据集中数据点的离散程度,也即偏离平均值的离散程度。其数学定义为
在数学上定义为方差的平方根:
举个例子:一个班级里有60个学生,平均成绩是70分,标准差是9,方差是81,成绩服从正态分布,那么我们通过方差不能直观的确定班级学生与均值到底偏离了多少分,通过标准差我们就很直观的得到学生成绩分布在[61,79]范围的概率为0.6826,即约等于下图中的34.2%*2 。
贝塞尔修正后的方差公式:
贝塞尔修正后的标准差公式:
众数是指在一组数据中,出现次数最多的数。例如:1, 1, 3 中出现次数最多的数为 1,则众数为 1。
中位数是指在一组数据中,按数值大小排序后处于中间位置的数。例如:1, 5, 3 排序后为 1, 3, 5,则其中位数为 3。特别地,当数的个数 N 为偶数时,中位数取位置居中的两个数 (N/2 和 N/2+1) 的平均值,例如:1, 2, 3, 4,中位数为 (2+3)/2 = 2.5。
图中红线代表曼哈顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和黄色代表等价的曼哈顿距离。曼哈顿距离又称为出租车距离,因为这是出租车在街道行驶所走的实际距离的长度。
信息熵是消除不确定性所需信息量的度量,也即未知事件可能含有的信息量。一个事件或一个系统,准确的说是一个随机变量,它有着一定的不确定性。
最后给出总结:
结论:
衡量观测值与真实值之间的偏差。常用来作为机器学习模型预测结果衡量的标准。
MSE是真实值与预测值的差值的平方然后求和平均。通过平方的形式便于求导,所以常被用作线性回归的损失函数。
是绝对误差的平均值,可以更好地反映预测值误差的实际情况。
方差的算术平均根,用于衡量一组数值的离散程度。
样本分为:正类样本和负类样本。
TP:被分类器正确分类的正类样本数。
TN: 被分类器正确分类的负类样本数。
FP: 被分类器错误分类的正类样本数。(本来是负,被预测为正) ---------->正
FN: 被分类器错误分类的负类样本数。 (本来是正, 被预测为负) ---------->负
总样本数=TP+TN+FP+FN
ACC=(TP+TN)/(总样本数)
该评价指标主要针对分类均匀的数据集。但现实场景中,均为不平衡的交易。如信用卡欺骗交易。若仅存在1%的欺诈。
Precision = TP / (TP+ FP)
准确率,表示模型预测为正样本的样本中真正为正的比例
比如二分类问题为预测癌症的发生,显然在现实世界中,癌症人数在所有人数中的占比通常只是0.5%左右,即正负样本比例为1:200左右,此时一个分类器如果使用Accuracy作为评估指标,则分类器无需花太多功夫,分类器只用把样本全部清一色预测为正常,那么Accuracy也能达到99.5%的准确率,如此高的准确率,但却毫无任何意义,无法应用到实处,泛化能力极差。
Recall = TP /(TP + FN)
召回率,表示模型准确预测为正样本的数量占所有正样本数量的比例
F1 = 2PR /(P+ R)
F1,是一个综合指标,是Precision和Recall的调和平均数,因为在一般情况下,Precision和Recall是两个互补关系的指标,鱼和熊掌不可兼得,顾通过F测度来综合进行评估。F1越大,分类器效果越好。
Accaracy和Precision作用相差不大,都是值越大,分类器效果越好,但是有前提,前提就是样本是均衡的。
如果样本严重失衡了,Accuracy不再适用,只能使用Precision,举个简单的例子。
首先,解释几个二分类问题中常用的概念:True Positive, False Positive, True Negative, False Negative。它们是根据真实类别与预测类别的组合来区分的。
假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。
具体AUC ROC 可以参考本博客 :https://www.cnblogs.com/peizhe123/p/5081559.html
具体AUC ROC 可以参考本博客 :https://blog.csdn.net/ybdesire/article/details/51999995
具体AUC ROC 可以参考本博客 :https://blog.csdn.net/computerme/article/details/40345709
(0,0)表示:FPR=0,TPR=0。没有负样本预测错误(也就是负样本全部预测正确),正样本全部预测错误。这说明把全部样本都预测为了负样本。
(1,1)表示:FPR=1,TPR=1。负样本全部预测错误,正样本全部预测正确。这说明把全部样本都预测为了正样本。
(0,1)表示:FPR=0,TPR=1。负样本全部预测正确,正样本全部预测正确。这个模型很完美。
(1,0) 表示:FPR=1,TPR=0。负样本全部预测错误,正样本全部预测错误。这个模型太烂了。
现举例讲解ROC计算步骤如下:
y = np.array([1, 1, 2, 2])
scores = np.array([0.1, 0.4, 0.35, 0.8])
fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
第二步:截断点依次取值为0.1,0.35,0.4,0.8时,计算TPR和FPR的结果。
第三步:假设截断点为0.1
scores = [0.1, 0.4, 0.35, 0.8]
y_true = [0, 0, 1, 1]
y_pred = [1, 1, 1, 1]
则:
TP=2(真实为正,实际也为正) FN=0
FP=2 TN=0(真实为负,实际也为负)
TPR = TP/(TP+FN) = 1
FPR = FP/(TN+FP) = 1
第四步:假设截断点为0.35
scores = [0.1, 0.4, 0.35, 0.8]
y_true = [0, 0, 1, 1]
y_pred = [0, 1, 1, 1]
则:
TP=2(真实为正,实际也为正) FN=0
FP=1 TN=1(真实为负,实际也为负)
TPR = TP/(TP+FN) = 1
FPR = FP/(TN+FP) = 0.5
第五步:假设截断点为0.4
说明只要score>=0.4,它的预测类别就是P。
此时,因为4个样本的score有2个大于等于0.4。所以,所有样本的预测类有2个为P(1个预测正确,1一个预测错误);2个样本被预测为N(1个预测正确,1一个预测错误)。
scores = [0.1, 0.4, 0.35, 0.8]
y_true = [0, 0, 1, 1]
y_pred = [0, 1, 0, 1]
则:
TP=1(真实为正,实际也为正) FN=1
FP=1 TN=1(真实为负,实际也为负)
TPR = TP/(TP+FN) = 0.5
FPR = FP/(TN+FP) = 0.5
第六步:假设截断点为0.8
scores = [0.1, 0.4, 0.35, 0.8]
y_true = [0, 0, 1, 1]
y_pred = [0, 0, 0, 1]
则:
TP=1(真实为正,实际也为正) FN=1
FP=0 TN=2(真实为负,实际也为负)
TPR = TP/(TP+FN) = 0.5
FPR = FP/(TN+FP) = 0
我们将曲线与x轴、直线x=1围成的面积,称作AUC(Area under the curve)。AUC位于0到1之间,取值越大说明模型越好。
页面浏览量,也即点击量,重复点击也算在内。
独立用户浏览数,去除重读,一个用户10次点击,算作一次。
每天的活跃用户数量,每天至少登录一次的用户量。
月活跃用户量,至少一个月登录一次。
用户的生命周期价值,也即用户从使用到放弃的时间内,产生的价值
每一个用户在一个周期如一年内可以网站可以收益多少钱。
秦凯新 2018 11 17 23:41