————————————————————————
一、信用风险建模中神经网络的应用
申请评分可以将神经网络 逻辑回归联合使用。
《公平信用报告法》制约,强调评分卡的可解释性。所以初始评分(申请评分)一般用回归,回归是解释力度最大的。
神经网络可用于银行行为评级以及不受该法制约监管的业务(P2P)。其次,神经也可以作为申请信用评分的金模型。
金模型的使用:一般会先做一个神经网络,让预测精度(AUC)达到最大时,再用逻辑回归。
建模大致流程:
一批训练集 测试集 一批字段——神经网络建模看AUC——如果额定的AUC在85%,没超过则返回重新筛选训练、测试集以及字段;
超过则,可以后续做逻辑回归。
——笔记︱风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)
——————————————————————————————————————————
二、激活函数
神经网络模型中,激活函数是神经网络非线性的根源。
1、sigmoid函数=Logit
其实就是逻辑回归的转化,神经网络=逻辑回归 变量的自动转化
如果激活函数是sigmoid的话,神经网络就是翻版的逻辑回归,只不过会自动转化(适合排序)
2、高斯型函数
适合分类 聚类,识别类(欺诈行业很好,因为行为跟别人不一样,属于异常),在二维空间中就是等高线。
——————————————————————————————————————————
三、感知器
1、单感知器——无隐藏层
Delta规则,w就是权重。很重要
单层感知器,相当于只要了神经网络的输入层以及输出层,比较简单,所以感知器其实相当于线性回归,也叫做线性神经网络,没有隐藏层
2、多层感知器——加入隐藏层
两个隐藏层可以做任何复杂形状域。隐藏层因为属于黑箱,隐藏层越多,会产生过拟合现象(泛化能力不强),并且模型稳健性较差,但是要是模型调试的好,也是一匹“黑马”。
回归出现的所有错误(多重共线性(需进行变量筛选)、缺失值),神经网络都会出现,因为当激活函数为sigmoid时,等同于逻辑回归。
3、BP神经网络——多层感知器
BP神经网络对数据有严格要求,需要做极差标准化。
△,小,就会摆动;大,乱跑;设置多少没有定论
——————————————————————————————————————————
四、BP神经网络-R语言实现——nnet包 AMORE包
BP神经网络需要对数据进行标准化,所以建模之间切记要进行标准化。
代码语言:javascript复制library(nnet)
help(package="nnet")
model_nnet<-nnet(y~., linout = F,size = 24, decay = 0.01, maxit = 100,trace = F,data = train)
#对分类数据预测需要加上y参数
#decay就是eta权重的调节,默认为0
#linout=F默认,线性回归;T代表逻辑回归(激活函数只有一个sigmoid)
#size就是隐藏层的个数,若size=0就是单感知器模型
linout=F代表线性回归,T代表逻辑回归(激活函数为sigmod);
maxit代表最大循环迭代的次数,该值并不是越大越好,越大过拟合现象更严重,要调节在适当的数量。
size代表隐藏层大小,也跟迭代次数一样,层次越多过拟合现象加重,就会把训练集的很多噪声都拿来做建模,虽然训练集的精度高了,但是测试集的精度反而弱了,就是因为训练集噪声不适合于测试集的噪声。
BP神经网络调节模型精度AUC值的话:一般会选择调整maxit(最大迭代次数) size(隐藏层大小)来调整最优精度。这里可以自编译一些函数来实现,CDA-DSC课程中就有一个自编译函数来进行选择。但是会耗费大量的运行速度。
AMORE包有待继续深入研究。
————————————————————————————
应用一:报错Error in nnet.default(x, y, w, entropy = TRUE, ...)
代码语言:javascript复制Error in nnet.default(x, y, w, entropy = TRUE, ...) :
too many (1209) weights
这个是因为隐藏层多了之后,运算不了,台式机不能运行那么多,所以要通过调整size的隐藏层个数来看效果如何。