99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀項(xiàng)目案例之決策樹在保險行業(yè)的應(yīng)用
項(xiàng)目案例之決策樹在保險行業(yè)的應(yīng)用
2019-09-12
收藏
項(xiàng)目案例之<a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹</a>在保險行業(yè)的應(yīng)用

作者 | CDA數(shù)據(jù)分析師

業(yè)務(wù)背景——保險行業(yè)


業(yè)務(wù)環(huán)境

  • 宏觀

中國是世界第二大保險市場,但在保險密度上與世界平均水平仍有明顯差距

  • 業(yè)界

保險行業(yè)2018年保費(fèi)規(guī)模為38萬億,同比增長不足4%,過去“短平快“的發(fā)展模式已經(jīng)不能適應(yīng)新時代的行業(yè)發(fā)展需求,行業(yè)及用戶長期存在難以解決的痛點(diǎn),限制了行業(yè)發(fā)展發(fā)展環(huán)境。

  • 社會

互聯(lián)網(wǎng)經(jīng)濟(jì)的發(fā)展,為保險行業(yè)帶來了增量市場,同時隨著網(wǎng)民規(guī)模的擴(kuò)大,用戶的行為習(xí)慣已發(fā)生轉(zhuǎn)變,這些都需要互聯(lián)網(wǎng)的方式進(jìn)行觸達(dá)。

保險科技:當(dāng)前沿科技不斷應(yīng)用于保險行業(yè),互聯(lián)網(wǎng)保險的概念將會與保險科技概念高度融合。

項(xiàng)目案例之<a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹</a>在保險行業(yè)的應(yīng)用

(資料來源: 艾瑞研究院自主研究及繪制C2019.6 iResearch)

中國保險市場持續(xù)高速增長。根據(jù)銀保監(jiān)會數(shù)據(jù),2011~2018年,全國保費(fèi)收入從1.4萬億增長至3.8萬億,年復(fù)合增長率17.2%。2014年,中國保費(fèi)收入突破2萬億,成為全球僅次于美國、日本的第三大新興保險市場市場;2016年,中國整體保費(fèi)收入突破3萬億,超過日本,成為全球第二大保險市場;2019年,中國保費(fèi)收入有望突破4萬億。


發(fā)展現(xiàn)狀

  • 概覽

受保險行業(yè)結(jié)構(gòu)轉(zhuǎn)型時期影響,互聯(lián)網(wǎng)保險整體發(fā)展受阻,2018年行業(yè)保費(fèi)收入為1889億元, 較去年基本持平,不同險種發(fā)展呈現(xiàn)分化格局,其中健康險增長迅猛,2018年同比增長108%,主要 由短期醫(yī)療險驅(qū)動

  • 格局

供給端專業(yè)互聯(lián)網(wǎng)保險公司增長迅速,但過高的固定成本及渠道費(fèi)用使得其盈利問題凸顯,加 發(fā)展現(xiàn)狀強(qiáng)自營渠道建設(shè)及科技輸出是未來的破局方法,渠道端形成第三方平臺為主,官網(wǎng)為輔的格局,第三 方平臺逐漸發(fā)展出B2C、B2A、B2B2C等多種創(chuàng)新業(yè)務(wù)模式。

  • 模式

互聯(lián)網(wǎng)保險不僅僅局限于渠道創(chuàng)新,其核心優(yōu)勢同樣體現(xiàn)在產(chǎn)品設(shè)計(jì)的創(chuàng)新和服務(wù)體驗(yàn)的提升 竟合格局:隨著入局企業(yè)増?jiān)龆?流量爭奪更加激烈,最終保險公司與第三方平臺深度合作將成為常態(tài) 發(fā)展趨勢


發(fā)展趨勢

  • 競合格局

隨著入局企業(yè)增多,流量爭奪更加激烈,最終保險公司與第三方平臺深度合作將成為常態(tài)。 發(fā)展趨勢

  • 保險科技

當(dāng)前沿科技不斷應(yīng)用于保險行業(yè),互聯(lián)網(wǎng)保險的概念將會與保險科技概念高度融合。


衡量指標(biāo)

項(xiàng)目案例之<a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹</a>在保險行業(yè)的應(yīng)用

圖片來源:《聚焦客戶體驗(yàn),數(shù)據(jù)驅(qū)動重塑保險行業(yè)》白皮書


業(yè)務(wù)目標(biāo)

針對保險公司的健康險產(chǎn)品的用戶,制作用戶畫像,然后進(jìn)行精準(zhǔn)保險營銷。


數(shù)據(jù)分析

分析流程框架

項(xiàng)目案例之<a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹</a>在保險行業(yè)的應(yīng)用

本次案例的數(shù)據(jù)數(shù)據(jù)的字段含義如下:

項(xiàng)目案例之<a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹</a>在保險行業(yè)的應(yīng)用

導(dǎo)入數(shù)據(jù)

import pandas as pd

df = pd.read_csv(r'data.csv', sep=',', header = 0)

df.shape

(5000000, 50)

在這里我們可以看到我們的數(shù)據(jù)是有5000000條記錄和19個特征


數(shù)據(jù)探索性分析

描述性統(tǒng)計(jì)

在我們正式建模型之前,我們需要對我們的數(shù)據(jù)進(jìn)行描述性統(tǒng)計(jì),這樣我們就能知道整個數(shù)據(jù)的大致分布是什么樣的,做到心里有數(shù),然后能夠數(shù)據(jù)大致的全貌有一定的了解。

type_0=df.dtypes

type_0.to_excel( 'original.xlsx')

#將 KBM_INDV_ID 的int64轉(zhuǎn)化為object

df['KBM_INDV_ID']=df['KBM_INDV_ID'].astype('object')

describe=df.describe().T

type(describe)

describe.to_excel( '../output/describe_var.xlsx')

# 引入畫圖模塊

import seaborn as sns

import matplotlib.pyplot as plt

import numpy as np

# 為分類型變量:所處區(qū)的大小,創(chuàng)建直方圖

plt.subplot(1, 2, 1)

sns.countplot(x='N2NCY', hue='resp_flag', data=df); #設(shè)置 x,y 以及顏色控制的變量,以及畫圖的數(shù)據(jù)

plt.xlabel('N2NCY');

plt.ylabel('Frequency');

#了解因變量的分布

Resp_count=df['KBM_INDV_ID'].groupby(df['resp_flag']).count()

print(Resp_count)

str(round(Resp_count[1]/len(df)*100,2))+str('%') #查看購買了

項(xiàng)目案例之<a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹</a>在保險行業(yè)的應(yīng)用

從這個圖片我們可以看到,買了保險的用戶和未買保險的人所處縣的情況。


缺失值處理

我們需要對數(shù)據(jù)進(jìn)行缺失值檢查,先對每一條記錄查看是否有缺失,然后查看一下每一個特征是否有缺失,然后進(jìn)行相應(yīng)的缺失值處理。

Next Step:

# 檢查是否有缺失的行

df.shape[0]-df.dropna().shape[0] ###

# 檢查是否有缺失的列

len(df.columns)-df.dropna(axis =1).shape[1] #626

NA=df.isnull().sum()

print('orginal NA=',NA)

NA=NA.reset_index()

NA.columns=['Var','NA_count']

NA=NA[NA.NA_count>0].reset_index(drop=True)

print(NA)

NA.to_excel( '../output/var_incl_na.xls',index=False)

####處理缺失值

var_char_na=[]

# 我們對連續(xù)型數(shù)據(jù)進(jìn)行中位數(shù)填補(bǔ),然后對離散型數(shù)據(jù)進(jìn)行特殊值填補(bǔ),我們這里利用的是N

for i in range(len(NA)):

if NA['NA_count'][i]/len(df)>0.75 or len(df[NA['Var'][i]].unique())<=2 :

del df[NA['Var'][i]]

elif df[NA['Var'][i]].dtypes!="object":

# 填充缺失值-中位數(shù)

for_na_value = df[NA['Var'][i]].quantile(0.5)

# for_na_value

df[NA['Var'][i]] = df[NA['Var'][i]].fillna(for_na_value)

elif df[NA['Var'][i]].dtypes=="object" and len(df[NA['Var'][i]].unique())<=3:

df[NA['Var'][i]] = df[NA['Var'][i]].fillna('N', inplace=True)

else:

var_char_na.append(NA['Var'][i])

var_char_na


處理分類型變量

#Drop Variables that are not necessary

drop_list=['STATE_NAME','KBM_INDV_ID']

for var in drop_list:

del df[var]

## 檢查數(shù)據(jù)集中數(shù)值型變量和字符型變量

var_num = []

var_char_uniq2 = []

var_char_mul= []

for var in list(df):

if df[var].dtypes=="object" and len(df[var].unique())>2:

var_char_mul.append(var)

elif df[var].dtypes!="object" :

var_num.append(var)

else:

var_char_uniq2.append(var)

##處理多值型字符變量

for var in var_char_mul:

temp= pd.get_dummies(df[var], prefix=var, prefix_sep='_')

print(temp)

for var2 in list(temp):

if var2 in '_nan':

del temp[var2]

del df[var]

df = pd.concat([df,temp], axis=1)

del temp

len(df.columns) ##88

df.head(5)

df.to_excel( '../output/data.xls',index=False)

##處理二值型的字符變量

import numpy as np

from sklearn.preprocessing import LabelEncoder

def integer_encode(var):

values = np.array(df[var])

label_encoder = LabelEncoder()

df[var] = label_encoder.fit_transform(values)

for var in var_char_uniq2:

if len(df[var].unique())<2:

del df[var]

else: integer_encode(var)


建模

當(dāng)我們發(fā)現(xiàn),我們的數(shù)據(jù)中分類變量比較多,我們嘗試采取決策樹進(jìn)行建模,

具體理由:我們做出來的模型需要指導(dǎo)業(yè)務(wù)人員進(jìn)行使用,那么要求做出來的模型的可解釋要高,而決策樹模型的解釋性就很強(qiáng),那么業(yè)務(wù)人員理解起來就會很容易,那么之后進(jìn)行應(yīng)用就不用再專門進(jìn)行對業(yè)務(wù)人員的培訓(xùn),直接讓他按照模型做出來的結(jié)果進(jìn)行后續(xù)的業(yè)務(wù),會提升效率。

# 引用sklearn 模塊

from sklearn import tree

from sklearn.model_selection import train_test_split

from sklearn.metrics import classification_report

#from sklearn import cross_validation, metrics

from sklearn import metrics

from sklearn.model_selection import cross_val_score

#from sklearn.grid_search import GridSearchCV

from sklearn.model_selection import GridSearchCV

import matplotlib.pylab as plt

from matplotlib.pylab import rcParams

rcParams['figure.figsize'] = 12, 4

##在模型樣本內(nèi)將數(shù)據(jù)集7:3分,70%用來建模,30%用來測試

# 定義特征變量和目標(biāo)變量

features= list(df.columns[1:])

X = df[features]

y = df['resp_flag']

# 將數(shù)據(jù)集7:3分,70%用來建模,30%用來測試

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3)

clf = tree.DecisionTreeClassifier()

param_test={'min_samples_leaf':list(range(1000,6000,100)),'min_samples_split':list(range(4000,6000,100))}

gsearch = GridSearchCV(estimator=clf,

param_grid = param_test, scoring='roc_auc',n_jobs=1,iid=False, cv=5)

gsearch.fit(X_train,y_train)

#gsearch.grid_scores_, gsearch.best_params_, gsearch.best_score_

gsearch.cv_results_, gsearch.best_params_, gsearch.best_score_

