# 本次case主题:个人贷款违约预测模型# 本案例使用一套真实的数据集演示贷款违约预测模型开发的全流程。这个流程就是数据挖掘项目的分析思路的直接体现,如下:
# 一、数据介绍# 本案例所用数据来自一家银行的个人金融业务数据集,可以作为银行场景下进行个人客户业务分析和数据挖掘的示例。
# 这份数据中涉及5300个银行客户的100万笔交易,而且涉及700份贷款信息与近900张信用卡的数据。通过分析这份数据可以获取与银行服务相关的业务知识。
# 例如,对于提供增值服务的银行客户经理来说,希望明确哪些客户有更多的业务需求,而风险管理的业务人员可以及早发现贷款的潜在损失。
import numpy as np
import pandas as pdimport warnings
warnings.filterwarnings("ignore")
from os import path
d = path.dirname(r"D:\2018_BigData\Python\Python_book\19Case\19_1Bankcredit")
# (1)账户表(Accounts):每条记录描述了一个账户(account_id)的静态信息,共4500条记录,如表所示。accounts=pd.read_csv("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit/accounts.csv",encoding="ANSI")
accounts.head(3)# account_id —— 账户号,主键
# district_id —— 开户分行地区号,外键
# frequency —— 结算频度(月、周,交易之后马上)
# date —— 开户日期
account_iddistrict_idfrequencydate
057655月结1993-01-01
1381874月结1993-01-01
270455月结1993-01-01
# (2)顾客信息表(Clients):每条记录描述了一个客户(client_id)的特征信息,共5369条记录,如表所示。
clients=pd.read_csv("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit/clients.csv",encoding="ANSI")
clients.head(3)# client_id —— 客户号,主键
# sex —— 性别
# birth_date —— 出生日期
# district_id —— 地区号(客户所属地区),外键
client_idsexbirth_datedistrict_id
011970-12-1318
121945-02-041
231940-10-091
# (3)权限分配表(Disp):每条记录描述了客户(client_id)和账户(account_id)之间的关系,以及客户操作账户的权限,共5369条记录,如表所示。
disp=pd.read_csv("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit/disp.csv",encoding="ANSI")
disp.head(3)# disp_id ——权限设置号,主键
# client_id —— 顾客号,外键
# account_id —— 账户号,外键
# type —— 权限类型,分为“所有者”和“用户”,只用“所有者”身份可以进行增值业务操作和贷款
disp_idclient_idaccount_idtype
0111所有者
1222所有者
2332用户
# (4)支付订单表(Orders):每条记录代表一个支付命令,共6471条记录,如表所示。
order=pd.read_csv("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit/order.csv",encoding="ANSI")
order.head(3)# order_id ——订单号,主键
# account_id —— 发起订单的账户号,外键
# bank_to —— 收款银行,每家银行用两个字母来代表,用于脱敏信息
# account_to —— 收款客户号
# amount —— 金额,单位是“元”
# k_symbol —— 支付方式
order_idaccount_idbank_toaccount_toamountk_symbol
0294053CD24485939327.0NaN
1294138IJ932103456712.0NaN
22943024QR460863887641.0NaN
# (5)交易表(Trans):每条记录代表每个账户(account_id)上的一条交易,共1056320条记录,如表所示。
trans=pd.read_csv("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit/trans.csv",encoding="ANSI")
trans.head(3)# trans_id ——交易序号,主键
# account_id —— 发起交易的账户号,外键
# date —— 交易日期
# type —— 借贷类型
# operation —— 交易类型
# amount —— 金额
# balance —— 账户余额
# k_symbol —— 交易特征
# bank —— 对方银行
# account ——对方账户号
trans_idaccount_iddatetypeoperationamountbalancek_symbolbankaccount
069524723781993-01-01信贷资金$700$700NaNNaNNaN
11718125761993-01-01信贷资金$900$900NaNNaNNaN
22072647041993-01-01信贷资金$1,000$1,000NaNNaNNaN
# (6)贷款表(Loans):每条记录代表某个账户(account_id)上的一条贷款信息,共682条记录,如表所示。
loans=pd.read_csv("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit/loans.csv",encoding="ANSI")
loans.head(3)# loan_id ——贷款号,主键
# account_id —— 账户号,外键
# date —— 发放贷款日期
# amount —— 贷款金额,单位是“元”
# duration —— 贷款期限
# payments —— 每月归还额,单位是“元”
# status —— 还款状态(A表示合同终止,没问题;B表示合同终止,贷款没有支付;C表示合同处于执行期,至今正常;D表示合同处于执行期,为欠债状态。)
loan_idaccount_iddateamountdurationpaymentsstatus
0531417871993-07-0596396128033B
1531618011993-07-11165960364610A
2686391881993-07-28127080602118A
# (7)信用卡(Cards):每条记录描述了一个顾客号的信用卡信息,共892条记录,如表所示。
card=pd.read_csv("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit/card.csv",encoding="ANSI")
card.head(3)# card_id ——信用卡ID,主键
# disp_id —— 账户权限号,外键
# issued —— 发卡日期
# type —— 卡类型
card_iddisp_idissuedtype
0100592851993-11-07普通卡
11045881994-01-19普通卡
274749151994-02-05普通卡
# (8)人口地区统计表(District):每条记录描述了一个地区的人口统计学信息,共77条记录,如表所示。
district=pd.read_csv("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit/district.csv",encoding="ANSI")
district.head(3)# A1 =  district_id 	地区号,主键
# GDP	GDP总量
# A4	居住人口
# A10	城镇人口比例
# A11	平均工资
# A12	1995年失业率
# A13	1996年失业率
# A14	1000人中有多少企业家
# A15	1995犯罪率(千人)
# a16	1996犯罪率(千人)
A1GDPA4A10A11A12A13A14A15a16
012838941204953100.0125410.290.4316735.641.1
12116558888446.785071.671.8513212.115.0
23131467523241.789801.952.2111118.818.7
# 实际业务中的一个人可以拥有多个账户号(account_id),一个账户号(account_id)可以对应多个顾客(client_id),
# 即多个顾客共享一个账户号(account_id),但是每个账户号(account_id)的所有者(即最高权限者)只能是一个人。# 账户号(account_id)与客户号(client_id)的对应关系,在表“Disposition”中进行展示;
# 表“Credit card”表述了银行提供给顾客(client_id)的服务,每个客户可以申请一张信用卡;
# 贷款为基于账户的服务,一个账户(account_id)在一个时点最多只能有一笔贷款。
# 总体思路# “status(还款状态)”是主要指标,用于构造被预测变量(Y).
# 违约用1标识	如果Status=B
# 没有违约用0标识	如果Status=A
# 尚未结束用.标识	如果Status=C OR D# 预测变量(X)需要从一下五个维度考虑:
# 1、贷款账户所关联客户的基本人口信息,包括:年龄、性别、教育等,主要表clients;
# 2、贷款账户所关联客户的基本社会属性(社会经济状态,SES),包括:收入、职业、居住社区的信息(人均收入、犯罪率等),district;
# 3、贷款账户所关联客户的交易行为数据,包括:产品订购情况order,交易情况trans,信用卡使用情况card;
# 4、贷款账户之间关联交易情况,交易情况trans。
# 构造X变量(以下格式不够明朗,此处仅做分析提示作用。如需直观,可复制粘贴进Excel表查看。)# 变量说明	变量名	源数据变量	时间要求	构造方法说明
# 年龄	AGE	Clients.birth_date	无	当前日期减去生日(理想状态是取贷款发放时年龄,但是可以忽略)
# 性别	Sex	Clients.SEX	无	无
# …				
# 居住社区平均工资	Pay_areamean	District.A11	无	无(理想状态是取贷款发放时数值,但是可以忽略)
# 居住社区平均犯罪率	CRIME_areamean	District.A15,District.A16	无	AVG(District.A15,District.A16)
# 居住社区犯罪率变化	CRIME_areaG	District.A15,District.A16	无	(District.A16/District.A15-1)
# …				
# 信用卡类型	CREDITCARD_type	Cards.type	贷款发放时卡的类型	无
# …				
# 从他行收款次数	t1	Trans.operation	贷款发放前3年间发生的实际次数	COUNT(Trans.operation="从他行收款")
# …				
# 贷款发放时账户余额	balance	trans.balance	贷款发放时账户余额	无
# 贷款金额	Loan_amount	Loans.amount	无	无
# 贷款金额占账户余额比例	per_amount	Loan_amount,balance	无	Loan_amount/balance
# 二、业务分析# 在贷款审批方面,可以通过构建量化模型对客户的信用等级进行一定的区分。
# 在信贷资金管理方面,得知了每个账户的违约概率后,可以预估未来的坏账比例,及时做好资金安排;
# 也可以对违约可能性较高的客户更加频繁地“关怀”,及时发现问题,以避免损失。# 在这个量化模型中,被解释变量为二分类变量,因此需要构建一个排序类分类模型。而排序类分类模型中最常使用的算法是逻辑回归。
# 三、数据理解# 建模分析中,获取预测变量是最为艰难的,需要根据建模的主题进行变量的提取。其中第一步称为维度分析,即采集的数据涉及哪些大的方面,例如:# “指标”分解成“属性”、“状态”、“行为”三个维度,然后这三个维度继续细分,如下:
# (1)属性:①性别?,②年龄?,……
# (2)状态:①资产总量?,②居住地区的失业率?,……
# (3)行为:①支出太大?,②……# 有商业智能(BI)经验的人初次接触维度分析这个概念,会联想起联机分析处理(OLAP),这两个概念有相通之处。
# 后者是为业务分析服务的,因此,将信息归结到公司各级部门这个粒度上,例如某支行、分行或总行的某业务的数量。
# 数据挖掘的维度分析会更为广泛,其将数据按照研究对象进行信息提取。
# 比如,如果需要研究的是个人客户的消费行为,则需要将数据以客户粒度进行归结。
# 这样问题就来了,银行保存的客户数据非常多,如何去整理这些数据以获取合适的信息?单独从内部获取数据是否可以满足分析的需求?
# 为了回答这些问题,需要进行深入研究,以明确研究需要的客户信息。
# 不同的分析主题需要的客户信息是不同的,以下提供了一个信息获取的框架,在实际操作中可以按照以下4个方面进行考虑。# (1)属性表征信息:
# 在分析个人客户时,又称人口统计信息。主要涉及最基本的性别、出生日期、年龄、教育程度、地域等信息。
# 【获取方式】办理业务时客户自报。
# 【相关度】低——偶尔表现出相关性,没有因果关系。
# 【运用场景】了解市场结构,其他方法的补充。# 这类指标对客户的预测行为并不具有因果关系,只是根据历史数据统计可得到一些规律。
# 比如,随着客户年龄的提高,会对房贷、消费贷款、教育储蓄、个人理财等产品依次产生需求,但是年龄并不是对产品有需求的根本原因,其实婚龄才是其原因。只不过婚龄和年龄在同时期人群中是高度相关的。
# 同理,性别和某种业务表现的高相关性,很多也来自于外部世界对性别类型的一种行为期望。
# 对于银行、汽车4S店这类需要客户临柜填写表格的公司而言,是可以获取这方面的“真实”信息的,而对于电商而言,是难以获取“真实”信息的。
# 但是电商的分析人员也不必气馁,其实“真实”这个概念是有很多内涵的,根据电商数据虽然不能知道客户人口学上的“真实”年龄,但是根据其消费行为完全可以刻画出其消费心理上的“真实”年龄,而后者在预测客户需求和行为方面更有效。# (2)行为信息:
# 根据客户的业务收集到的信息。比如:产品类型、购买频次、购买数量等。
# 【获取方式】客户办理业务、购买产品和接触渠道的记录。
# 【相关度】中——可以表现出相关性,但难以表现出因果关系。
# 【运用场景】产品定位,定价决策,交叉销售。# 对于银行而言,行为数据仅限于业务数据,而电信公司可以获取的行为数据更加广泛,不仅可以获取通话行为、上网行为等业务信息,还可以获取周末出行、业务生活等个人行为信息。
# 获取的客户行为信息越多,对客户的了解越深入。在这方面,各类企业都具有很大的深挖潜力。
# 由于行为数据均为详细记录,数据庞大,而建模数据是一个样本只能有一条记录,因此需要对行为数据依照RFM方法进行行为信息的提取,比如过去一年的账户余额就是按照“M”计算得到的,这类变量成为一级衍生变量。
# 这还不够,比如,要看账户余额是否有增大趋势,就要计算过去一年每月的平均账户余额,然后计算前后两月平均账户余额增长率的均值,这个变量就称为二级衍生变量。
# 行为信息的提取可以按照RFM方法做到三级甚至四级衍生变量。# (3)状态信息:
# 指客户的社会经济状态和社会网络关系信息。
# 【获取方式】办理业务时通过客户自报、访谈或在业务内容中获取。
# 【相关度】较高——表现出较强的相关性和一定的因果关系。
# 【运用场景】客户提升,价值深挖# 了解了客户的社会关系,就了解了外界对该客户的期望,进而推断出其需求。通过深入分析,甚至可以推断出客户未来的需求,达到比客户更了解客户的状态。
# 在这方面,有些企业走在了前面,比如,电信企业通过通话和短信行为确定客户的交友圈,通过信号地理信息定位在客户的工作、生活和休闲区域,以此推测其工作类型和社交网络类型等。
# 有些企业刚刚起步,只是通过客户住址大致确定一下客户居住小区的档次,以确定其社会经济地位。
# 这类信息是值得每个以客户为中心的企业花时间和精力去深挖的。# (4)利益信息:
# 利用客服、微信公众号、微博、论坛等刘妍信息,便捷地获取客户的态度、评价信息和诉求。比如,看重服务质量而对价格不敏感。
# 【获取方式】客户访谈、调研和社会化信息。
# 【相关度】高——直接的因果关系。
# 【运用场景】新产品开发等。
# 以上构建变量的准则是放之四海而皆准的,而具体到违约预测这个主题,还需要更有针对性的分析。
# 以往的研究认为,影响违约的主要因素有还款能力不足和还款意愿不足两个方面。还款意愿不足有可能是欲望大于能力、生活状态不稳定。
# 以上是概念分析,之后就需要量化,比如使用“资产余额的变异系数”作为生活状态不稳定的代理指标。# 在建模过程中,有预测价值的变量基本都是衍生变量,比如:
# 一级衍生,比如最近一年每月的资产余额均值来自于交易数据中每月的账户余额。
# 二级衍生,比如年度资产余额的波动率来自于每月的资产余额均值。
# 三级衍生,比如资产余额的变异系数来自于资产余额的波动率除以资产余额均值。# 大数据元年之前,在数据科学领域有一个不成文的规定:如果一个模型中二级以上的衍生变量不达到80%及以上的比例,是不好意思提交成果的。
# 老牌数据分析强公司(比如美国的第一资本)基本上是以每人每月20-50个衍生变量的速度积累十年才拥有所谓的万级别的衍生变量。
# 四、数据整理# 以上介绍了维度分析要注意的主要方面,下面将根据维度分析的框架创建建模用变量。
# 不过我们不要期望可以创建全部四个维度的变量,一般创建前三个维度足矣。# 首先生成被解释变量。
# 在贷款(Loans)表中还款状态(status)变量记录的客户的贷款偿还情况,
# 其中A代表合同终止且正常还款,B代表合同终止但是未还款,C代表合同未结束且正常还款,D代表合同未结束但是已经拖欠贷款了。
# 我们以此构造一个客户行为信用评级模型,以预测其他客户贷款违约的概率。
# 1、数据提取中的取数窗口# 我们分析的变量按照时间变化情况可以分为动态变量和静态变量。属性变量(比如性别、是否90后)一般是静态变量;行为、状态和利益变量均属于动态变量。
# 动态变量还可以分为时点变量和区间变量。
# 状态变量(比如当前账户余额、是否破产)和利益变量(对某产品的诉求)均属于时点变量;行为变量(存款频次、平均账户余额的增长率)为区间变量。# 模型框架:根据客户基本信息、业务信息、状态信息,来预估履约期内贷款客户未来一段时间内发生违约的可能。
# 在建模过程中,需要按照以下取数窗口提取变量:
# (1)放贷前一年--放款日,属观察窗口。其区间变量:比如平均账户余额、平均账户余额的增长率。
# (2)放款日--贷款结束,属预测窗口。其被解释变量:是否拖欠贷款。
# 注:放款日可以是静态变量,也可以是时点变量(取数位置为放贷日的前若干天中任意一个时点)。# 其中有两个重要的时间窗口——观察窗口和预测窗口。
# 观察窗口是预测和收集供分析的自变量的时间段;
# 预测窗口是观测因变量变化的时间段,如果在这个时间段中出现显性状态(比如出现贷款拖欠)则将被解释变量设置为“1”,如果始终没有出现,则被解释变量设置为“0”。# 取数窗口期的长短和模型易用性是一对矛盾体:
# 窗口期越短,缺失值越少,可分析的样本就越多、越便于使用。但是区间变量中单个变量的观测期越短,数据越不稳定,这样难以获得稳健的参数。
# 但是取数窗口越长,新的客户就会因为变量缺失而无法纳入研究样本。
# 因此取数窗口的长短是需要根据建模面临的任务灵活调整的
# 本案例中的观测窗口定为一年。# 同样,观测窗口可长可短,取决于构建什么样的模型,以及目标变量是什么。
# 比如营销响应模型,预测窗口取三天至一周就够了;而信用卡信用违约模型,须要观测一年的时间。
# 通常,越长的预测窗口样本量越少;而预测窗口过短则会导致有些样本的被解释变量的最终状态还没有表现出来。
# 本次案例并非按照标准的信用评级模型取数窗口设置,如需深入学习,请参考《信用风险评分卡研究:基于SAS的开发与实施》
# 2、导入数据# 利用pandas导入可用于建模的样本数据,利用Loans表生成被解释的变量。
import pandas as pd
import numpy as np
import os
os.chdir("D:/2018_BigData/Python/Python_book/19Case/19_1Bankcredit")
os.getcwd()
'D:\\2018_BigData\\Python\\Python_book\\19Case\\19_1Bankcredit'
# 导入数据,生成被解释变量
loanfile=os.listdir()
createVar=locals()
for i in loanfile:if i.endswith("csv"):createVar[i.split(".")[0]] = pd.read_csv(i,encoding="gbk")print(i.split(".")[0])
accounts
card
clients
disp
district
loans
order
trans
# 以下代码创建被解释变量。
bad_good = {"B":1,"D":1,"A":0,"C":2}
loans["bad_good"] = loans.status.map(bad_good)  # 活用map函数,学住:根据某列的值,对应生成新一列。
loans.head()
loan_idaccount_iddateamountdurationpaymentsstatusbad_good
0531417871993-07-0596396128033B1
1531618011993-07-11165960364610A0
2686391881993-07-28127080602118A0
3532518431993-08-03105804362939A0
47240110131993-09-06274740604579A0
# 3、表征信息# 将所有维度的信息归结到贷款表(LOANS)上,每个贷款账户只有一条记录。寻找有预测能力的指标。
# 首先是寻找客户表征信息,如性别、年龄。
# 客户的人口信息保存在客户信息表(CLIENTS)中,但是该表是以客户为主键的,需要和权限分配表(DISP)相连接才可以获得账号级别的信息。print(disp.columns)
print(clients.columns)
print(loans.columns)
Index(['disp_id', 'client_id', 'account_id', 'type'], dtype='object')
Index(['client_id', 'sex', 'birth_date', 'district_id'], dtype='object')
Index(['loan_id', 'account_id', 'date', 'amount', 'duration', 'payments','status', 'bad_good'],dtype='object')
data2 = pd.merge(loans,disp,on="account_id",how="left")
data2 = pd.merge(data2,clients,on="client_id",how="left")
data2.head()
loan_idaccount_iddateamountdurationpaymentsstatusbad_gooddisp_idclient_idtypesexbirth_datedistrict_id
0531417871993-07-0596396128033B121662166所有者1947-07-2230
1531618011993-07-11165960364610A021812181所有者1968-07-2246
2686391881993-07-28127080602118A01100611314所有者1936-06-0245
3532518431993-08-03105804362939A022352235所有者1940-04-2014
47240110131993-09-06274740604579A01323113539所有者1978-09-0763
# 4、状态信息# 提取借款人居住地情况,如居住地失业率等变量。与district表进行连接。print(district.columns)
Index(['A1', 'GDP', 'A4', 'A10', 'A11', 'A12', 'A13', 'A14', 'A15', 'a16'], dtype='object')
data3 = pd.merge(data2,district,left_on="district_id",right_on="A1",how="left")
data3.head(2)
loan_idaccount_iddateamountdurationpaymentsstatusbad_gooddisp_idclient_id...A1GDPA4A10A11A12A13A14A15a16
0531417871993-07-0596396128033B121662166...30169799481281.896503.383.6710015.714.8
1531618011993-07-11165960364610A021812181...461411111270973.583691.792.3111712.711.6

