支持向量机SVM的应用案例

支持向量机(Support Vector Machine,SVM)是一种强大的监督学习算法,广泛应用于分类和回归任务。

基本原理

SVM的主要目标是找到一个最优的超平面,该超平面能够将不同类别的数据点尽可能分开,并且使离该超平面最近的数据点(称为支持向量)到超平面的距离最大化。这个距离称为间隔(Margin)。

  • 对于线性可分的数据,SVM试图周到一个线性超平面,通过求解一个凸二次规划问题实现。
  • 对于线性不可分的数据,SVM将原始特征空间映射到一个更高维的特征空间,使得在高维空间中数据变得线性可分。

信用风险评估应用场景

金融机构在评估客户的信用风险时,会考虑众多因素,比如客户的收入水平、资产状况、信用历史、债务情况等。这些因素构成了高位的输入数据。SVM可以根据历史客户数据,建立信用风险分类模型。

数据收集与准备

  1. 数据收集
    明确了客户信息的维度,ID(序号),Label(是否违约),AGE(年龄),GENDER(性别),MARITAL_STATUS(婚姻状况),MONTHLY_INCOME_WHITHOUT_TAX(税前月收入),LOANTYPE(贷款类型),GAGE_TOTLE_PRICE(抵押物总价),APPLY_AMOUNT(申请贷款金额),APPLY_TERM_TIME(贷适用期限),APPLY_INTEREST_RATE(申请利率),PAYMENT_TYPE(贷款还款方式)
  2. 数据清洗
    检查数据中缺失值、重复值和异常值。通过对原始数据的检查,未发现明显发现重复值和异常值。
  • 检查缺失值

    	print(data.isna().sum())
    

    检查结果
    检查结果
    税前收入(MONTHLY_INCOME_WITHOUT_TAX)存在缺失值的情况,因为整体样本较小,所以尽量不对存在缺失值的记录进行删除。在缺失值补充情况下,因为存在税前收入为0的同类情况,从业务角度来看,缺失的情况可以默认为0是比较合理的情况。所以对缺失值都赋值为0。此外,因为ID属性不包含任何有用信息,应予以移除。

    	data=data.drop(columns=['ID']).fillna(0)
    
  • 检查重复值

    	print(data[data.duplicated(keep=False)])
    

结果:
结果
未发现有重复数据

特征工程

  1. 特征选择
    挑选对信贷分类有重要影响的特征,因为数据维度较少,通过业务经验分析,所有已有的属性都可能与信贷违约存在潜在关系,所以不进行筛选。
  2. 特征编码
    对一些非数值型特征,进行编码处理,将其转换为数值型数据,以便 SVM 算法处理。
    print(data['GENDER'].unique())
	print(data['MARITAL_STATUS'].unique())
	print(data['LOANTYPE'].unique())
	print(data['PAYMENT_TYPE'].unique())  

离散属性
性别、婚姻状况、贷款类型、还款方式这四个属性为非数值特征,需要进行编码处理。其中,性别、贷款类型以及还款方式都是二分类离散变量,婚姻状况是多分类离散变量。
① 对二分类离散变量处理
将性别、贷款类型以及还款方式映射为0和1。

data['GENDER'] = data['GENDER'].map({
   
   'Female': 1, 'Male': 0})
data['LOANTYPE'] = data['LOANTYPE'].map({
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值