信用评分预测模型(四)--支持向量机算法

前言

下面将对数据利用支持向量机算法得到结果。

代码

#标准化数据
from sklearn import preprocessing
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import pandas as pd

#读取文件
# readFileName="dataset\german-全标准化.xls"
readFileName="dataset\german.xls"

#读取excel
df=pd.read_excel(readFileName)

# list_columns=list(df.columns[:-1])
x=df.ix[:,:-1]
y=df.ix[:,-1]
names=x.columns

#random_state 相当于随机数种子
# x_train,x_test,y_train,y_test=train_test_split(x,y,stratify=y,random_state=38)

x_train,x_test,y_train,y_test=train_test_split(x,y,stratify=y,train_size=0.6,random_state=38)
x_test2,x_check,y_test2,y_check=train_test_split(x_test,y_test,train_size=0.25,random_state=38)
svm=SVC()
svm.fit(x_train,y_train)
print("accuracy on the training subset:{:.3f}".format(svm.score(x_train,y_train)))
print("accuracy on the test subset:{:.3f}".format(svm.score(x_check,y_check)))

'''
accuracy on the training subset:1.000
accuracy on the test subset:0.700

'''

#观察数据是否标准化
# plt.tick_params(labelsize=8.5)
# plt.plot(names,x_train.min(axis=0),'o',label='Min')
# plt.plot(names,x_train.max(axis=0),'v',label='Max')
# plt.xlabel('Feature Index')
# plt.ylabel('Feature magnitude in log scale')
# plt.yscale('log')
# plt.xticks(rotation=90)

# plt.legend(loc='upper right')

#标准化数据
x_train_scaled = preprocessing.scale(x_train)
x_train_scaled = preprocessing.scale(x_train_scaled)
x_test_scaled = preprocessing.scale(x_check)
x_test_scaled = preprocessing.scale(x_test_scaled)
svm1=SVC()
svm1.fit(x_train_scaled,y_train)
print("accuracy on the scaled training subset:{:.3f}".format(svm1.score(x_train_scaled,y_train)))
print("accuracy on the scaled test subset:{:.3f}".format(svm1.score(x_test_scaled,y_check)))
'''
accuracy on the scaled training subset:0.867
accuracy on the scaled test subset:0.800
'''

# 改变C参数,调优,kernel表示核函数,用于平面转换,probability表示是否需要计算概率
# c相当于惩罚松弛变量,c值小,对误分类的惩罚减小,允许容错,泛化能力较强
# gamma:'rbf','poly' 和'sigmoid'的核函数参数。默认是’auto’
# kernel :核函数,默认是rbf,可以是'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'
# probability:是否启用概率估计。 这必须在调用fit()之前启用,并且使fit()方法速度变慢

svm2=SVC(C=1,gamma="auto",kernel='rbf',probability=True)
svm2.fit(x_train_scaled,y_train)
print("after c parameter=10,accuracy on the scaled training subset:{:.3f}".format(svm2.score(x_train_scaled,y_train)))
print("after c parameter=10,accuracy on the scaled test subset:{:.3f}".format(svm2.score(x_test_scaled,y_check)))
'''
after c parameter=10,accuracy on the scaled training subset:0.972
after c parameter=10,accuracy on the scaled test subset:0.716
'''

# plt.show()
#计算样本点到分割超平面的函数距离
#print (svm2.decision_function(x_train_scaled))

#print (svm2.decision_function(x_train_scaled)[:20]>0)
#支持向量机分类
print(svm2.classes_)

# 输出概率
# print(svm2.predict_proba(x_test_scaled))
print(len(svm2.predict_proba(x_test_scaled)))
# a = svm2.predict_proba(x_test_scaled)
# b = svm2.predict(x_test_scaled)
# c = []
# for i in range(len(a)):
#     if (a[i][1] > 0.5 and b[i] == 0):
#         print(a[i],b[i],i+1)
#判断数据属于哪一类,0或1表示
print(svm2.predict(x_test_scaled))
# plt.show()

原文地址:https://www.cnblogs.com/LieDra/p/12018568.html

时间: 2024-10-04 01:20:41

信用评分预测模型(四)--支持向量机算法的相关文章

信用评分预测模型(二)--决策树算法

前言 下面将对数据利用决策树算法得到结果. 代码 import pandas as pd import numpy as np import matplotlib.pyplot as plt import numpy as np # 导入决策树分类器 from sklearn.tree import DecisionTreeClassifier # 导入训练集划分 from sklearn.model_selection import train_test_split ''' version:1

支持向量机原理(四)SMO算法原理

