sofasofa上的交通理赔 模型:朴素贝叶斯

本文介绍了一个基于朴素贝叶斯算法的理赔预测模型。该模型通过对数据集进行预处理、分割正负样本、计算条件概率等步骤,实现了对理赔申请是否通过的预测,并计算了分类错误率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 
p1Num=zeros(36)#正例

#p0Denom=0.0 为了防止分母为0 调整值 
#p1Denom=0.0
p0Denom=2.0
p1Denom=2.0
t_nums = totals['t'] #正列的行数
f_nums = totals['f']

# 所有正列问题值的矩阵 numpy.ndarray
t_Qs=trainY.loc[trainY.index[0:t_nums]].values[0:-1] 
f_Qs=trainN.loc[trainN.index[0:f_nums]].values[0:-1]

#遍历所有正例的问题 对问题的向量进行加合 得出在未理赔的情况下 每个问题的和
for line in t_Qs:
    p1Num += line #向量加合 还是向量
    #对向量中的元素进行求和 也就是未理赔的行中出现的问题总数
    p1Denom += sum(p1Num)
#在未理赔的情况下 每个问题的出现概率 log方便计算机的精度计算 采用对数处理不会有任何损失
p1Vec = log(p1Num/p1Denom) #[1,2,....]/100 -> 1/100 2/100

for line in f_Qs:
     p0Num += line
    #对向量中的元素进行求和 也就是理赔的行中出现的问题总数
     p0Denom += sum(p0Num)
#在理赔的情况下 每个问题的出现概率
p0Vec = log(p0Num/p0Denom)

5.利用朴素贝叶斯进行分类并计算错误率

分类
def classNB(vecClass,label,p0Vec,p1Vec,totals):
    count=0
    err=0
    p0=sum(p0Vec*vecClass)+math.log(totals['n']/(totals['y']+totals['n']))
    p1=sum(p1Vec*vecClass)+math.log(totals['y']/(totals['y']+totals['n']))
    a=0
    if p1>p0:
        a=1
    if label[count]!=a:
        err+=1
    count+=1
    print(float(err/count)) 
    print('p0:',p0,'   p1:',p1)
    if(p0>p1):
        print('我不赔你,气死你')
    else:
        print('赔你钱,我认输')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值