机器学习--逻辑回归
·
逻辑回归的概念
逻辑回归主要用于处理因变量为分类变量的回归问题,常见的事二分类问题,也可以用于处理多分类问题,它实际上是一种分类方法。逻辑回归是经典的二分类算法。
逻辑回归原理
逻辑回归模型使用一个参数化函数来计算给定输入变量的输出概率。该函数称为 sigmoid 函数,它将输入变量的线性组合映射到0到1之间的值,表示预测样本属于正例的概率。
训练模型的过程就是通过最大化似然函数来估计模型的权重。似然函数是一个关于模型参数的函数,表示给定模型下,样本的概率
为了最大化似然函数,我们可以使用梯度下降算法来更新模型的权重。梯度下降算法通过反复迭代来最小化损失函数,直到找到最优解。
逻辑回归sigmoid函数

特点:自变量为负无穷到正无穷,值域为[0,1]
本质:将线性回归的结果映射到[0,1]的区间上,完成了连续变量到概率的转换,大于阈值0.5的类别是1,小于阈值0.5的类别是0
线性回归结果
带入sigmoid函数
对于二分类任务
整合
似然函数
两边取对数
转换为梯度下降任务
目标函数
求偏导
参数更新
梯度下降法
梯度可以定义为一个函数的全部导数构成的向量,梯度方向即为函数值增长最快的方向
梯度下降法的基本思想是通过迭代更新参数,沿着代价函数的负梯度方向移动,以逐步接近代价函数的最小值。
步长(学习率):梯度可以确定移动的方向,学习率将觉得我们采取步长的大小

逻辑回归案例
接下来我们通过银行贷款案例来详细了解逻辑回归
数据集

代码实现
#导入相应的库
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
data=pd.read_csv(r'creditcard.csv')#读取数据
print(data.head())#打印输出前五行
scaler=StandardScaler()#对数据标准化处理
data['Amount']=scaler.fit_transform(data[['Amount']])#对Amount这一列标准化处理,并将结果返回原数据
data=data.drop(['Time'],axis=1)#删除Time这一列,axis=1表示列
#显示中文
from pylab import mpl
mpl.rcParams['font.sans-serif']=['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus']=False
labels_count=pd.value_counts(data['Class'])#统计Class中每个类别的个数
print(labels_count)
#划分特征和标签
X_whole=data.drop('Class',axis=1)
y_whole=data.Class
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)#划分测试集占30%,训练集占70%,random_state=1000(随机种子)
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)#获取模型在测试集上的准确率
print(metrics.classification_report(y_test_w,test_predicted))#打印输出分类报告
打印输出得到结果

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)