订阅博客
收藏博客
微博分享
QQ空间分享

胡静,事例详解:诈骗检测中的价值灵敏算法,梁左

频道:民生新闻 标签:炒菜娜美洗澡 时间:2019年05月29日 浏览:308次 评论:0条

全文共3560字,估计学习时长20分钟或更长


在传统的二分类分类问题中,咱们的意图是尽量削减误分类,并用准确率、F衡量或AUC-ROC曲线等统计量来衡量模型的功能。可是在某些问题中,为了下降总价值最好容许更多的误分类。假如误分类发生的价值因样本而异,咱们应该采纳依据实例的价值活络学习办法。

在本文中,咱们将依据信用卡诈骗数据集对各种模型进行练习和测验来解说依据实例的价值活络机器学习的概念。请注意,咱们为此使命挑选的模型是为了解说其概念,而不是取得最佳猜测成果。本文供给了代码片段,完好的代码可在GitHub上找到。

什么是价值活络学习?

传统分类模型假定一切的误分类具有相同的价值,而价值活络模型以为不同分类模型间和不同样本间的价值都不同。

可以看看信用卡买卖的案例。未经持卡人授权的买卖被视为诈骗性买卖(通常在一切买卖中占很小的一部分)。信用卡诈骗检测体系应主动识别和阻挠此类诈骗买卖,与此一同不要阻挠合法买卖。

每种分类问题的相关价值是多少?让咱们假定以下场景:体系没有识别到诈骗买卖,钱款丢掉,持卡人需求归还一切买卖金额。假如体系检测到诈骗买卖,这笔买卖就会被阻挠。在这种状况下,由于需求联络持卡人替换信用卡(若确实是诈骗买卖)或许从头激活信用卡(若实践上是合法买卖),所以会发生办理价值。还可以做个简略假定,即办理价值总是共同的。假如体系将一笔买卖标记为合护肤次序法,体系会主动同意这笔买卖,不会发生任何价值。下面是每一种猜测计划的相关价值:



请注意“正”表明被猜测为诈骗的买卖,“负”表明被猜测为合法的买卖。“真”和“假”别离代表猜测正确与否。

由于买卖价值取决于样本,猜测过错的合法买卖价值十分低(比方每笔买卖价值为0.1美元),而诈骗买卖的办理价值会超越补偿胡静,案例详解:诈骗检测中的价值活络算法,梁左价值,乃至还要高(比方每笔买卖价值为10000美元)

价值活络学张籽沐习的中心是将这些依据实例的价值考虑在内,再做出猜测,尽量下降总价值而不是下降误分类。

价值活络练习和依据价值分类


来考虑一下无边落木萧萧下以下两种办法。榜首种是用丢失函数练习模型,下降实践价值(以美元核算)而不是误分类。在这种状况下,需求为丢失函数供给四种景象下(假正类、假负类、真实类和真负类)的价值数据配音,以便模型可以学会相应地做出最佳猜测。



第二种是练习一种惯例模型,可是在依据最低的预期价值进行猜测时,对每个样本进行分类。在这种状况下,练习集不需求付出价值。可是,这一办法只适用于猜测概率的模型,这一模型常用于核算预期价值。



接下来参阅两招警考试种模型——运用价值活络丢失函数的模型和猜测时会下降估计价值的模型,即“价值活络模母女照型”和“价值分类模型”。

完成和评价模型


这个案例剖析运用了一个信用卡诈骗数据集(这一数据集可以在Kaggle上找到),共有284000个样本和30个特征。合法买卖方针变量为0,诈骗买卖方针变量为1。数据极不平衡,只要0.17%的诈骗买卖。咱们练习评价了下面五种模型。

1. 惯例逻辑回归模型(Scikit-learn)

2. 惯例人工神经网络模型(Keras)

3. 价值活络人工神经网络模型(Keras)

4. 价值分类逻辑回归模型

5. 价值分类人工神经网络模型

在实践中,人工神经网络模型或许不是诈骗检测的首成婚十年是什么婚选。随机森林和GBM这些依据决策树的模型具有可解说性的长处,常常体现得更好。之所以运用人工神经网络模型解说是由于它相对简略地完成了一个价值活络的丢失函数。此外,如下所示,一个简靥单的人工神经网络模型能发生适当强壮的成果。

