逻辑回归(Logistic Regression)原理及其应用

目录

第一章:逻辑回归的应用场景

第二章:逻辑回归的原理

1.输入

2.Sigmoid函数

3.损失函数

4.优化损失

采用梯度下降:

第三章 逻辑回归应用案例

1.数据集

2.具体流程

1.读取数据

2.缺失值处理

3.划分数据集

4.标准化

5.预估器流程

6.模型评估

7.结果展示

第四章 分类评估算法

1.分类的评估方法——精确率与召回率

精确率:

召回率:

F1-score

2.分类的评估方法——ROC曲线和AUC指标

第一章:逻辑回归的应用场景

  • 广告点击率
  • 是否为垃圾邮件
  • 是否患病
  • 金融诈骗
  • 虚假账号

看到上面的例子,我们可以发现其中的特点,那就是都属于两个类别之间的判断。逻辑回归就是解决二分类问题的利器。

注意:逻辑回归虽然名字中有回归二字,但是它不是回归算法,而是分类算法。

第二章:逻辑回归的原理

1.输入

逻辑回归(Logistic Regression)原理及其应用

这是线性回归输出的结果,我们一般可以写成矩阵形式。如下:

逻辑回归(Logistic Regression)原理及其应用

权重和偏置分别用矩阵表示之后,将上面的式子可以写成下面的:

逻辑回归(Logistic Regression)原理及其应用

2.Sigmoid函数

图像为:

逻辑回归(Logistic Regression)原理及其应用

观察该图像,自变量取值范围是(-∞,+∞),因变量取值范围为(0,1),意思是无论自变量取值多少,都可以通过sigmoid函数映射到(0,1)之间。

总结:sigmoid函数,会把线性回归的结果映射到【0,1】之间,假设0.5为阈值,默认会把小于0.5的为0,大于0.5的为1,这样就可以分类了

假设:预测函数为:

逻辑回归(Logistic Regression)原理及其应用

其中

逻辑回归(Logistic Regression)原理及其应用

以上两式的意思是,先把线性回归的结果用矩阵表示,在将表示的结果放到sigmoid函数当中。

分类任务:

逻辑回归(Logistic Regression)原理及其应用

理解:以丢硬币的概率举例,假如正面的概率是0.7,那么反面的概率是1-0.7=0.3

将上面两个式子进行整合,得到:

逻辑回归(Logistic Regression)原理及其应用

3.损失函数

为求出好的逻辑回归,引出损失函数 :

①损失函数是体现”预测值”和”真实值”,相似程度的函数

②损失函数越小,模型越好

逻辑回归的损失,称之为对数似然损失,公式如下:

逻辑回归(Logistic Regression)原理及其应用

这个式子也不陌生,将上面整合的式子,取对数,原先是相乘,取对数之后会相加,指数也可以移到前面。

假定样本与样本之间相互独立,那么整个样本集生成的概率即为所有样本生成概率的乘积,再将公式对数化,便可得到如下公式:

逻辑回归(Logistic Regression)原理及其应用

逻辑回归(Logistic Regression)原理及其应用

4.优化损失

采用梯度下降:

逻辑回归(Logistic Regression)原理及其应用

理解:α为学习速率,需要手动指定,α旁边的整体表示方向

沿着这个函数下降的方向找,最后就能找到山谷的最低点,然后更新W值

使用:面对训练数据规模十分庞大的任务 ,能够找到较好的结果

图像表示如下:

逻辑回归(Logistic Regression)原理及其应用

就是不断的缩小自身的值,最后找到最低点。

第三章 逻辑回归应用案例

1.数据集

原始数据集下载

逻辑回归(Logistic Regression)原理及其应用

逻辑回归(Logistic Regression)原理及其应用

打开之后,下载红色标注的两个。

其中data里面是数据,共699条样本,共11列数据,第一列用语检 索的id,后9列分别是与肿瘤相关的医学 特征,最后一列表示肿瘤类型的数值。包含16个缺失值,用”?”标出。

逻辑回归(Logistic Regression)原理及其应用

names里面是对data文件的描述,主要是对data里面每列的说明,最后一列是类别。

逻辑回归(Logistic Regression)原理及其应用

2.具体流程

1.读取数据

需要注意的是数据和列明分开了,因此在进行读取的时候,要一块读取。