2 rows × 24 columns

# 5、行为信息# 根据客户的账户变动的行为信息,考察借款人还款能力,如账户平均余额、余额的标准差、变异系数、平均入账和平均支出的比例、贷存比等。
# 首先将贷款表和交易标按照account_id内连接。print(trans.columns)
Index(['trans_id', 'account_id', 'date', 'type', 'operation', 'amount','balance', 'k_symbol', 'bank', 'account'],dtype='object')
data_4temp1 = pd.merge(loans[["account_id","date"]],trans[["account_id","type","amount","balance","date"]],on = "account_id")
data_4temp1.columns = ["account_id","date","type","amount","balance","t_date"]
data_4temp1 = data_4temp1.sort_values(by=["account_id","t_date"])
data_4temp1.head(3)
account_iddatetypeamountbalancet_date
1002021994-01-05$1,100$1,1001993-02-26
1002121994-01-05$20236$213361993-03-12
1002221994-01-05$3,700$250361993-03-28
# 然后将来自贷款表和交易表中的两个字符串类型的日期变量转换为日期,为窗口取数做准备。data_4temp1["date"] = pd.to_datetime(data_4temp1["date"])
data_4temp1["t_date"] = pd.to_datetime(data_4temp1["t_date"])
# 账户余额和交易余额为字符变量,有千分位符,需要进行数据清洗,并转换为数值类型。data_4temp1["balance2"]=data_4temp1["balance"].map(lambda x: int("".join(x[1:].split(","))))
data_4temp1["amount2"]=data_4temp1["amount"].map(lambda x: int("".join(x[1:].split(","))))data_4temp1.head(3)
account_iddatetypeamountbalancet_datebalance2amount2
1002021994-01-05$1,100$1,1001993-02-2611001100
1002121994-01-05$20236$213361993-03-122133620236
1002221994-01-05$3,700$250361993-03-28250363700
# 以下这条语句实现了窗口取数,只保留了贷款日期前365天至贷款前1天内的交易数据。import datetime# data_4temp2 = data_4temp1[
#     data_4temp1.date>date_4temp1.t_date][
#     data_4temp1.date<data_4temp1.t_date+datetime.timedelta(days=365)]
# 报错NameError: name 'date_4temp1' is not defined# 换一种方式:
# data_4temp2 = data_4temp1.loc[data_4temp1["date"].isin([date_4temp1["t_date"],date_4temp1["t_date"]+datetime.timedelta(days=365)])
# 报另一个错:SyntaxError: unexpected EOF while parsing# 换另一种方式,同时把第一行的data_4temp1复制替换掉后两行的data_4temp1,成功。
# data_4temp2 = data_4temp1[
#     data_4temp1["date"]>data_4temp1["t_date"]][
#     data_4temp1["date"]<data_4temp1["t_date"]+datetime.timedelta(days=365)]# 一开始可能只是后两行的data_4temp1格式细节输入错误,复制粘贴改回,重新运行,成功。
data_4temp2 = data_4temp1[data_4temp1.date>data_4temp1.t_date][data_4temp1.date<data_4temp1.t_date+datetime.timedelta(days=365)]
data_4temp2.head()
account_iddatetypeamountbalancet_datebalance2amount2
1002021994-01-05$1,100$1,1001993-02-2611001100
1002121994-01-05$20236$213361993-03-122133620236
1002221994-01-05$3,700$250361993-03-28250363700
1002321994-01-05$14$250501993-03-312505014
1002421994-01-05$20236$452861993-04-124528620236
# 以下语句计算了每个贷款账户贷款前一年的:
# 平均账户余额(代表财富水平)、账户余额的标准差(代表财富稳定情况)和变异系数(代表财富稳定的另一个指标)。data_4temp3 = data_4temp2.groupby("account_id")["balance2"].agg([("avg_balance","mean"),("stdev_balance","std")])
data_4temp3["cv_balance"] = data_4temp3[["avg_balance","stdev_balance"]].apply(lambda x: x[1]/x[0],axis=1)data_4temp3.head(3)
avg_balancestdev_balancecv_balance
account_id
232590.75925912061.8022060.370099
1925871.22368415057.5216480.582018
2556916.98449621058.6679490.369989
# 以下语句计算平均入账和平均支出的比例。
# 首先以上一步时间窗口取数得到的数据集为基础,对每个账户的“借-贷”类型进行交易金额汇总。type_dict = {"借":"out","贷":"income"}
data_4temp2["type1"]=data_4temp2.type.map(type_dict)
data_4temp4=data_4temp2.groupby(["account_id","type1"])[["amount2"]].sum()
data_4temp4.head(3)
amount2
account_idtype1
2income276514
out153020
19income254255
data_4temp4=data_4temp4.reset_index()
data_4temp4.head(3)
account_idtype1amount2
02income276514
12out153020
219income254255
# 对于上一步汇总后的数据,每个账号会有两条记录,需要对其进行拆分列操作,将每个账户的两条观测转换为每个账户一条观测。
# 以下语句中使用pd.pivot_table函数进行堆叠列。data_4temp5 = pd.pivot_table(data_4temp4, values = "amount2", index = "account_id", columns = "type1")
data_4temp5.fillna(0,inplace = True)
data_4temp5["r_out_in"] = data_temp5[["out","income"]].apply(lambda x: x[0]/x[1],axis=1)
data_4temp5.head(3)
type1incomeoutr_out_in
account_id
2276514.0153020.00.553390
19254255.0198020.00.778824
25726479.0629108.00.865969
# 以下语句将分别计算的平均账户余额、账户余额的标准差、变异系数、平均入账和平均支出的比例等变量与之前的data3数据合并。data4 = pd.merge(data3,data_4temp3,left_on="account_id",right_index=True,how="left")
data4 = pd.merge(data4,data_4temp5,left_on="account_id",right_index=True,how="left")
data4.head(3)
loan_idaccount_iddateamountdurationpaymentsstatusbad_gooddisp_idclient_id...A13A14A15a16avg_balancestdev_balancecv_balanceincomeoutr_out_in
0531417871993-07-0596396128033B121662166...3.6710015.714.812250.0000008330.8663010.68007120100.00.00.000000
1531618011993-07-11165960364610A021812181...2.3111712.711.643975.81081125468.7486050.579154243576.0164004.00.673318
2686391881993-07-28127080602118A01100611314...2.8913213.313.630061.04166711520.1270130.38322475146.054873.00.730219

