当前位置: 首页 > article >正文

逻辑回归实战——银行贷款案例初步实现

原理:

      逻辑回归是一种用于二分类的统计方法,通过Sigmoid函数将线性回归的输出映射为概率。它使用对数损失函数衡量预测与真实标签的差异,并通过最大似然估计或梯度下降法优化模型参数。尽管名称中有“回归”,但它主要用于分类任务。

实例:

下面我们用逻辑回归的算法思想,初步实现一个有关银行贷款的案例。

1、导入相关的库

用pandas库对数据进行预处理

import pandas as pd
from sklearn.preprocessing import StandardScaler
2、数据预处理

接着进行数据读取,将数据实例化、标准化,并删除不需要的列

data=pd.read_csv('creditcard.csv')

scaler =StandardScaler()   #实例化 标准化 对象Scaler
# a=data[['Amount']]
# b=data['Amount']
data['Amount']=scaler.fit_transform(data[['Amount']]) #将计算后的标准差存入data
data=data.drop(['Time'],axis=1)   #删除Time列的内容,axis为1表示列
3、可视化处理

绘制图形,查看正负样本个数

import matplotlib.pyplot as plt
from pylab import mpl        #借助pylab实现中文显示

mpl.rcParams['font.sans-serif']=['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus']=False

labels_count=pd.value_counts(data['Class'])   #统计data['class']中每个类的个数
print(labels_count)
plt.title('正负例样本数')   #设置标题
plt.xlabel('类别')         #设置x轴标题
plt.ylabel('频数')         #设置y轴标题
labels_count.plot(kind='bar')   #设置图像类型为bar
plt.show()
4、数据切分

将数据集分割为训练集与测试集,并将特征与标签分离

from sklearn.model_selection import train_test_split
#对原始数据进行切分
x_whole=data.drop('Class',axis=1)
y_whole=data.Class
#返回4个数据集
x_train_w,x_test_w,y_train_w,y_test_w=\
train_test_split(x_whole,y_whole,test_size=0.3,random_state=1000)
5、创建模型并训练
from sklearn.linear_model import LogisticRegression
lr=LogisticRegression(C=0.01)  #创建模型
lr.fit(x_train_w,y_train_w)    #训练模型
6、预测并评估模型
test_predicted=lr.predict(x_test_w)
result = lr.score(x_test_w,y_test_w)

from sklearn import metrics
print(metrics.classification_report(y_test_w,test_predicted))
7、结果展示

8、完整代码如下
import pandas as pd
from sklearn.preprocessing import StandardScaler

data=pd.read_csv('creditcard.csv')

scaler =StandardScaler()   #实例化 标准化 对象Scaler
# a=data[['Amount']]
# b=data['Amount']
data['Amount']=scaler.fit_transform(data[['Amount']]) #将计算后的标准差存入data
data=data.drop(['Time'],axis=1)   #删除Time列的内容,axis为1表示列

import matplotlib.pyplot as plt
from pylab import mpl        #借助pylab实现中文显示

mpl.rcParams['font.sans-serif']=['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus']=False

labels_count=pd.value_counts(data['Class'])   #统计data['class']中每个类的个数
print(labels_count)
plt.title('正负例样本数')   #设置标题
plt.xlabel('类别')         #设置x轴标题
plt.ylabel('频数')         #设置y轴标题
labels_count.plot(kind='bar')   #设置图像类型为bar
plt.show()

from sklearn.model_selection import train_test_split
#对原始数据进行切分
x_whole=data.drop('Class',axis=1)
y_whole=data.Class
#返回4个数据集
x_train_w,x_test_w,y_train_w,y_test_w=\
train_test_split(x_whole,y_whole,test_size=0.3,random_state=1000)

from sklearn.linear_model import LogisticRegression
lr=LogisticRegression(C=0.01)  #创建模型
lr.fit(x_train_w,y_train_w)    #训练模型

test_predicted=lr.predict(x_test_w)
result = lr.score(x_test_w,y_test_w)

from sklearn import metrics
print(metrics.classification_report(y_test_w,test_predicted))



总结:

       逻辑回归是一种简单而有效的分类算法,常用于预测二分类问题。它通过线性组合特征并使用Sigmoid函数将结果转化为概率,判断样本属于某一类的可能性。模型通过最小化对数损失函数来优化参数,通常采用梯度下降法进行求解。尽管名字带有“回归”,但它主要用于分类任务,是机器学习中的基础算法之一。


http://www.kler.cn/a/580809.html

相关文章:

  • MoonSharp 文档四
  • ESP32S3N16R8驱动ST7701S屏幕(vscode+PlatfoemIO)
  • C#程序结构及基本组成说明
  • 【MySQL_06】表的相关操作
  • 2025年渗透测试面试题总结-华顺某信安-安全服务工程师(题目+回答)
  • 1分钟看懂React的那些Hook‘s
  • Python:函数(一)
  • UIToolkit(一)
  • cursor mcp 在windows下配置
  • MySQL 索引技术指南
  • 《Mycat核心技术》第19章:基于MySQL实现读写分离
  • 深度学习双向RNN
  • 从 “12.3” 的崩溃到完美的解决方案:一场类型选择的冒险之旅
  • 计算机导论——CS50
  • 大空间多人互动技术、大空间LBE、VR大空间什么意思?如何实现?
  • MATLAB 控制系统设计与仿真 - 21
  • 启动wsl里的Ubuntu24报错:当前计算机配置不支持 WSL2,HCS_E_HYPERV_NOT_INSTALLED
  • leetcode hot100 二叉树
  • Spark(8)配置Hadoop集群环境-使用脚本命令实现集群文件同步
  • 《C#上位机开发从门外到门内》1-2:上位机开发语言与工具、开发环境部署