import pandas as pd
import numpy as np
1.读取数据
path = "breast-cancer-wisconsin.data"
column_name = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape',
                   'Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin',
                   'Normal Nucleoli', 'Mitoses', 'Class']

data = pd.read_csv(path, names=column_name)
print(data)

2.缺失值处理

2、缺失值处理
1)替换-》np.nan
data = data.replace(to_replace="?", value=np.nan)
2)删除缺失样本
data.dropna(inplace=True)

3.划分数据集

3、划分数据集
from sklearn.model_selection import train_test_split
筛选特征值和目标值
x = data.iloc[:, 1:-1]
y = data["Class"]
x_train, x_test, y_train, y_test = train_test_split(x, y)

4.标准化

把原始数据转化到均值为0,标准差为1的范围内

4、标准化
from sklearn.preprocessing import StandardScaler
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

5.预估器流程

from sklearn.linear_model import LogisticRegression
5、预估器流程
estimator = LogisticRegression()
estimator.fit(x_train, y_train)
逻辑回归的模型参数:回归系数和偏置
estimator.coef_
estimator.intercept_

6.模型评估

6、模型评估
方法1:直接比对真实值和预测值
y_predict = estimator.predict(x_test)
print("y_predict:\n", y_predict)
print("直接比对真实值和预测值:\n", y_test == y_predict)
方法2:计算准确率
score = estimator.score(x_test, y_test)
print("准确率为:\n", score)

7.结果展示

逻辑回归(Logistic Regression)原理及其应用

代码还未结束,后面还有评估代码

第四章 分类评估算法

1.分类的评估方法——精确率与召回率

我们往往并不关注准确率,而是关注癌症患者中癌症患者有没有检测出来,于是就有了精确率与召回率。

在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵。

逻辑回归(Logistic Regression)原理及其应用

精确率:

预测结果为正例样本中真实结果为正例的比例,在混淆矩阵中展示情况为:

逻辑回归(Logistic Regression)原理及其应用

召回率:

真实结果为正例的样本中预测结果为正例的比例,在混淆矩阵中展示情况为:

逻辑回归(Logistic Regression)原理及其应用

总结:

精确率是预测结果的正例中有多少是真正预测正确的

召回率是真实结果的正例有多少被预测对了

以上就是精确率和召回率,现在介绍F1-score

F1-score

反映了模型的稳健型,F1值大的话,精确率和召回率也大

逻辑回归(Logistic Regression)原理及其应用

现在用代码实现精确率、召回率和F1-score

查看精确率、召回率、F1-score
from sklearn.metrics import classification_report
report = classification_report(y_test, y_predict, labels=[2, 4], target_names=["良性", "恶性"])
print(report)

结果为:

逻辑回归(Logistic Regression)原理及其应用

在引入ROC曲线和AUC指标之前,举个样本不均衡的例子

思考?

假设这样一个情况,如果99个样本癌症,1个样本非癌症,不管怎样我全都预测正例(默认癌症为正例)

将这写信息写入混淆矩阵中,如下:

逻辑回归(Logistic Regression)原理及其应用

分别计算:

准确率:99%

精确率:99/(99+1)=99%

召回率:99/(99+0)=100%

F1-score:299%100%/99%+100%=99.497487%

可以看出,这是一个不负责的模型,根本原因在于样本不均衡,正例太多,反例太少。引入ROC曲线和AUC指标。

2.分类的评估方法——ROC曲线和AUC指标

在引入ROC曲线和AUC指标之前,还要了解TPR与FPR。

逻辑回归(Logistic Regression)原理及其应用

TPR = TP / (TP + FN)

所有真实类别为1的样本中,预测类别为1的比例

FPR = FP / (FP + TN)

所有真实类别为0的样本中,预测类别为1的比例

分类的评估方法——ROC曲线和AUC指标

逻辑回归(Logistic Regression)原理及其应用

蓝色的线就是ROC曲线,AUC指标是ROC曲线与纵轴和横轴的面积。

现在介绍这张图:

ROC曲线的横轴就是FPRate,纵轴就是TPRate,当二者相等时,表示的意义则是:对于不论真实类别是1还是0的样本,分类器预测为1的概率是相等的,此时AUC为0.5(即随机猜测)

AUC的最小值为0.5,最大值为1,取值越高越好

AUC=1,完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。

0.5

Original: https://blog.csdn.net/qq_39031009/article/details/125305196
Author: 探索者up
Title: 逻辑回归(Logistic Regression)原理及其应用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/638303/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球