2018-09-11-银行营销二分类

参考网址:http://archive.ics.uci.edu/ml/datasets/Bank+Marketing

银行营销数据集 下载数据文件夹数据集描述摘要:该数据与葡萄牙银行机构的直接营销活动(电话)有关。分类目标是预测客户是否会订购定期存款(变量y)。  
   
**数据集特征: ** 多元 实例数: 45211 区: 商业
属性特征: 真实 属性数量: 17 捐赠日期 2012-02-14
相关任务: 分类 缺少价值观? N / A 网页点击次数: 675101

资源:

[Moro et al。,2014] S. Moro,P。Cortez和P. Rita。一种预测银行电话营销成功的数据驱动方法。决策支持系统,Elsevier,62:22-31,2014年6月

数据集信息:

该数据与葡萄牙银行机构的直接营销活动有关。营销活动基于电话。通常,如果产品(银行定期存款)是(’是’)或不是(’否’)订阅,则需要多个联系到同一客户。 有四个数据集: 1)bank-additional-full.csv包含所有示例(41188)和20个输入,按日期排序(从2008年5月到2010年11月),非常接近于[Moro et al。,2014]中分析的数据] 2)bank-additional.csv,其中10%的示例(4119),从1)中随机选择,以及20个输入。 3)bank-full.csv包含所有示例和17个输入,按日期排序(此数据集的旧版本具有较少的输入)。 4)bank.csv具有10%的示例和17个输入,从3中随机选择(具有较少输入的该数据集的旧版本)。 提供最小的数据集以测试计算要求更高的机器学习算法(例如,SVM)。 分类目标是预测客户是否订阅(是/否)定期存款(变量y)。

属性信息:

输入变量: #bank客户数据: 1 - 年龄(数字) 2 - 工作:工作类型(分类:’管理员’,’蓝领’,’企业家’,’女佣’,’管理’,’退休’ ,’自雇人员’,’服务’,’学生’,’技师’,’失业’,’未知’) 3 - 婚姻:婚姻状况(分类:’离婚’,’已婚’,’单身’,’未知’;注意:’离婚’意味着离婚或丧偶) 4 - 教育(分类:’basic.4y’,’basic.6y’,’basic.9y’,’high.school’,’illiterate’,’professional.course ‘,’university.degree’,’未知’) 5 - 默认:默认信用?(分类:’不’,’ 是’,’未知’)

6 - 住房:有住房贷款吗?(分类:’不’,’是’,’未知’) 7 - 贷款:有个人贷款吗?(分类:’不’,’是’,’未知’) #与当前广告系列的最后一次联系相关: 8 - 联系人:联系人沟通类型(分类:’手机’,’电话’) 9个月:上一个联系月份(分类:’jan’,’feb’,’ mar’,…,’nov’,’dec’) 10 - day_of_week:一周的最后一个联系日(分类:’mon’,’tue’,’wed’,’thu’,’fri’) 11 -持续时间:上次联系持续时间,以秒为单位(数字)。重要提示:此属性会严重影响输出目标(例如,如果持续时间= 0,则y =’否’)。然而,在执行呼叫之前不知道持续时间。此外,在通话结束后,显然已知y。从而,此输入仅应包含在基准目的中,如果打算采用现实的预测模型,则应将其丢弃。 #其他属性: 12 - 广告系列:此广告系列期间和此客户端执行的联系人数量(数字,包括最后一次联系) 13 - pdays:上一次广告系列上次联系客户端后经过的天数(数字; 999表示客户端不是先前已联系过) 14 - 上一篇:此活动之前和此客户之间执行的联系人数量(数字)

15 - poutcome:上一次营销活动的结果(分类:’失败’,’不存在’,’成功’)#social

and economic上下文属性 16 - emp.var.rate:就业变化率 - 季度指标(数字) 17 - cons.price.idx:消费者价格指数 - 月度指标(数字) 18 - cons.conf.idx:消费者信心指数 - 月度指标(数字) 19 - euribor3m:euribor 3个月费率 - 每日指标(数字) 20 - nr.employed:员工人数 - 季度指标(数字) 输出变量(需要)目标): 21 - y - 客户是否订购了定期存款?(二进制:’是’,’不’)

相关论文:

