目录

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

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

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

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

用pandas库对数据进行预处理

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))

https://i-blog.csdnimg.cn/direct/1ab34ad037f846df920bdaef5aacebd5.png

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函数将结果转化为概率,判断样本属于某一类的可能性。模型通过最小化对数损失函数来优化参数,通常采用梯度下降法进行求解。尽管名字带有“回归”,但它主要用于分类任务,是机器学习中的基础算法之一。