支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五)线性支持回归(待填坑) 在SVM的前三篇里,我们优化的目标函数最终都是一个关于\alpha向量的函数.而怎么极小化这个函数,求出对应的\alpha向量,进而求出分离超平面我们没有讲.本篇就对优化这个关于\alpha向量的函数的SMO算法做一个总结. 1. 回顾SVM优化目标函数 我们首先回顾下我们的

信用评分卡模型入门(智能算法)

信用评分卡模型入门 2016-07-26 智能算法 智能算法 一.背景介绍:   4.数据整理(数据清理过程) 大量取样的数据要真正最后进入模型,必须经过数据整理.在数据处理时应注意检查数据的逻辑性.区分"数据缺失"和"0".根据逻辑推断某些值.寻找反常数据.评估是否真实.可以通过求最小值.最大值和平均值的方法,初步验证抽样数据是否随机.是否具有代表性. 常用清理过程包含:缺失值分析处理.单变量异常分析(LOF分析处理或聚类分析) 5.变量选择 变量选择要同时具有数

互金时代如何定制个性化信用评分模型

互金时代如何定制个性化信用评分模型 相比起传统金融机构,互联网金融以个性化服务取胜,由此也催生了各类深耕细分市场的互联网金融公司.不过这样一来,原来传统风控的玩法和经验,已经很难满足新兴互联网金融公司的风控需求. 如何用最为省时省力的方法,打造契合自身业务特色的个性化风控模型?如何利用先进的大数据手段,迅速提高风控的效率,降低风控的成本?今天就让处座来介绍一下吧. 风控将成互联网金融发展"痛点" 在经历2013至2014年的爆发式发展之后,互联网金融行业逐渐步入到规范化发展阶段.201

信用评分卡 (part 1 of 7)

python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share 信用危机时代的信用评分卡 Credit Scorecards in the Age of Credit Crisis This incident took place

笔记︱金融风险控制基础常识——巴塞尔协议+信用评分卡Fico信用分

一.巴塞尔协议--银行业监管手册 巴塞尔协议Ⅲ是全球银行业监管的标杆,其出台必将引发国际金融监管准则的调整和重组,影响银行的经营模式和发展战略.在巴塞尔协议Ⅲ出台之际,中国银监会及时推出了四大监管工具,包括资本要求.杠杆率.拨备率和流动性要求四大方面,及时进行了跟进,构成了未来一段时期中国银行业监管的新框架. 该报告主要有四部分内容: 1.资本的分类: 2.风险权重的计算标准: 3.1992年资本与资产的标准比例和过渡期的实施安排: 4.各国监管当局自由决定的范围. 体现协议核心思想的是前两项.

信用评分怎么算出来的?偷偷给你一份客户信用等级简易评估模型.......

信用评分怎么算出来的?偷偷给你一份客户信用等级简易评估模型....... 2016-06-20 信用知识公益平台 对于像葵花君这样的菜鸟而言,心中始终萦绕着一个硕大的问号 信用等级到底是怎么评估出来的? 难道是夜观星象么? 今天偷偷给你一份客户信用等级简易评估模型....... 客户的信用等级简易评估办法,就是依据一系列实测指标,经评估打分综合划分出客户的信用等级. 为计算方便采用满分为10分制,根据对征信资料的审查核实,对每一项指标打分后综合计算平均值,最后再加权计算综合得分. 一 .主体资格

互联网征信中的信用评分模型(转)

摘要:面向小微商户以及个人消费的小微信贷是当前互联网金融的重要发展方向,并且正在经历爆发式增长.在这个增长过程中,如何在没有实物抵押的情况下,通过互联网大数据分析实现快速准确征信是一个非常重要的问题.为此,不同的数据来源将各显神通地为信用评估提供依据.本文将通过一个真实的案例出发,进行分析和探讨,针对用户历史行为数据建立信用评分模型,并通过该模型改进信用评估的预测效果. 关键词: 小微信贷:互联网征信:信用评分:Logistic回归模型 一.业务介绍 行业介绍 小微信贷,我们定义为金额较小,并且

关于交易信用评分的分布形态描述

想研究网络交易中买家会对卖家进行信用评分的分布形态.但手头下并没有实际数据,在数据堂找到了关于对电影和5分评分数据,这个能做一个很好的模拟,很像eBay信用评分的反馈计分方式.为此就用此数据进行模拟,模拟在R中进行. 很长时间没用R了,关于R知识现在要逐步的拣起来.期间关于R的操作遇到如下问题: 1.源数据没有列命,重新对进行了命名.直接使用 names(mydata) <- c('user_id','item_id','rating','timestamp')进报错后,换成 colnames(