S. Moro,P。Cortez和P. Rita。一种预测银行电话营销成功的数据驱动方法。决策支持系统,Elsevier,62:22-31,2014年6月 S. Moro,R。Laureano和P. Cortez。使用数据挖掘进行银行直复营销:CRISP-DM方法论的应用。在P. Novais等人。(编辑),欧洲模拟与建模会议论文集 - ESM’2011,第117-121页,吉马良斯,葡萄牙,2011年10月.EUROSIS。[bank.zip]

引文要求:

该数据集可供公众研究。细节在[Moro等,2014]中描述。 如果您打算使用此数据库,请包括此引文: [Moro et al。,2014] S. Moro,P。Cortez和P. Rita。一种预测银行电话营销成功的数据驱动方法。决策支持系统,Elsevier,62:22-31,2014年6月

具体实践:

1 .查看数据:

import  pandas as pd
input_path = "E:\分类问题\数据集\\bank-additional\\bank-additional\\bank-additional-full.csv"
data = pd.read_csv(input_path, sep=';')

data.info()
data.describe()

数据查看结果:

D:\1b\Anoconda\setup\set\envs\tensorflow\python.exe E:/python_workspace/ML/TextClassification/bankClassification.py
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 41188 entries, 0 to 41187
Data columns (total 21 columns):
age               41188 non-null int64
job               41188 non-null object
marital           41188 non-null object
education         41188 non-null object
default           41188 non-null object
housing           41188 non-null object
loan              41188 non-null object
contact           41188 non-null object
month             41188 non-null object
day_of_week       41188 non-null object
duration          41188 non-null int64
campaign          41188 non-null int64
pdays             41188 non-null int64
previous          41188 non-null int64
poutcome          41188 non-null object
emp.var.rate      41188 non-null float64
cons.price.idx    41188 non-null float64
cons.conf.idx     41188 non-null float64
euribor3m         41188 non-null float64
nr.employed       41188 non-null float64
y                 41188 non-null object
dtypes: float64(5), int64(5), object(11)
memory usage: 6.6+ MB

               age      duration      campaign         pdays      previous  \
count  41188.00000  41188.000000  41188.000000  41188.000000  41188.000000   
mean      40.02406    258.285010      2.567593    962.475454      0.172963   
std       10.42125    259.279249      2.770014    186.910907      0.494901   
min       17.00000      0.000000      1.000000      0.000000      0.000000   
25%       32.00000    102.000000      1.000000    999.000000      0.000000   
50%       38.00000    180.000000      2.000000    999.000000      0.000000   
75%       47.00000    319.000000      3.000000    999.000000      0.000000   
max       98.00000   4918.000000     56.000000    999.000000      7.000000   

       emp.var.rate  cons.price.idx  cons.conf.idx     euribor3m   nr.employed  
count  41188.000000    41188.000000   41188.000000  41188.000000  41188.000000  
mean       0.081886       93.575664     -40.502600      3.621291   5167.035911  
std        1.570960        0.578840       4.628198      1.734447     72.251528  
min       -3.400000       92.201000     -50.800000      0.634000   4963.600000  
25%       -1.800000       93.075000     -42.700000      1.344000   5099.100000  
50%        1.100000       93.749000     -41.800000      4.857000   5191.000000  
75%        1.400000       93.994000     -36.400000      4.961000   5228.100000  
max        1.400000       94.767000     -26.900000      5.045000   5228.100000  

Process finished with exit code 0

2. 缺失值处理: «««< HEAD =======

查看unknown值的变量

for i in data.columns:
    if type(data[i][0]) is str:
        print("unknown value count in "+i+":\t" + str(data[data[i]=="unknown"]['y'].count()))
print(data.columns)第一行的数据
"""
Index(['age', 'job', 'marital', 'education', 'default', 'housing', 'loan',
       'contact', 'month', 'day_of_week', 'duration', 'campaign', 'pdays',
       'previous', 'poutcome', 'emp.var.rate', 'cons.price.idx',
       'cons.conf.idx', 'euribor3m', 'nr.employed', 'y'],
      dtype='object')
"""

结果

unknown value count in job:	330
unknown value count in marital:	80
unknown value count in education:	1731
unknown value count in default:	8597
unknown value count in housing:	990
unknown value count in loan:	990
unknown value count in contact:	0
unknown value count in month:	0
unknown value count in day_of_week:	0
unknown value count in poutcome:	0
unknown value count in y:	0

f63106675d03661cc06186a61af504096d689591

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