3 rows × 30 columns

# 最后计算贷存比、贷收比。data4["r_lb"] = data4[["amount","avg_balance"]].apply(lambda x: x[0]/x[1],axis=1)
data4["r_lincome"] = data4[["amount","income"]].apply(lambda x: x[0]/x[1],axis=1)
# 五、建立分析模型# 这部分是从信息中获取知识的过程。数据挖掘方法分为分类和描述两大类,其中该预测账户的违约情况属于分类模型。使用逻辑回归为刚才创建的模型建模。
# (1)提取状态为C的样本用于预测。其他样本随机采样,简历训练集与测试集。data_model = data4[data4.status != "C"]
for_predict = data4[data4.status == "C"]train = data_model.sample(frac=0.7,random_state=1235).copy()
test = data_model[~data_model.index.isin(train.index)].copy()
print("训练集样本量:%i\n 测试集样本量:%i"%(len(train),len(test)))
训练集样本量:234测试集样本量:100
# (2)使用向前逐步法进行逻辑回归建模。# 首先定义向前法函数
# 向前法 
# 此自定义函数参照书本提供的代码,但是依据Python的风格,应该有相应的内置函数?晚点再找。import statsmodels.api as sm
import statsmodels.formula.api as smfdef forward_select(data, response):import statsmodels.api as smimport statsmodels.formula.api as smfremaining = set(data.columns)remaining.remove(response)selected = []current_score, best_new_score = float('inf'), float('inf')while remaining:aic_with_candidates=[]for candidate in remaining:formula = "{} ~ {}".format(response,' + '.join(selected + [candidate]))aic = smf.glm(formula=formula, data=data, family=sm.families.Binomial(sm.families.links.logit)).fit().aicaic_with_candidates.append((aic, candidate))aic_with_candidates.sort(reverse=True)best_new_score, best_candidate=aic_with_candidates.pop()if current_score > best_new_score: remaining.remove(best_candidate)selected.append(best_candidate)current_score = best_new_scoreprint ('aic is {},continuing!'.format(current_score))else:        print ('forward selection over!')breakformula = "{} ~ {} ".format(response,' + '.join(selected))print('final formula is {}'.format(formula))model = smf.glm(formula=formula, data=data, family=sm.families.Binomial(sm.families.links.logit)).fit()return(model)
data4.columns # 用于下一条语句快速取列名
Index(['loan_id', 'account_id', 'date', 'amount', 'duration', 'payments','status', 'bad_good', 'disp_id', 'client_id', 'type', 'sex','birth_date', 'district_id', 'A1', 'GDP', 'A4', 'A10', 'A11', 'A12','A13', 'A14', 'A15', 'a16', 'avg_balance', 'stdev_balance','cv_balance', 'income', 'out', 'r_out_in', 'r_lb', 'r_lincome'],dtype='object')
# 使用向前逐步法进行逻辑回归建模。
candidates = ["bad_good",'A1', 'GDP', 'A4', 'A10', 'A11', 'A12','amount', 'duration','A13', 'A14', 'A15', 'a16', 'avg_balance', 'stdev_balance','cv_balance', 'income', 'out', 'r_out_in', 'r_lb', 'r_lincome']
data_for_select = train[candidates]lg_ml = forward_select(data=data_for_select,response="bad_good")
lg_ml.summary().tables[1]
aic is 177.8135076281174,continuing!
forward selection over!
final formula is bad_good ~ r_lb 
coef std err z P>|z| [0.025 0.975]
Intercept -3.3598 0.390 -8.614 0.000 -4.124 -2.595
r_lb 0.5791 0.088 6.559 0.000 0.406 0.752
# 通过以上语句得到相关结果。
# 上表列出了逻辑回归的模型参数。
# 其中申请贷款前一年的贷存比(r_lb)与违约正相关。
# (3)模型效果评估。
# 以下使用测试数据进行模型效果评估。此处调用了 scikit-learn 的评估模块绘制 ROC 曲线。import sklearn.metrics as metrics
import matplotlib.pyplot as plt
fpr, tpr, th = metrics.roc_curve(test.bad_good, lg_ml.predict(test))
plt.figure(figsize=[6,6])
plt.plot(fpr, tpr, "b--")
plt.title("ROC curve")
plt.show()