驗(yàn)證輸出結(jié)果

clf = tree.DecisionTreeClassifier(

class_weight=None,

criterion='gini',

max_features=None,

max_leaf_nodes=8,

min_samples_leaf=2000,

min_samples_split=5000,

min_weight_fraction_leaf=0.0,

splitter='best' )

results=modelfit(clf, X_train, y_train, X_test,y_test)


畫出決策樹

import os

import pydotplus

from IPython.display import Image

from sklearn.externals.six import StringIO

#os.environ["PATH"] += os.pathsep + 'C:/Users/yacao/Downloads/graphviz-2.38/release/bin'

dot_data = StringIO()

tree.export_graphviz(clf, #決策樹分類器

out_file = dot_data)

項(xiàng)目案例之<a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹</a>在保險行業(yè)的應(yīng)用


輸出規(guī)則

if (df['meda'][i] <= 56.5 ):

if (df['age'][i] <= 70.5 ):

if (df['c210hva'][i] <= 312.5 ):

if (df['ilor'][i] <= 10.5 ):

temp=11

segment.append(temp)

else:

temp=12

segment.append(temp)

else:

temp=8

segment.append(temp)

else:

if (df['tins'][i] <= 5.5 ):

temp=9

segment.append(temp)

else:

temp=10

segment.append(temp)

else:

if (df['pdpe'][i] <= 46.5 ):

if (df['MOBPLUS_M'][i] <= 0.5 ):

temp=13

segment.append(temp)

else:

temp=14

segment.append(temp)

else:

temp=4

segment.append(temp)

項(xiàng)目案例之<a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹</a>在保險行業(yè)的應(yīng)用


業(yè)務(wù)應(yīng)用

我們來看一下購買比例最高的兩類客戶的特征是什么:

第一類:

  • 處于醫(yī)療險覆蓋率比例較低區(qū)域
  • 居住年限小于7年
  • 65-72歲群體

那么我們對業(yè)務(wù)人員進(jìn)行建議的時候就是,建議他們在醫(yī)療險覆蓋率比例較低的區(qū)域進(jìn)行宣傳推廣,然后重點(diǎn)關(guān)注那些剛到該區(qū)域且年齡65歲以上的老人,向這些人群進(jìn)行保險營銷,成功率應(yīng)該會更高。

第二類:

  • 處于醫(yī)療險覆蓋率比例較低區(qū)域
  • 居住年限大于7年
  • 居住房屋價值較高

這一類人群,是區(qū)域內(nèi)常住的高端小區(qū)的用戶。這些人群也同樣是我們需要重點(diǎn)進(jìn)行保險營銷的對象。


除此之外,我們還可以做什么呢?


了解客戶需求

我們需要了解客戶的需求,并根據(jù)客戶的需求舉行保險營銷。PIOS數(shù)據(jù):向客戶推薦產(chǎn)品,并利用個人的數(shù)據(jù)(個人特征)向客戶推薦保險產(chǎn)品。旅行者:根據(jù)他們自己的數(shù)據(jù)(家庭數(shù)據(jù)),生活階段信息推薦的是財務(wù)保險、人壽保險、保險、舊保險和用戶教育保險。外部數(shù)據(jù)、資產(chǎn)保險和人壽保險都提供給高層人士,利用外部數(shù)據(jù),我們可以改進(jìn)保險產(chǎn)品的管理,增加投資的收益和收益。


開發(fā)新的保險產(chǎn)品

保險公司還應(yīng)協(xié)助外部渠道開發(fā)適合不同商業(yè)環(huán)境的保險產(chǎn)品,例如新的保險類型,如飛行延誤保險、旅行時間保險和電話盜竊保險。目的是提供其他保險產(chǎn)品,而不是從這些保險中受益,而是尋找潛在的客戶。此外,保險公司將通過數(shù)據(jù)分析與客戶聯(lián)系,了解客戶。外部因素將降低保險的營銷成本,并直接提高投資回報率。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }