项目3 贷款情况预测

该文章详细描述了如何在Kaggle的贷款数据集上使用逻辑回归进行预测,涉及数据导入、预处理(包括缺失值处理和特征编码)、模型训练及验证过程。
摘要由CSDN通过智能技术生成

使用Kaggle中的Loan Prediction Problem DataSet 数据集

数据集链接:贷款预测问题数据集 (kaggle.com)

对申请人的各项情况进行综合评估最后判断是否可以贷款

相关库引入

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
#sns 可以进行一些数据关系处理发掘,本文中用于绘制热点图,观测数据间的相关性
import seaborn as sns
#使用sklearn中的逻辑回归功能
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

数据导入及预处理

# 导入数据
full_data = pd.read_csv('data/train.csv')
#Loan_ID列无用途直接去除
full_data=full_data.drop('Loan_ID',axis='columns')

#查看数据情况,可以发现有缺失值,需要处理。
#print(full_data.info())
#Self_employed=full_data['Self_Employed'].value_counts(normalize=True)
#查看其中一些数据的状态并绘制,记得绘制完想显示需要plt.show()函数

'''
print(Self_employed)
Self_employed.plot.bar(title='Self_Employed')
plt.show()
'''

#数据处理,将其中一些布尔量转化为可量化数值,逻辑回归以及后续热点图绘制需要数据处理
full_data['Gender'].replace(('Female','Male'),(0,1),inplace=True)
full_data['Married'].replace(('No','Yes'),(0,1),inplace=True)
full_data['Dependents'].replace(('0', '1', '2', '3+'),(0, 1, 2, 3),inplace=True)
full_data['Education'].replace(('Not Graduate', 'Graduate'),(0, 1),inplace=True)
full_data['Self_Employed'].replace(('No','Yes'),(0,1),inplace=True)
full_data['Property_Area'].replace(('Semiurban','Urban','Rural'),(0,1,2),inplace=True)

#以下函数可绘制热点图,查看数据间的相关性关系
'''
matrix = full_data.corr()
f, ax = plt.subplots(figsize=(10,10))
sns.heatmap(matrix,vmax=.8, square=True,cmap="BuPu",annot=True);
plt.show()
'''

#数据空缺值填补
full_data['Gender'].fillna(full_data['Gender'].value_counts().idxmax(), inplace=True)
#表示用这一列中的众数来填补空缺值
full_data['Married'].fillna(full_data['Married'].value_counts().idxmax(), inplace=True)
full_data['Dependents'].fillna(full_data['Dependents'].value_counts().idxmax(), inplace=True)
full_data['Self_Employed'].fillna(full_data['Self_Employed'].value_counts().idxmax(), inplace=True)
full_data["LoanAmount"].fillna(full_data["LoanAmount"].mean(skipna=True), inplace=True)
#表示用这一列的平均数来填补空缺值
full_data['Loan_Amount_Term'].fillna(full_data['Loan_Amount_Term'].value_counts().idxmax(), inplace=True)
full_data['Credit_History'].fillna(full_data['Credit_History'].value_counts().idxmax(), inplace=True)



模型数据准备及模型训练

#准备训练集的数据及标签
y = full_data['Loan_Status']
X = full_data.drop('Loan_Status',axis='columns')
#导入sklearn中的逻辑回归模型
model = LogisticRegression()
model.fit(X, y)
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False)

像上述处理训练集数据一样对测试集数据进行处理以及空缺值补齐。

在测试集上查看验证训练结果

pred_cv = model.predict(X_test)
print(pred_cv)

结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在R语言中进行信用贷款实训项目,通常会涉及数据处理、数据分析、模型构建和预测等步骤。这样的项目可以帮助学习者理解如何利用统计建模和机器学习技术评估借款人的信用风险。具体可能包括以下几个环节: 1. **数据收集**:收集包含历史贷款数据的数据集,如申请人的个人信息(年龄、收入、职业等)、信用历史、还款记录等。 2. **数据清洗**:处理缺失值、异常值和重复数据,确保数据的质量。 3. **特征工程**:创建或选择影响信用风险的相关特征,比如计算负债比率、平均还款时间等。 4. **探索性数据分析**(EDA):使用R的可视化工具(如ggplot2)探索数据分布,找出可能的关联和模式。 5. **模型选择**:尝试不同的信用评分模型,如逻辑回归、决策树、随机森林或梯度提升机(GBM),并可能用到如caret或tidymodels包。 6. **模型训练与评估**:训练模型并使用交叉验证方法来评估其性能,可能使用ROC曲线、AUC-ROC值或混淆矩阵来衡量模型效果。 7. **模型优化**:根据评估结果调整模型参数或尝试集成学习方法,以提高模型预测精度。 8. **报告撰写**:总结实验过程,解释模型的工作原理、优点和局限性,并展示预测结果。 **相关问题**: 1. R语言中如何处理信用数据的缺失值? 2. 在信用评分模型中,如何选择合适的特征对贷款违约进行预测? 3. 如何在R中使用交叉验证来评估信用模型的性能?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值