专门做情侣装的网站,吉林市网站创意与建设,wordpress媒体库显示空白,安平做网站的电话目录
初识逻辑回归
逻辑回归实操
分类评估方法 初识逻辑回归
逻辑回归#xff08;LogisticRegression#xff09;是机器学习中的一种分类模型#xff0c;逻辑回归是一种分类算法#xff0c;虽然名字中带有回归#xff0c;但是它与回归之间有一定的联系。由于算法的简单…目录
初识逻辑回归
逻辑回归实操
分类评估方法 初识逻辑回归
逻辑回归LogisticRegression是机器学习中的一种分类模型逻辑回归是一种分类算法虽然名字中带有回归但是它与回归之间有一定的联系。由于算法的简单和高效在实际中应用非常广泛。
逻辑回归就是解决二分类问题的利器以下是逻辑回归的应用场景 1广告点击率 2是否为垃圾邮件 3是否患病 4金融诈骗 5 虚假账号 逻辑回归原理逻辑回归是一种常用于解决二分类问题的统计学习方法。它的原理基于以下几个关键概念
假设函数逻辑回归的输入值就是一个线性回归的结果 Sigmoid 函数sigmoid 函数是一种常用的激活函数它将任意实数映射到 (0, 1) 的区间内。它的定义如下 回归的结果输入到sigmoid函数当中其输出结果[01]区间中的一个概率值默认为0.5为阈值 逻辑回归最终的分类是通过属于某个类别的概率值来判断是否属于某个类别并且这个类别默认标记为1(正例)另外的一个类别会标记为0(反例)。 (方便损失计算) 输出结果解释重要)假设有两个类别AB并且假设我们的概率值为属于A1)这个类别的概率值。现在有一个样本的输入到逻辑回归输出结果0.55那么这个概率值超过0.5意味着我们训练或者预测的结果就是A(1)类别。那么反之如果得出结果为0.3那么训练或者预测结果就为B(0)类别。
关于逻辑回归的阈值是可以进行改变的比如上面举例中如果你把阈值设置为0.6那么输出的结果0.55就属于B类。
损失函数逻辑回归使用最大似然估计来确定模型的参数。为了最大化似然函数通常采用对数似然损失函数log-likelihood loss逻辑回归的损失称之为对数似然损失公式如下 其中y为真实值hθ(x)为预测值。 无论何时我们都希望损失函数值越小越好。分情况讨论对应的损失函数值 接下来我们进行举例 接下来我们呢就带入上面那个例子来计算一遍就能理解意义了 逻辑回归实操
接下来通过肿瘤预测案例学会如何使用逻辑回归对模型进行训练原始数据的下载地址大家可以参考网址 里面有众多数据集供大家训练大家根据自身情况进行选择 本次使用的数据集描述 1699条样本共11列数据第一列用语检索的id后9列分别是与肿瘤相关的医学特征最后一列表示肿瘤类型的数值。 2包含16个缺失值用标出。 下面这段代码是一个使用逻辑回归进行二分类问题预测的示例
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression# 获取数据
names [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(https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data, namesnames)# 基本数据处理
data data.replace(to_replace?, valuenp.nan) # 缺失值处理
data data.dropna()x data.iloc[:, 1: -1] # 确定特征值
y data[class] # 确定目标值
x_train, x_test, y_train, y_test train_test_split(x, y, test_size0.2, random_state22) # 分割数据# 特征工程标准化
transfer StandardScaler()
x_train transfer.fit_transform(x_train)
x_test transfer.fit_transform(x_test)# 机器学习(逻辑回归)
estimator LogisticRegression()
estimator.fit(x_train, y_train)# 模型评估
ret estimator.score(x_test, y_test) # 准确率
print(准确率为: \n, ret)
y_pre estimator.predict(x_test) # 预测值
print(预测值为: \n, y_pre)
它主要涉及到数据获取、基本数据处理、数据集划分、特征工程标准化、机器学习逻辑回归和模型评估等步骤。通过这个示例可以学习到如何使用逻辑回归模型进行二分类问题的预测。 分类评估方法
在逻辑回归中分类评估方法是用来评估模型在分类问题中的性能和准确度的一种方法。在分类任务下预测结果(PredictedCondition)与正确标记(TrueCondition)之间存在四种不同的组合构成混淆矩阵(适用于多分类) 以下是一些常见的分类评估方法
精确率表示模型预测为正例的样本中真正为正例的比例即在所有预测为正例的样本中有多少是真正的正例。精确率可以用来评估模型的预测结果中的假阳性率。 召回率表示模型成功预测为正例的样本占所有实际正例的比例即在所有实际为正例的样本中有多少被成功预测为正例。召回率可以用来评估模型的预测结果中的假阴性率。 接下来我们对上文的案例进行一个精确率与召回率的测试导入如下库
from sklearn.metrics import classification_report
然后我们测试精确率与召回率 最终得到的结果如下 F1 分数(F1-Score)F1 分数是精确率和召回率的调和平均值它综合考虑了精确率和召回率的性能指标。F1 分数越高说明模型的综合性能越好。 ROC 曲线和 AUCROC 曲线Receiver Operating Characteristic Curve是以真正例率True Positive RateTPR为纵轴假正例率False Positive RateFPR为横轴绘制的曲线。ROC 曲线可以用来评估二分类模型在不同阈值下的性能表现。AUCArea Under the Curve是 ROC 曲线下的面积用来衡量模型分类性能的一个综合指标。AUC 值越大说明模型的分类性能越好。 ROC曲线的横轴就是FPRate纵轴就是TPRate当二者相等时表示的意义则是对于不论真实类别是1还是0的样本分类器预测为1的概率是相等的此时AUC为0.5 AUC指标 1AUC的概率意义是随机取一对正负样本正样本得分大于负样本得分的概率 2AUC的范围在[01]之间并且越接近1越好越接近0.5属于乱猜 3AUC1完美分类器采用这个预测模型时不管设定什么阈值都能得出完美预测。绝大多数预测的场合不存在完美分类器。 40.5AUC1优于随机猜测。这个分类器模型妥善设定阈值的话能有预测价值。 我们在上一个案例中导入如下第三方库进行auc计算
from sklearn.metrics import roc_auc_score
最终打印的结果如下