在这里插入图片描述
png

print('AUC = %.4f' %metrics.auc(fpr, tpr))
AUC = 0.7667
# 可以看到模型的ROC曲线离左上角比较远,其曲线下面积(AUC)为0.7667,这说明模型的排序能力还有待提高。不过也可以先暂且用用。
# 六、模型运用# 在这个案例中,贷款状态为C的账户是尚没有出现违约且合同未到期的客户。这些贷款客户中有些人的违约可能性较高,需要业务人员重点关注。
# 一旦发现问题时,可以及时处理,挽回损失。# 可以通过以下语句得到每款贷款的违约概率。for_predict["prob"] = lg_ml.predict(for_predict)
for_predict[["account_id","prob"]].head()
account_idprob
2710710.477101
3653130.734056
47100790.157970
48100790.157970
4953850.404954
# 输出结果如上表。
# 这里需要强调的是,此处的概率仅是代表违约可能性的相对值,并不代表其真实违约概率。
# 比如预测概率为0.73的违约可能性高于几成,这已经足够了,因为业务人员知道哪些客户为重点关注的即可。

建模分析尾声,直接截图。
在这里插入图片描述


# 七、流程回顾# 本案例中,我们遵照数据挖掘项目通用的流程——CRISP-DM进行建模。最后回顾一下本案例的建模流程。
# (1)业务分析:需要构建一个分类模型预测每个客户的违约概率,其实是对客户的信用进行一个排序。分类模型有很多种,其中逻辑回归是最常用到的。
# (2)数据解读:从业务需求出发,了解、熟悉现有的数据结构、数据质量等信息。主要寻找对客户违约成本、还款意愿、还款能力(资产规模和稳定性)有代表意义的变量。
# (3)数据准备:结合数据的内在价值与业务分析,提取各类有价值的信息,构建被解释变量和解释变量。
# (4)模型构建与评价:该步骤按照SEMMA标准算法,分为数据采样、变量分布探索、修改变量、构建逻辑回归、评价模型的优劣。
# (5)模型监控:当模型上线后,对模型的表现进行长期监控,主要检验模型预测准确性与数据的稳定性。# 在实际的工作中,上面提供的流程第1~3步并不一定一次性做好,很多时候这部分需要反复验证、反复解读。
# 因为我们往往需要多次分析审核,所以可以较好地理解拿到的数据,并且能够识别出数据中的异常或错误的内容。
# 而此部分若纳入了错误的数据,则会导致后面的步骤,如建模等工作完全没有意义。
# 最后说明:本次案例来源于书籍《Python数据科学·技术详解与商业实践》第19章《商业数据挖掘案例》。在此感谢。# 同时抛出一个疑问:# 本次实践中,在“使用向前逐步法进行逻辑回归建模”这一步,得到结果(逻辑回归的模型参数)仅有:
# “申请贷款前一年的贷存比(r_lb)”与违约正相关。
# 而在《Python数据科学》一书中,得到的模型参数结果有多个:
# 申请贷款前一年的贷存比(r_lb)、存款余额的标准差(stdev_balace)、贷款期限(duration)与违约正相关;
# 存款余额的均值(avg_balance)、贷款者当地1000人中共有多少企业家(A14)与违约负相关。
# 书中所得回归模型系数正负号均符合我们的预期,而且均显著。# 另外,ROC curve和 AUC 的模型评估中,书中也是达到了0.9435的高拟合度,而本次实践只有0.7667.# 那,虽然用了random随机函数来分解训练集,结果也不至于相差这么大。是什么原因呢?
# 如果有大神路过解答一二,就感激不尽了。。
# 读者如果有兴趣,也可以思考研究一下。
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 基于TCP协议的Socket通信实例(JAVA)

    1、首先先来看下基于TCP协议Socket服务端和客户端的通信模型:Socket通信步骤:(简单分为4步)1.建立服务端ServerSocket和客户端Socket2.打开连接到Socket的输出输入流3.按照协议进行读写操作4.关闭相对应的资源2、相关联的API:1.首先先来看下ServerSocket类 ServerSocket 此…...

    2024/5/9 10:58:57
  2. [unity3d3.54下载] unity 3d 安装方法 教程

    unity 3d 安装方法 教程(转载注明CGJOY) 作者:拉破车 1 我们首先下载完U3D 3.5,打开目录。2012-5-31 11:53 上传 下载附件 (13.39 KB) 2 双击 UnitySetup-3.5.2 进行安装。(这里是按 C:\Program Files\Unity) 3 打开CRACK文件夹,看到里面有 2012-5-31 11:56 上传 下载附…...

    2024/4/20 21:02:07
  3. Linux中的挂载命令

    Linux中的挂载命令1、挂载命令可理解为Windows中分配盘符(Windows用ABCD..作为盘符,Linux是拿系统目录作为盘符。另外,在Linux不叫盘符,而叫挂载点,而把分区或光盘给挂载点的过程,我们称作挂载。) 2、一般硬盘或分区是自动挂载的。但光盘、U盘和一些存储设备则需要人为地…...

    2024/4/20 21:02:07
  4. unity3d中的http通信

    unity3d教程学习之http通信 前言 Unity3d是一个跨平台的引擎,在移动互联网浪潮之中,尤其是移动游戏3d方向上,Unity3d 毫无疑问是最耀眼的明星。Unity3d的http通信很简单,也非常好用,下面通过http和php sever交互来简单介绍一下。 http 提交数据原理 http 协议通过 url来获…...

    2024/5/9 11:55:53
  5. linux下使用mount挂载网络磁盘

    在linux下挂载windows系统的网络共享磁盘: mount -t smbfs -o username=longyufei,password=123456 //192.168.0.80/E$ /mnt/samba删除挂载点! umount /mnt/samba/在linux下挂载linux的Smaba服务磁盘: mount -t smbfs -o username=lyf,password=123456 //192.168.0.80/lyf /w…...

    2024/4/20 9:23:33
  6. 吴恩达团队提出倒计时回归模型:用AI技术预测病患死亡时间

    作者 | Anand Avati, Tony Duan, Kenneth Jung, Nigam H. Shah, Andrew Ng编译 | 马卓奇编辑 | Natalie, VincentAI 前线导读:近日,斯坦福大学 Andrew Ng 团队开发出了一种使用人工智能来预测病人死亡时间的系统,科学家希望该系统可以为病人提供更好的临床关怀。研究人员提出…...

    2024/4/28 1:41:26
  7. java Socket通信(一)

    java socket通信已经被封装好了主要使用两个类ServerSocket 和Socket 首先写一个1v1的通信 服务端 /*** */ package com.dnion.socket;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; …...

    2024/4/22 13:18:37
  8. 【风宇冲】Unity3D教程宝典之Shader篇:目录

    随着教程内容的增加,整理出一个目录,方便大家索引和查阅。教程目录基础讲:Shader学习方法基础讲:基础知识特别讲:常见问题解答特别讲:CG函数第一讲: Shader总篇第二讲: Fixed Function Shader第三讲: Vertex&Fragment Shader基础 第四讲: 制作一个美丽的地球第五讲:…...

    2024/4/21 0:28:51
  9. Linux挂载命令

    挂载命令 对比windows分配盘符 分配的盘符类似挂载点,将盘符分配到挂载点的过程就是挂载,可以将设备挂载不同的分区硬盘会在开机的时候自动挂载,U盘光盘这些存储设备需要手动挂载查询与自动挂载mount 查询系统中已经挂在好的设备 /dev/sda5 on / type ext4 (rw) 硬盘挂载在…...

    2024/4/20 14:54:12
  10. 预测房价:回归问题——R语言

    在回归问题中,我们的目标是预测连续值的输出,如价格或概率。将此与分类问题进行对比,分类的目标是预测离散标签(例如,图片包含苹果或橙色)。 问题描述 我们将要预测20世纪70年代中期波士顿郊区房屋价格的中位数,已知当时郊区的一些数据点,比如犯罪率、当地房产税率等。…...

    2024/4/21 0:28:50
  11. Android中Socket通信的简单实现

    前言Android Framework 层代码中大量使用了 Binder IPC 通信方式,除此之外,Socket 也是一种重要的 IPC 通信方式,比如StorageManagerService(8.0 之前叫 MountService)与 Vold 之前的通信,SystemServer 和 Zygote 之间也是通过 Socket 进行通信的。本文简单总结下 Androi…...

    2024/4/21 0:28:48
  12. 基于Unity3D 的Vuforia SDK开发基础教程

    前言  增强现实技术是当前信息技术领域的一项重要的综合性技术,融合了模式识别、计算机图形学等多个学科的知识。今天我们就和大家一起来看一下,这个技术到底可以带给我们什么吧。   左边是通过手机观看图片,可以看到叠加在背景图片上的栩栩如生的恐龙,右图是使用微软H…...

    2024/4/21 0:28:47
  13. 回归预测分析(RANSAC、多项式回归、残差图、随机森林)

    在本篇文章中,主要是介绍利用波士顿房价数据来掌握回归预测分析的一些方法。通过本篇文章你可以学习到:1、可视化数据集的重要特征2、估计回归模型的系数3、使用RANSAC拟合高鲁棒性回归模型4、如何来评价回归模型5、多项式回归6、决策树回归7、随机森林回归数据集下载地址:h…...

    2024/4/21 0:28:47
  14. mount时报错 host is down

    需求:将Windows文件挂载到虚拟机前提:虚拟机和Windows是互相可ping通的设备IP为:192.168.12.209虚拟机IP为: 192.168.253.1401、ping通2、挂载使用mount -t cifs //192.168.12.209/code /home/lxd -o username=administrator,password=123456mount -t cifs ip/你电脑的共享…...

    2024/4/21 0:28:46
  15. unity3d好学吗?

    unity3d好学吗?Unity3D入门容易,真的要精通,那是相当难的。不过,我们还是来看看想成为unity3d工程师,要掌握哪些内容吧。 1.想学好Unity3D游戏开发,就得先了解其菜单、视图界面,这是最基本的,主要了解清楚了才能熟练进行开发;2.场景里面的各种坐标系统、输入系统、简单…...

    2024/4/28 0:30:43
  16. Socket通信有几种方式?及其特点

    Socket通信有几种方式?及其特点要把这个问题具体回答起来,我估计要起写几千字:在这里简单做个介绍:Socket通信时有我们常使用TCP,UDP协议等等方式进行通信,TCP是面向连接,安全的协议,例如,我们进行下载等等,就得使用TCP协议,UDP面向无连接,不安全的协议,但传输数据…...

    2024/4/21 0:28:44
  17. 大数据入门——使用决策树模型预测泰坦尼克号乘客的生还情况

    #数据查验 import pandas as pdtitanic=pd.read_csv(http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt) print(titanic.head()) print(titanic.info())#使用决策树模型预测泰坦尼克号乘客的生还情况 X=titanic[[pclass, age, sex]] y=titanic[survived] p…...

    2024/4/21 0:28:43
  18. unity3d教程动态创建简单平面地形

    unity3d创建地形是不需要usingUnityEditor的,这里使用了AssetDatabase,所以需using UnityEditor; 创建三步: 1.TerrainData terrainData = newTerrainData(); 2.设置terrainData的属性 3.根据terrainData创建地形GameObject obj =Terrain.CreateTerrainGameObject(terrainDa…...

    2024/4/20 2:05:04
  19. mount(手工挂载/自动挂载)问题

    1.vfat文件编码方式fat32文件名分为两种,短文件名和长文件名 两种文件名在磁盘上的存储方式是不同的,长文件名在目录项中特殊的标记 短文件名也就是8.3格式,对于包含中文的任何文件来说都不可能是短文件名 mount挂载时默认将其变成小写,你可以加-o shortname=winnt来使其和 win…...

    2024/4/21 0:28:40
  20. 多元线性回归示例(模型、相关系数、点预测)

    1.题目: 2.根据下面的数据用python进行回归。(1)作出散点图; (2)求出回归方程; (3)计算相关系数并进行相关性检验; (4)计算x1=200、x2=7时y的预测值. 2.代码 #二元线性回归 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as n…...

    2024/4/21 0:28:39

最新文章

  1. 给数据库贴标签

    要给数据库中的文本贴标签&#xff0c;你需要创建一个新的表格来存储标签&#xff0c;并且与文本表进行关联。以下是一个示例的口语化的创建表格和查询示例&#xff1a; 创建标签表格&#xff1a; CREATE TABLE IF NOT EXISTS labels (标签ID INTEGER PRIMARY KEY,标签名称 T…...

    2024/5/9 16:04:04
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. linux进阶篇:磁盘管理(一):LVM逻辑卷基本概念及LVM的工作原理

    Linux磁盘管理(一)&#xff1a;LVM逻辑卷基本概念及LVM的工作原理 一、传统的磁盘管理 在传统的磁盘管理方案中&#xff0c;如果我们的磁盘容量不够了&#xff0c;那这个时候应该要加一块硬盘&#xff0c;但是新增加的硬盘是作为独立的文件系统存在的&#xff0c;原有的文件系…...

    2024/5/7 14:21:10
  4. 汽车统一诊断服务UDS协议参考文章和视频

    UDS基础知识介绍-电子发烧友网 【图解UDS】UDS汽车诊断标准协议&#xff08;ISO14229&#xff09;带你入门到精通-有驾 车载测试之UDS诊断协议9&#xff1a;0x27服务&#xff1a;解锁ECU_哔哩哔哩_bilibili UDS诊断的22服务&#xff08;DID读取数据&#xff09;和2E服务&…...

    2024/5/5 4:34:45
  5. 游戏引擎架构01__引擎架构图

    根据游戏引擎架构预设的引擎架构来构建运行时引擎架构 ​...

    2024/5/9 13:32:56
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/9 15:10:32
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/9 7:32:17
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57