为了评价成果,咱们选用了两种不同的统计量。榜首种是传统的F1-score,着重准确率和召回率,但并不考虑误分万里随波行类所发生的价值。



为了从价值的视点评价模型的功能,首要依据模型猜测出的假正类、假负类、真实类和真负类这四种状况,以及与每种状况相关的价值,核算猜测发生的总价值。



然后,核算假如一切成果都为负类(即价值最大时),所产出的总价值是多少,并将本钱节省界说为实践猜测中下降价值的分数。



为了评价模型,本文用了5倍穿插验证,并将数据分为5种不同的练习今夜让咱们相爱集(80%)和测验集(20%)。后续部分呈现出的成果是指五个测验集的均匀成果。

逻辑回归模型

根底模型来自Sklearn库中的惯例逻辑回归模型。下图是猜测概率和买卖金额两者的散布图。假如没有价值活络分类,诈骗概率和买卖金额之间就没有显着的相关。



逻辑回归模型下均匀测验集体现适当好,F1-score为0.73,本钱节省为0.48。





人工神经网络模型

接下来,在Keras构建一个具有三个彻底衔接层(50、25和15个神经元)和两个dropout层的人工神经网络模型。两个时期的模型用了50个神经元。运用Keras的次序模型API,其在python中的完成如下所示:

from keras.modelsimport Sequential
from keras.layers import Dense, Dropout
defann(indput_dim, dropout=0.2):
model = Sequential([
Dense(units=50, input_dim=indput_dim,activation='relu'),
Dropout(dropout),
Dense(units=25, activation='relu'),
Dropout(dropout),胡静,案例详解:诈骗检测中的价值活络算法,梁左
Dense(15, activation='relu'),
Dense(1, activation='sigmoid')])
return model
clf =ann(indput_dim=刘德华回应杜汶泽事情X_train.shape[1], dropout=0.2)
clf.compile(optimizer='adam', los沙宝亮s='binary_crossentropy')
clf.fit(胡静,案例详解:诈骗检测中的价值活络算法,梁左X_train, y_train, batch_size=50, epochs=2, verbose=1)
clf.predict(X_test, verbose=1)


下面是人工神经网络模型直播港澳台最新一期下猜测的诈骗概率散布图。与逻辑回归模型类似,诈骗概率与买卖金额之间没有显着的联系。




在F1-score和本钱节省方面,人工神经网络模型优于逻辑回归模型。





价值活络人工神经网络模型

状况变得风趣起来了。代军价活络人工神经网络模型与惯例人工神经网络模型类似,在价值活络丢失函数方面略有不同。之前的两个模型都运用对数丢失(“二元穿插熵”)作为丢失函数:




这个丢失函数相同赏罚裸聊假负类和假正类。现在让咱们来看看价值活络丢失函数。一切四种或许的成果(假正类、假负类、真实类和真负类)都纳入了考虑规模,每个成果都有一个特定的价值。价值活络丢失函数如下:




请记住,经过榜首部分得知,真实类和假正类所发生的价值都很贵重(阻挠一笔买卖所发生的固定办理价值)。真负类没有发生价值(无买卖行为),假负类的价值是买卖金额(假定咱们有必要归还一切金额)。请注意,这四种成果所发生的价值,只要假负类的价值是依据实例的。这样的话,买卖金额越高,未识别出的诈骗买卖的赏罚越高,正猜测发生的办理价值也随之添加。因而,丢失函数应该练习一种模胡静,案例详解:诈骗检测中的价值活络算法,梁左型,进步其在买卖金额偏高时阻挠可疑买卖的或许性。买卖金额从0美元到25691美元不等,均匀为88美元,假定固定办理价值为3美元。

咱们在Python中别离猜测了假正类、假负类、真实类和真负类的价值。由于假负类的价值取决于实践状况,因而它们用与样本数相同的长度向量表明。

cost_FP = 3
cost_天津有什么好玩的当地FN = data['Amount']
cost_TP龚玥 = 3
cost_TN = 0


在Keras中完成一个依据实例的丢失函数是很困难的,由于Keras不允许将除了y_true和y_pred以外的参数传递给丢失函数。经过将丢失函数包装到另一个函数中,可以将常变量传递给丢失函数。可是,假负类的价值取决于实例。因而,本文运用的技巧是,将假负类的价值作为数字添加到y_true的逗号后,并在自界说丢失函数中提取它们,一同将y_true四舍五入为原始整数值。在Keras中,转化y_true的函数和自界说丢失函数的完成如下所示:

importkeras.backend as K
defcreate_y_input(y_train, c_FN):
y_str =pd.Series(y_train).reset_index(drop=True).\
apply(lambda x: str(int(x)))
c_FN_str = pd.Series(c_FN).reset_index(drop=True).\
apply(lambda x:'0'*(5-len(str(int(x)))) + str(int(x))
return y_str + '.' + c_FN_str
defcustom_loss(c_FP, c_TP, c_TN):
def lo相机排行榜ss_function(y_input, y_pred):
y_true = K.round(y_input)
c_FN = 胡静,案例详解:诈骗检测中的价值活络算法,梁左(y_input - y_true) * 1e5
cost = y_true * K.log(y_pred) *c_FN +
y_true * K.log(1 - y_pred)* c_TP) +
(1 - y_true) * K.log(1 -y_pred) * c_FP +
(1 - y_true) *K.log(y_pred) * c_TN)
return - K.mean(cost, axis=-1)
return loss_function


然后用界说函数来创立y_input向量,练习价值活络的人工神经网络模型并进行猜测:

y_input =create_y_input(y_train, cost_FN_train).apply(float)
clf = ann(indput_dim=X_train.shape[1], dropout=0.2)
clf.compile(optimizer='adam', loss=cus胡静,案例详解:诈骗检测中的价值活络算法,梁左tom_loss(cost_FP, cost_TP,
cost_TN))
clf.fit(X_train, y_input, batch_size=50, epochs=2, verbose=1)
clf.predict(X胡静,案例详解:诈骗检测中的价值活络算法,梁左_test, verbose=1)


经过下面的散布图,可以看到价值活络学习的作用。跟着买卖金额的添加,猜测成果整体向右扩展(诈骗概率更高)。15zj512请注意,在这种状况下,由于问题的性质和丢失函数的界说,“猜测诈骗概率”是指“咱们要把这笔买卖认定为诈骗买卖吗?”而不是“这笔买卖是诈骗买卖吗?”




评价成果显现了价值活络学习的预期作用。本钱节省添加了5%,F1-score也下降了类似的起伏。价值活络分类的成果是误分类的数量越多,误分类的总本钱越低。







价值分类模型

与具有自界说丢失函数的价值活络模型不同,价值分类模型依据猜测概率核算预期本钱。猜测合法和诈骗买卖的预期价值核算如下:




然后分类器会挑选发生最低预期价值的猜测成果。

因而,本文运用了惯例逻辑回归模型和人工神经网络模型来得到概率猜测成果,并依据预期本钱对猜测进行了从头分类。下图显现了逻辑回归模型下价值相关分类的作用。猜测概率的散布没有由于惯例逻辑回归模型的散布而改动。可是,关于价值相关的分类,跟着买卖金额的添加,该模型倾向于将诈骗概率较小的买卖识别为诈骗性买卖。在图的右侧,咱们看到,即便诈骗概率挨近1,金额十分小的买卖也会被猜测为合法买卖。由于依据假定,真实类发生的办理价值为3美元。




依据预期本钱对猜测进行分类,可在本钱节省方面取得更好的成果(而依据F1-score进行分类,成果显着较差)。在人工神经网络模型下完成价值活络丢失函数的一同,价值分类人工神经网络模型可以将本钱下降10%。






定论


本文论述了两种依据信用卡诈骗猜测的价值活络分类的根本办法。

价值活络练习模型需求自界说丢失函数,而价值分类模型只需求每一类的概率和每一成果发生的价值来对买卖进行分类。在样例中,价值分类模型以很多误分类为价值,完成了较好的本钱节省。此外,价值分类模型更简单完成,由于它不需求练习自界说丢失函数。可是价值分类办法只适用于猜测概率的模型,正好逻辑回归模型和人工神经网络模型很合适猜测概率。可是,诈骗检测中广泛选用依据决策树的模型,通常将猜测成果直接分为不同类,使得价值分类办法行不通。依据决策树模型的价值活络办法在概念上与本文中介绍的办法类似,其完成更为杂乱。

留言 点赞 重视

咱们一同共享AI学习与开展的干货

欢迎重视全渠道AI垂类自媒体 “读芯术”