机器学习-随手笔记二(卷积神经网络tensorflow和iv值计算)(代码片段)

龙鸣丿 龙鸣丿     2022-12-07     190

关键词:

目录

卷积神经网络:

 TensorFlow: 

IV信息价值和证据权重:

 案例实战:

 IV值计算实战:

TensorFlow2.0


卷积神经网络:

简介:

简称CNN,20世纪60年代,Hubel和Wisesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效的降低反馈神经网络的复杂性,继而提出了卷积神经网络。

 

 

 

 

 

 

 TensorFlow: 

TensorFlow是什么?

TensorFlow架构:

TensorFlow基本使用:

 

 

 

input2的值变为了[6.0,6.0,6.0] 

TensorFlow机器学习例子--一元线性回归:

 

 

 

 

playground.tenforflow.org

IV信息价值和证据权重:

 

 

 

 

 

 

 

 案例实战:

 

 

 

 

 IV值计算实战:

1.背景

在计算woe以及相关的iv值的时候,需要首先对数据进行分箱,分箱一般采用qcut,即等频分组。

下面希望验证qcut(等频分组)-相同的值会在一组,即如果一组数据一半都是0,这些会被分在一组。

同时计算iv值并进行相关分析2 含有重复的数据
2.1 数据准备

import pandas as pd

a = [0]*50 + list(range(0,50))
print(len(a))
a[:5]


2.2 等频分组

pd.qcut(df['a'], 3).value_counts()

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-17-47659b591f84> in <module>
----> 1 pd.qcut(df['a'], 3).value_counts()


~\\Anaconda3\\lib\\site-packages\\pandas\\core\\reshape\\tile.py in qcut(x, q, labels, retbins, precision, duplicates)
    339         quantiles = q
    340     bins = algos.quantile(x, quantiles)
