96SEO 2026-02-19 23:55 11
。

本文分析了传统商业银行面临的挑战#xff0c;并基于knn、逻辑回归、人工神经网络三种算法#xff0…#1024程序员节
在新时代下消费者的需求结构、内容与方式发生巨大改变企业要想获取更多竞争优势需要借助大数据技术持续创新。
本文分析了传统商业银行面临的挑战并基于knn、逻辑回归、人工神经网络三种算法对银行客户的贷款需求进行分析。
最后使用KMeans聚类算法进行客群分析绘制出雷达图、t-SNE散点图、柱状图多方面展现客户贷款行为。
银行主要业务包括:资产业务、负债业务、中间业务。
其中资产业务主要是指贷款业务并且它也是银行目前主要的收入来源。
同时随着互联网金融的兴起一些客户向线上交易方式转移国有银行的垄断地位开始动摇其原因主要是这些互联网金融机构利用大数据、云计算、区块链、人工智能、物联网等技术将其应用在很多应用场景中包括智能投研、智能投顾、智能客服、智能营销、智能风控、银行云等这些技术的作用不只是扩大客户的融资需求还可以用于风险控制、项目评估等方面达到利益与风险相均衡的状态。
为扭转这一局面传统银行业开始转型升级与互联网领域融合优化盈利模式。
分析贷款客户的年龄、婚姻状况、教育水平、职业等特征针对这些客户的特征进行分类对每一类客户群体做出不同的营销方案。
如图1-1、1-2所示从年龄上分析进入银行办理业务的客户年龄大多集中在25-65岁之间而具有贷款需求的客户的年龄分布与之相一致同时贷款客户占银行客户总人数的16.03%说明贷款业务有很大的市场潜力可以通过一些措施来激发客户的贷款需求。
plt.hist(o_data.loc[o_data[loan]yes,age].values,colorred,labely,range(10,80),alpha0.1)
plt.hist(o_data.loc[o_data[loan]no,age].values,colorgreen,labeln,range(10,80),alpha0.1)
u,cnp.unique(np.array(data[loan]).astype(np.str),return_countsTrue,axis0)
如图1-3所示从职业上分析银行客户的职业大多集中在蓝领、银行人员、服务业从事人员、技术人员而职业为蓝领的客户贷款可能性最大。
如图1-4所示从受教育水平上分析大部分银行客户的受教育水平处在中等、高等教育水平有一小部分客户的受教育水平未知。
sns.countplot(xdata.education,huedata.loan,paletteSet1)
如图1-5所示从婚姻状况上分析各种情况的人数占比都差不多其中已婚和离婚的客户人数较多。
around(dataY.loc[dataY[marital]single,marital].count()/data.loc[data[marital]single,marital].count(),2)
bround(dataY.loc[dataY[marital]married,marital].count()/data.loc[data[marital]married,marital].count(),2)
cround(dataY.loc[dataY[marital]divorced,marital].count()/data.loc[data[marital]divorced,marital].count(),2)
l[0.13,0.17,0.18]plt.bar([single,
与业务情况相关的因素主要包括与客户的交流方式、交流次数、客户的账户平均余额通过对这一方面的分析可以制定出贷款方案以更大程度的满足客户需求同时通过对客户交易情况的了解将信息推送限制在一定范围内给客户带来银行交易的愉悦感增强与客户之间的信任。
如图1-6、1-7、1-8所示从账户平均余额上分析客户的贷款金额较小大多集中在0-3000元之间高端客户资源稀少。
从与客户办理业务时的交流方式上分析大部分客户使用手机进行信息咨询。
从交流次数上分析与客户的交流次数大多集中在1-5次之间。
plt.hist(data[balance],colorblue,labely,range(0,15000),alpha0.1)
meanround(data.iloc[:,14].describe()[1],0)
data.loc[data[:][previous]250,previous]mean
data.loc[data[:][previous]0,previous]mean
data[:][previous]data[:][previous].astype(int64)#交流次数
sns.countplot(xprevious,datadataY.loc[dataY[previous]30,:],paletteSet1)
如图1-9、1-10所示由于原始数据的列数过多考虑到在构建模型阶段可能会浪费很多的时间因此我们用逻辑回归分析方法对数据进行筛选删除不必要的列最后筛选出job、material、education、balance、housing、contact、previous、loan这几列经过评估模型的平均正确率为0.8438。
datadata.loc[:,[job,marital,education,balance,housing,contact,previous,loan,age,default]]
如图1-10所示使用info()方法来查看每一列的数据类型其中balance、previous这两列属于连续型数据。
这类数据的处理方法是通过绘制箱线图查看是否存在异常值如果存在需要利用describe()查看该列的均值用均值替换掉异常值。
meanround(data.iloc[:,3].describe()[1],0)
data.loc[data[:][balance]100000,balance]mean
data.loc[data[:][balance]0,balance]mean
构造如下函数来处理离散型数据首先要查看所在列中的值的种类数并创建一个连续的数组然后将该列的所有数据用数据进行替换并将数据类型转成int64。
replaceData(df):countdata[df].describe()[1]l[]for
range(0,count):l.append(str(i))data[df].replace(np.unique(data[df]),l,inplaceTrue)data[df]data[df].astype(int64)
data[job].replace([blue-collar,
technician,unemployed],l,inplaceTrue)
replaceData(df):countdata[df].describe()[1]l[]for
range(0,count):l.append(str(i))data[df].replace(np.unique(data[df]),l,inplaceTrue)
对银行客户的贷款需求做分析需要用到分类算法我们将使用knn、逻辑回归分析和人工神经网络三种算法来构建模型并对模型进行评估计算每种算法的准确率。
Knn是一种基于已有样本进行推理的算法通过对已有训练样本集和新进的未知样本做比较找到与未知样本最相似的k个样本。
最后通过对这k个样本的类标号投票得出该测试样本的类别。
1.对离散数据做one-hot编码将编码后的数据与连续型数据进行拼接并对该数据统一做归一化处理保证所有列对预测结果的影响程度都相同。
2.编写函数根据测试集准确率与训练集准确率的比值选定n-neighbors参数的值。
3.预测并得出测试集准确率与训练集准确率。
通过计算得出测试集准确率为0.8368训练集准确率为0.8482。
iris_y,test_size0.4,random_state2)knn
KNeighborsClassifier(n_neighborsn)#
训练knn.fit(X_train,y_train)accuracy_trainknn.score(X_train,
y_train)#评估-精确率accuracy_testknn.score(X_test,
y_test)#评估-精确率print(str(round(accuracy_test/accuracy_train,2)))
如图2-1、2-2所示通过构建混淆矩阵的方式对模型进行评估其中对无贷款需求的客户判定的准确率为85%对有贷款需求的客户判定的准确率为24%总体准确率为84%证明预测结果有效。
metrics.accuracy_score(y_test_pre,
plt.imshow(metrics.confusion_matrix(y_test_pre,
print(classification_report(y_test,y_test_pre))
plt.scatter(range(0,50),data.iloc[39951:,8],
colorg,label实际值,linewidth3,alpha0.1)
plt.scatter(range(0,50),y_train[23950:],
colorr,label预测值,linewidth2,alpha0.1)
sns.barplot(xndata.job,yndata.education,huendata.knn,paletteSet1)
贷款客户主要集中在蓝领、管理者、技术人员中且客户的教育水平普遍都很高
plt.hist(ndata.loc[ndata[knn]1,balance].values,range(0,15000))
逻辑回归是根据输入值域对记录进行分类的统计方法。
它是将输入值域与输出字段每一类别的概率联系起来。
一旦生成模型便可用于预测。
对于每一记录计算其从属于每种可能输出类的概率概率最大的类即为预测结果。
data.iloc[:,[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17]]
2.使用RandomizedLogisticRegression筛选特征
#使用RandomizedLogisticRegression筛选有效特征
#获取特征筛选结果也可以通过.scores_方法获取各个特征的分数
,.join(data.columns[rlr.get_support(indicesTrue)]))
data[data.columns[rlr.get_support(indicesTrue)]].as_matrix()#筛选好特征
data.loc[:,[job,marital,education,balance,housing,contact,previous]]
3.进行预测并计算准确率。
通过计算得出测试集准确率为0.8403训练集准确率为0.8461。
#使用筛选后的特征数据用LogisticRegression来训练模型
trainRslen(trainZ[trainZ0])/len(trainZ)
如图2-3、2-4所示通过构建混淆矩阵的方式对模型进行评估其中对无贷款需求的客户判定的准确率为84%召回率100%对有贷款需求的客户判定的准确率为0%总体准确率为84%。
plt.imshow(metrics.confusion_matrix(R,
在人工神经网络算法中对损失函数用梯度下降法进行迭代优化求极小值的过程使用的是BP算法。
BP算法由信号的正向传播和误差的反向传播构成。
首先将信号从输入层传递至输出层。
若实际输出与期望输出不一致则进入误差反向传播阶段将误差反向传递获得各层的误差信号对误差做调整。
通过反复执行信号的正向传播和误差的反向传播操作直至输出误差达到期望值或进行到预定的学习次数为止。
1.对离散数据做one-hot编码将编码后的数据与连续型数据进行拼接并对该数据统一做归一化处理保证所有列对预测结果的影响程度都相同。
#分离训练集与测试集median_house_value列的数据是研究的目标
Train_X,Test_X,Train_y,Test_ytrain_test_split(x,y,test_size0.4,random_state2)
3.采用GridSearchCV来进行参数调整实验对solver、hidden_layer_sizes两个参数的值进行调整找出最佳参数组合。
4.预测并计算准确率。
通过计算得出测试集准确率为0.9997训练集准确率为0.9998。
#采用GridSearchCV来进行参数调整实验找出最佳参数组合
{solver:[lbfgs,sgd,adam],hidden_layer_sizes:
#对param_grid中的各参数进行组合传递进MPL回归器。
#cv3,3折交叉验证将数据集随机分为3份每次将一份作为测试集其他为训练集
GridSearchCV(MLPRegressor(max_iter200),param_grid,cv3)
print(当前最佳参数组合,best_mlp.best_params_)
best_scorebest_mlp.score(Test_X,Test_y)*100
accuracy_trainbest_mlp.score(Train_X,Train_y)#评估-精确率
accuracy_testbest_mlp.score(Test_X,Test_y)#评估-精确率
print(训练集精确率str(accuracy_train)
1逻辑回归该算法的数据处理过程较为简单并且在构建模型的时候不能输入参数进行设置因此需要手动划分训练集和测试集。
2人工神经网络该算法内部带有很多方法可以对数据进行one-hot编码、归一化等处理排除特殊数值对结果的影响还能进行参数调整找到最佳参数组合因此在这三种算法中人工神经网络算法的拟合度最高。
3Knn在预测前需要对数据进行处理排除特殊数值对结果的影响同时该算法在构建模型的过程中可以指定参数尤其是n-neighbors这个需要我们自行编写方法来找到n-neighbors的最佳值。
plt.plot(range(0,50),data.iloc[39951:,8],
plt.plot(range(0,50),f_data1.iloc[:,1],
plt.plot(range(0,50),f_data1.iloc[:,2],
plt.plot(range(0,50),f_data1.iloc[:,3],
b,labelsklearn,linewidth2,alpha0.5)
preprocessing.MinMaxScaler(feature_range(0,1)).fit_transform(x)#将每个特征值归一化到一个固定范围
KMeans(initnp.array([[4,5],[5,5]]),n_clusters
coreDatanp.array(model.cluster_centers_)
np.linspace(0,2*np.pi,6,endpointFalse)
np.concatenate((xdata,[xdata[0]]))
plt.rcParams[axes.unicode_minus]
pd.Series(model.labels_).value_counts()
pd.DataFrame(model.cluster_centers_)
tpd.DataFrame(t.embedding_)dt[r[ukind]0]
sns.countplot(xjob,colorsalmon,datar,huekind)
sns.barplot(xcontact,yeducation,colorsalmon,datar,huekind)
如图2-5所示在这三种算法中人工神经网络算法的拟合度最高。
通过模型评估发现每个算法对于无贷款需求的判定准确率较高而对于有贷款需求的判定准确率较低。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback