1.加载数据集
import pandas as pd
data = pd.read_csv('train.csv')
#使用dropna方法删除含有缺失值的行,默认是行 直接在原DF上进行删除 不返回
data.dropna(inplace=True)
#Evaluation 0表示授予理赔,1表示未通过理赔审核
data.head(3)
#data.info()#没有缺失值
2.分割正负样本
#把数据分为理赔和未通过理赔 未通过为正例
Eva_t = data[data['Evaluation']==1]
Eva_f = data[data['Evaluation']==0]
#print(Eva_t.head(3))
# 所有的正负样本数
totals = {'t':len(Eva_t),'f':len(Eva_f)}
print(totals)
输出结果:
{'t': 31601, 'f': 168399}
3.取出正负样本的属性列
trainY = Eva_t.iloc[:,1:-1] #正列的问题列
trainN = Eva_f.iloc[:,1:-1]
trainY.head(3)
4.理赔和未理赔的情况下每个问题的概率
from numpy import *
import math
p0Num=zeros(36)#36个0
p1N