--> 341     fac, bins = _bins_to_cuts(
    342         x,
    343         bins,


~\\Anaconda3\\lib\\site-packages\\pandas\\core\\reshape\\tile.py in _bins_to_cuts(x, bins, right, labels, precision, include_lowest, dtype, duplicates)
    378     if len(unique_bins) < len(bins) and len(bins) != 2:
    379         if duplicates == "raise":
--> 380             raise ValueError(
    381                 f"Bin edges must be unique: repr(bins).\\n"
    382                 f"You can drop duplicate edges by setting the 'duplicates' kwarg"


ValueError: Bin edges must be unique: array([ 0.,  0., 16., 49.]).
You can drop duplicate edges by setting the 'duplicates' kwarg

报错原因:有很多的重复值并且没有加上去掉重复值的语句!

2.3 等频分组-加上去掉重复的值

 pd.qcut(df['a'], 3, duplicates='drop').value_counts()

3 不含有重复的数据

3.1 数据准备

 

 3.2 等频分组

pd.qcut(df['a'], 3).value_counts()
(-0.001, 33.0]    34
(66.0, 99.0]      33
(33.0, 66.0]      33
Name: a, dtype: int64

3.3 等频分组-加上去掉重复值

pd.qcut(df['a'], 3, duplicates='drop').value_counts()

(-0.001, 33.0]    34
(66.0, 99.0]      33
(33.0, 66.0]      33
Name: a, dtype: int64

4 iv计算

4.1 读入数据

import pandas as pd
from IV_Cal import * # 自己建立的脚本文件
df = pd.read_excel('工作簿1.xlsx')
print(df.shape)
df.head()

(51000, 31)

TODO因图像无法复制,先暂时用html源文件格式大概看,知道数据形式。后期修改,紧急!

<table border="1" class="dataframe"><thead><tr><th></th><th>idLoanActiveNum</th><th>idLoan30dNum</th><th>idLoan90dNum</th><th>idLoan180dNum</th><th>idLoan360dNum</th><th>idOrg30dNum</th><th>idOrg90dNum</th><th>idOrg180dNum</th><th>idOrg360dNum</th><th>idOrgActiveNum</th><th>...</th><th>idOverdueLoanAmt60</th><th>idOverdueLoanAmt90</th><th>idOverdueLoanAmt120</th><th>idOverdueLoanAmt150</th><th>idOverdueLoanAmt180</th><th>idActiveOverdueOrgNum</th><th>idOverdueOrgNum30</th><th>idOverdueOrgNum90</th><th>idOverdueOrgNum180</th><th>Y</th></tr></thead><tbody><tr><th>0</th><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>...</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>0</td></tr><tr><th>1</th><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>...</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>0</td></tr><tr><th>2</th><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>...</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>0</td></tr><tr><th>3</th><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>...</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>0</td></tr><tr><th>4</th><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>...</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>-1.0</td><td>0</td></tr></tbody></table>

 

 

 

 4.2 iv值计算

iv = IV_Cal(df,y_name='Y') # 指定y变量就好!
iv.cal()
iv.plot_iv('./output')
iv.save_info('./output')

                                   IV图生成
Try 10 bins.
Set bin label: mean.
Plotting idOverdueOrgNum180... (30/30)                           idOverdueLoanAmt180... (26/30)
Done.

最关键的还是看每个变量各自的iv值

df_var_iv = pd.read_csv('output/iv_rank_table.csv')
# 看一下iv值前五
df_var_iv[:5]

 4.3 结果分析

df['idOverdueLoanAmt'].value_counts()

 0.0    25484
-1.0    20030
 1.0     2462
 2.0      948
 3.0      706
 5.0      314
 4.0      311
 6.0      263
 7.0       90
 8.0        8
 9.0        1
Name: idOverdueLoanAmt, dtype: int64

df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 51000 entries, 0 to 50999
Data columns (total 31 columns):
 #   Column                  Non-Null Count  Dtype  
---  ------                  --------------  -----  
 0   idLoanActiveNum         50617 non-null  float64
 1   idLoan30dNum            50617 non-null  float64
 2   idLoan90dNum            50617 non-null  float64
 3   idLoan180dNum           50617 non-null  float64
 4   idLoan360dNum           50617 non-null  float64
 5   idOrg30dNum             50617 non-null  float64
 6   idOrg90dNum             50617 non-null  float64
 7   idOrg180dNum            50617 non-null  float64
 8   idOrg360dNum            50617 non-null  float64
 9   idOrgActiveNum          50617 non-null  float64
 10  idOverdueLoanAmt        50617 non-null  float64
 11  idActiveOverdueLoanBal  50617 non-null  float64
 12  idActiveOverdueLoanNum  50617 non-null  float64
 13  idOverdueLoanNum30      50617 non-null  float64
 14  idOverdueLoanNum60      50617 non-null  float64
 15  idOverdueLoanNum90      50617 non-null  float64
 16  idOverdueLoanNum120     50617 non-null  float64
 17  idOverdueLoanNum150     50617 non-null  float64
 18  idOverdueLoanNum180     50617 non-null  float64
 19  idTotalOverdueLoanNum   50617 non-null  float64
 20  idOverdueLoanAmt30      50617 non-null  float64
 21  idOverdueLoanAmt60      50617 non-null  float64
 22  idOverdueLoanAmt90      50617 non-null  float64
 23  idOverdueLoanAmt120     50617 non-null  float64
 24  idOverdueLoanAmt150     50617 non-null  float64
 25  idOverdueLoanAmt180     50617 non-null  float64
 26  idActiveOverdueOrgNum   50617 non-null  float64
 27  idOverdueOrgNum30       50617 non-null  float64
 28  idOverdueOrgNum90       50617 non-null  float64
 29  idOverdueOrgNum180      50617 non-null  float64
 30  Y                       51000 non-null  int64  
dtypes: float64(30), int64(1)
memory usage: 12.1 MB

以变量idOverdueLoanAmt为例进行分析:

具体箱子怎么划分的看上面txt的结果,而需要讲故事,看该变量的iv值和bad rate是否呈线性相关,无论是正相关还是负相关!方便解释以及放入到线性模型中(比如逻辑回归)~

对应曲线为:

TensorFlow2.0

TODO

《深度卷积神经网络原理与实践》笔记第一章机器学习基础

本笔记是依据周浦城等教授编著的《深度卷积神经网络原理与实践》的个人笔记(Version:1.0.2)整理作者:sq_csl第一章机器学习基础1.1机器学习概述1.1.1概念概念ML(MachineLearning)是一门发展了比较长时间... 查看详情

学习笔记卷积神经网络

一、卷积神经网络的应用场景      卷积神经网络(ConvolutionalNeuralNetworks,ConvNetsorCNNs)是一种在图像识别与分类领域被证明特别有效的神经网络。      卷积网络已经成功地识别人脸、物体... 查看详情

机器学习随手笔记(代码片段)

信息价值IV计算案例:#_*_coding:utf-8_*_#@Time:2022/5/819:57fromnumpyimportlogfrompandasimportDataFrameasdfimportpandasaspddefcreateDateset():dataSet=[[0,1,1],[0,0,0],[0,1,0],[1,0,1],[1,0,0],[1,1 查看详情

学习笔记tf027:卷积神经网络

卷积神经网络(ConvolutionalNeuralNetwork,CNN),可以解决图像识别、时间序列信息问题。深度学习之前,借助SIFT、HoG等算法提取特征,集合SVM等机器学习算法识别图像。SIFT,缩放、平移、旋转、视角转变、亮度调整畸变的一定程度内... 查看详情

[机器学习]ufldl笔记-convolutionalneuralnetwork-全连接局部连接卷积与池化

前言  本文是我在学习卷积神经网络(ConvolutionalNeuralNetwork)时的笔记,主要参考资料是AndrewNg老师在UFLDLTutorial中的相关章节。关于CNN的笔记在网络上很多了,本文不再详述各种细节,只对其中容易混淆和难... 查看详情

卷积神经网络学习笔记与心得数据集

机器学习领域有很多现成的数据集,它们由个人或组织制作、整理,且向外界公开下载,比如在字符识别领域有mnist数据集等,数据挖掘领域有Iris,Adult数据集等。这些数据集为相关技术研究者提供了很大的便捷,有了这些资源... 查看详情

deeplearning(深度学习)学习笔记整理(二)

...arning简介[2]DeepLearning训练过程[3]DeepLearning模型之:CNN卷积神经网络推导和实现[4]DeepLearning模型之:CNN的反向求导及练习[5]DeepLearning模型之:CNN卷积神经网络(一)深度解析CNN[6]DeepLearning模型 查看详情

最为详细的卷积神经网络笔记--吴恩达深度学习课程笔记

卷积神经网络(二)二、经典神经网络的结构:LeNet-5AlexNetVGGResNet2.1LeNet-52.2AlexNet-5可以同时在两个GPU上运行2.3VGG2.4残差网络ResNet下图是一个残差块,输入a[l]会传送到l+2层的线性部分之后,这样它会直接参加... 查看详情

李宏毅《机器学习》丨6.convolutionalneuralnetwork(卷积神经网络)

Author:AXYZdong李宏毅《机器学习》系列参考视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef参考文档:DataWhale文档文章目录一、为什么CNN用于图像处理二、CNN架构三、卷积(Convolution)四、Convolution和FullyConnected之... 查看详情

李宏毅《机器学习》丨6.convolutionalneuralnetwork(卷积神经网络)

Author:AXYZdong李宏毅《机器学习》系列参考视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef参考文档:DataWhale文档文章目录一、为什么CNN用于图像处理二、CNN架构三、卷积(Convolution)四、Convolution和FullyConnected之... 查看详情

李宏毅《机器学习》丨6.convolutionalneuralnetwork(卷积神经网络)

Author:AXYZdong李宏毅《机器学习》系列参考视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef参考文档:DataWhale文档文章目录一、为什么CNN用于图像处理二、CNN架构三、卷积(Convolution)四、Convolution和FullyConnected之... 查看详情

[机器学习]ufldl笔记-convolutionalneuralnetwork-矩阵运算

前言  卷积神经网络的核心操作就是各种矩阵运算,在前向传播和反向传播中的各种形式的矩阵运算构成了CNN的计算体系,本文将在卷积神经网络(ConvolutionalNeuralNetwork)的背景下对相关的矩阵运算进行梳理ÿ... 查看详情

李宏毅机器学习|图神经网络graphnerualnetworks(gnn)|学习笔记-part1

...IN(GraphIsomorphismNetwork)前言最近看的论文里面主要是就是图神经网络GraphNerualNetworks,然后就来学习下李宏毅机器学习中的图神经网络的内容,记个笔记。视频地址1Introduction GNN简单来说就是Graph+NerualNetworks,关键问题就是... 查看详情

深度学习深度学习基础学习笔记(代码片段)

...法进化历程5.BatchNormalization的由来6.抑制过拟合三、卷积神经网络(CNN)1.CNN解决了什么问题?2.基本组件3.卷积层4.池 查看详情

[机器学习]ufldl笔记-convolutionalneuralnetwork-矩阵运算

前言  卷积神经网络的核心操作就是各种矩阵运算,在前向传播和反向传播中的各种形式的矩阵运算构成了CNN的计算体系,本文将在卷积神经网络(ConvolutionalNeuralNetwork)的背景下对相关的矩阵运算进行梳理ÿ... 查看详情

机器学习12卷积神经网络(代码片段)

...法,深度学习是一种实现机器学习的技术。 2.全连接神经网络与卷积神经网络的联系与区别。  卷积神经网络也是通过一层一层的节点组织起来的。和全连接神经网络一样,卷积神经网络中的每一个节点就是一个神经元。... 查看详情

deeplearning.ai学习笔记卷积神经网络--week2深度卷积神经网络实例探究

...实例探究?通过他人的实例可以更好的理解如何构建卷积神经网络,本周课程主要会介绍如下网络LeNet-5AlexNetVGGResNet(有152层)Inception二、经典网络1.LeNet-5该网络主要针对灰度图像训练的,用于识别手写数字。该网络是在1980s提出的... 查看详情

14深度学习-卷积(代码片段)

...一种实现机器学习的技术和学习方法。 2. 全连接神经网络与卷积神经网络的联系与区别。解析:卷积神经网络也是通过一层一层的节点组织起来的。和全连接神经网络一样,卷积神经网络中的每一个节 查看详情