一、目的:
评估分数B是否可以替换分数A
二、数据背景:
1.A分值越高,客户坏的可能性越高
2.B分值越高,客户坏的可能性越低
三、代码实施:
import pandas as pd
import os
import numpy as np
import math
import matplotlib as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
import matplotlib.pyplot as plt
import seaborn as sns
os.listdir()
shuju=pd.read_excel(r'数据AB样本.xlsx')
shuju.columns=['订单号','A','B','产品代码'] #更改列名
shuju=shuju[shuju['A']!=-999] #剔除脏数据
shuju=shuju[shuju['A']!=0.0] #剔除脏数据
shuju_stand=shuju[['A','B']].apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)),axis=0) #将数据0-1标准化
#进行分箱,分10箱
kong=[] #生成10个分组
for i in range(0,11):
kong.append(i/10)
shuju_stand['A_分箱']=pd.cut(shuju_stand.A,kong,right=False)
shuju_stand['B_分箱']=pd.cut(shuju_stand.B,kong,right=False)
shuju_stand_cross=pd.crosstab(shuju_stand.A_分箱,shuju_stand.B_分箱) #构建交叉表
#绘图
f, ax = plt.subplots(figsize=(18, 6))
sns.heatmap(shuju_stand_cross,annot=True, fmt="d") #绘制热力图
f.savefig('数据v2.jpg', bbox_inches='tight') #保存图片
四、结论:
分数B是不可以替换分数A,偏移明显.
参考文档:
https://www.cnblogs.com/panchuangai/p/13829272.html