我是靠谱客的博主 温暖花瓣,最近开发中收集的这篇文章主要介绍金融贷款逾期的模型构建1,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数据

data_all.csv文件是非原始数据,已经处理过了。数据是金融数据, 我们要做的是预测贷款用户是否会逾期。表格中, status是标签: 0表示未逾期, 1表示逾期。

任务——模型构建

给定数据集,数据三七分,随机种子2018。(在任务1中什么都不用考虑,即不需数据处理和模型调参)
调用sklearn的包,简单构建逻辑回归、SVM和决策树3个模型,评分方式任意(e.g. 准确度和auc值)。

一、相关库

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier

二、数据读取与划分

由于数据中,status的列为标签,且status列不是第一列和最后一列。==》训练集如何便捷获取???
==》使用 pandas 的 drop 函数获取训练集。

## 读取数据
data = pd.read_csv("data_all.csv")
y = data['status']
x = data.drop(labels='status', axis=1)
## 数据集划分
x_train, x_test, y_train, y_test = train_test_split(x, y,test_size=0.3,random_state=2018)
print(len(x))  # 4754

1、drop() 函数

drop() 函数用于删除表中的某一行或某一列,它不改变原有的dataframe中的数据,而是返回另一个dataframe来存储删除后的数据。

(1)drop函数的使用:删除行、删除列

drop函数默认删除行,列需要加axis = 1

print frame.drop(['a'])
print frame.drop(['Ohio'], axis = 1)

(2)drop函数的使用:inplace参数

inplace参数默认为False,若 inplace=True 表示原数组直接就被替换。也就是说,采用inplace=True之后,原数组名(如2和3情况所示)对应的内存值直接改变;

而采用inplace=False之后,原数组名对应的内存值并不改变,需要将新的结果赋给一个新的数组或者覆盖原数组的内存位置。

## 下面三种方式等价
DF= DF.drop('column_name', axis=1);
DF.drop('column_name',axis=1, inplace=True)
DF.drop([DF.columns[[0,1, 3]]], axis=1, inplace=True)   # Note: zero indexed

三、模型构建与评估

基本流程:模型构建model;model.fit();model.score()

## 逻辑回归模型
lr = LogisticRegression(random_state=2018)
lr.fit(x_train,y_train)
score1 = lr.score(x_test,y_test)
print(score1)

## SVM模型
svm = SVC(random_state=2018)
svm.fit(x_train,y_train)
score2 = svm.score(x_test, y_test)
print(score2)

## 决策树模型
dt = DecisionTreeClassifier(random_state=2018)
dt.fit(x_train, y_train)
score3 = dt.score(x_test,y_test)
print(score3)

疑问:使用SVM和线性回归测出得准确率一模一样?

最后

以上就是温暖花瓣为你收集整理的金融贷款逾期的模型构建1的全部内容,希望文章能够帮你解决金融贷款逾期的模型构建1所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部