《Python金融大数据风控建模实战》 第16章 支持向量机模型

《Python金融大数据风控建模实战》 第16章 支持向量机模型

本章引言

在感知机模型中得到的超平面不是唯一的,每一次参数的更新都是向着分类错误的样本更近一些,直到完全分类正确为止。因此,虽然感知器模型在训练集上表现优异,但训练集中的“顽固样本”稍微增加一些噪声就会错误分类,导致在测试集上的表现很不理想。而支持向量机模型在训练集上得到了较好的表现,同时进一步提高了模型的泛化能力,并得到了唯一的最优超平面。
支持向量机由简单到复杂分为以下三种:

  1. 线性可分支持向量机
    样本是线性可分,如感知器模型可以解决的问题。此时,对应的最大间隔类型为硬间隔最大化,即分类超平面要严格满足每个样本都分类正确。

  2. 线性支持向量机
    当样本近似线性可分,引入松弛因子,可以得到一个线性分类器,如线性可分的样本中增加一些错分的噪声数据。对应的最大间隔类型为软间隔最大化,即战略性地将那些噪声数据放弃,得到一个对于大部分样本都可以正确分类的超平面。这里所说的样本近似线性可分,是通过放弃某些线性不可分的样本后,大部分样本都是线性可分的,这时依然采用线性超平面做分隔,如果不放弃那些线性不可分的样本,就是一个非线性问题。

  3. 非线性支持向量机
    当样本非线性可分时,即使引入松弛因子也不能得到一个近似线性可分的结果时,采用核技术进行特征映射,在高维空间采用软间隔最大化方法得到一个非线性模型,如感知器模型解决不了的异或问题。对应的最大间隔类型为核映射+软间隔最大化。这里所说的样本非线性是在第二种情况中,当非线性样本更多时,我们无法放弃大部分样本而得到一个线性的超平面,所以这里采用核函数的方法进行空间转化,得到一个线性或近似线性的结果,然后再采用线性支持向量机的方法得到超平面。

在实际应用中很少有线性问题,因此支持向量机模型应用最多的就是第三种模型。

Python代码实现及注释

# 16章:SVM模型

import os
import sys
#path = __file__
#path = os.path.abspath(path + ((os.sep + '..') * 2))
#sys.path.append(path)
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
import variable_encode as var_encode
import numbers
from sklearn.metrics import confusion_matrix,recall_score, auc, roc_curve,precision_score,accuracy_score
from sklearn.model_selection import GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC,SVC
from sklearn.metrics import precision_recall_curve
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False     # 正常显示负号
import warnings
warnings.filterwarnings("ignore") ##忽略警告

##数据读取
def data_read(data_path,file_name):
    df = pd.read_csv( os.path.join(data_path, file_name), delim_whitespace = True, header = None )
    ##变量重命名
    columns = ['status_account','duration','credit_history','purpose', 'amount',
               'svaing_account', 'present_emp', 'income_rate', 'personal_status',
               'other_debtors', 'residence_info', 'property', 'age',
               'inst_plans', 'housing', 'num_credits',
               'job', 'dependents', 'telephone', 'foreign_worker', 'target']
    df.columns = columns
    ##将标签变量由状态1,2转为0,1;0表示好用户,1表示坏用户
    df.target = df.target - 1
      ##数据分为data_train和 data_test两部分,训练集用于得到编码函数,验证集用已知的编码规则对验证集编码
    data_train, data_test = train_test_split(df, test_size=
1. 营销获客 2. 贷前 2.1 贷前审查 2.2 反欺诈 2.3 策略 2.4 建模 2.5 数据管理 总监训练营 ......................................................................................................792 4 节课玩转信用评分卡模型....................................................................................792 如何搭建虚拟信用卡体系 ...............................................................................792 大牛手把手教你搭建企业级信用评分模型.....................................................792 2 大维度全面ᨀ升催收效率....................................................................................792 3 堂课,从 0-1 掌握基于数据驱动的险定价核心...............................................792 如何打造现金贷产品的体系?........................................................................792 解密 P2P 网贷备案——专家教你如何正确应对备案..............................................793 区块链的前世今生及其应用 ...................................................................................793 区块链热潮下不可不知的法律险:法律专家权威解读区块链、代币等案例与法律 分析 .........................................................................................................................793 牌照决定生死,现金贷及 P2P 如何拿牌?............................................................793
### 关于金融大数据建模实训课程资料教程 #### 1. 模型发展过程概述 在构建金融模型的过程中,经历了一个逐步优化的过程。最初的数据样本较少,特征较为粗糙,所使用的模型也相对简单;随着业务的发展和技术的进步,逐渐积累了更多的数据样本,特征提取变得更加精细,模型复杂度增加,最终实现了更好的预测效果[^1]。 #### 2. 特征工程与规则制定 对于简单的规则而言,通常基于领域专家的经验来定义;而对于更为复杂的决策逻辑,则依赖机器学习算法通过大量历史案例的学习来进行自动化生成。完成特征工程之后,可以选择不同的方法论如评分卡或是先进的集成学习框架(例如XGBoost)来进行险评估,并据此设置合理的审批标准[^2]。 #### 3. 模型开发周期管理 在整个项目生命周期内,需要严格遵循既定的时间表推进各项工作任务,包括但不限于:确定具体的技术路线图、规划详细的实施步骤、定期汇报阶段性成果以及及时调整策略以应对可能出现的问题。此外,在每次迭代过程中都应记录下重要的发现和改进建议以便后续参考[^3]。 #### 4. 平台架构设计考量 考虑到实际应用场景中的灵活性需求,体系应当具备良好的开放性和扩展能力。无论是来自内部还是外部渠道提交来的信贷请求都能被有效地纳入统一的险管理体系之中。当新的申请进入系统时,会触发一系列预设的工作流节点按照预定程序依次执行相应的审核操作直至得出最后结论[^4]。 ```python # Python代码片段展示如何加载并初步探索一份CSV格式的贷款申请人信息表格 import pandas as pd df = pd.read_csv('loan_applications.csv') print(df.head()) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值