机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》

这篇具有很好参考价值的文章主要介绍了机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、什么是逻辑回归

1、逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛

2、叫回归,但是它是一个分类算法

二、逻辑回归的应用场景

1、应用场景
广告点击率:预测是否会被点击
是否为垃圾邮件
是否患病
金融诈骗:是否为金融诈骗
虚假账号:是否为虚假账号

均为二元问题

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

三、逻辑回归的原理

1、逻辑回归的输入
线性回归的输出,就是逻辑回归的输入
机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习

逻辑回归的输入就是一个线性回归的结果

2、怎么用输入来分类
要进行下一步处理,带入到sigmoid函数当中,我们把它叫做激活函数

3、sigmoid函数
机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习
可以理解为,f(x)=1/(1+e^(-x)),1加上e的负x次方分之1

sigmoid函数又称S型函数,它是一种非线性函数,可以将任意实数值映射到0-1之间的值,通常用于分类问题。它的表达式为:f(x)=1/(1+e^(-x)),其中e为自然对数的底数。它的输出值均位于0~1之间,当x趋向正无穷时,f(x)趋向1;当x趋向负无穷时,f(x)趋向0

机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习

4、分析
将线性回归的输出结果,代入到x的部分
输出结果:[0, 1]区间中的一个概率值,默认为0.5为阈值
逻辑回归最终的分类是通过属于某个类别的概率值来判断是否属于某个类别,并且这个类别默认标记为1(正例),另外的一个类别会标记为0(反例)。(方便损失计算)

5、假设函数/线性模型
1/(1 + e^(-(w1x1 + w2x2 + w3x3 + ... + wnxn +b)))
如何得出权重和偏置,使得这个模型可以准确的进行分类预测呢?

6、损失函数(真实值和预测值之间的差距)
我们可以用求线性回归的模型参数的方法,来构建一个损失函数

线性回归的损失函数:(y_predict - y_true)平方和/总数,它是一个值
而逻辑回归的真实值和预测值,是否属于某个类别
所以就不能用均方误差和最小二乘法来构建
要使用对数似然损失

7、优化损失(正规方程和梯度下降)
用一种优化方法,将损失函数取得最小值,所对应的权重值就是我们求的模型参数

四、对数似然损失

1、公式
逻辑回归的损失,称之为对数似然损失
机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习

(1)它是一个分段函数
(2)如果y=1,真实值是1,属于这个类别,损失就是 -log(y的预测值)
(3)如果y=0,真实值是0,不属于这个类别,损失就是 -log(1-y的预测值)

2、怎么理解单个的式子呢?这个要根据log的函数图像来理解
当y=1时:(横坐标是y的预测值)
机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习

前提真实值是1,如果预测值越接近于1,则损失越接近0。如果预测值越接近于0,则损失越大

当y=0时:(横坐标是y的预测值)
机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习

前提真实值是0,如果预测值越接近1,则损失越大

3、综合完整损失函数
机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习

损失函数:-(y真实*logy预测+(1-y真实)*log(1-y预测)),求和

机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习是线性回归的输出,经过sigmoid函数映射之后的一个概率值

4、计算样例
机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习

五、优化损失

同样使用梯度下降优化算法,去减少损失函数的值。这样去更新逻辑回归前面对应算法的权重参数,提升原本属于1类别的概率,降低原本是0类别的概率

六、逻辑回归API

1、sklearn.linear_model.LogisticRegression(solver='liblinear', penalty='l2', C=1.0)
solver:优化求解方式(默认开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数)
    auto:根据数据集自动选择,随机平均梯度下降
penalty:正则化的种类
C:正则化力度

2、LogisticRegression方法相当于SGDClassifier(loss="log", penalty=" ")
SGDClassifier是一个分类器
SGDClassifier实现了一个普通的随机梯度下降学习,也支持平均随机梯度下降法(ASGD),可以通过设置average=True
而使用LogisticRegression它的优化器已经可以使用SAG

七、案例:癌症分类预测-良 / 恶性乳腺癌肿瘤预测

1、数据集
数据:
https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data
数据的描述:
https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.names

2、数据的描述

   #  Attribute                     Domain
   -- -----------------------------------------
   1. Sample code number            id number
   2. Clump Thickness               1 - 10
   3. Uniformity of Cell Size       1 - 10
   4. Uniformity of Cell Shape      1 - 10
   5. Marginal Adhesion             1 - 10
   6. Single Epithelial Cell Size   1 - 10
   7. Bare Nuclei                   1 - 10
   8. Bland Chromatin               1 - 10
   9. Normal Nucleoli               1 - 10
  10. Mitoses                       1 - 10
  11. Class:                        (2 for benign, 4 for malignant)

第一列:样本的编号
第二到十列:特征
第十一列:分类(2代表良性,4代表恶性)

3、流程分析
(1)获取数据
    读取的时候加上names
(2)数据处理
    处理缺失值
(3)数据集划分
(4)特征工程
    无量纲化处理—标准化
(5)逻辑回归预估器
(6)模型评估

4、代码

import pandas as pd
import numpy as np

# 1、读取数据
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("breast-cancer-wisconsin/breast-cancer-wisconsin.data", names=column_name)

data

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

data

# 不存在缺失值
data.isnull().any()

# 3、划分数据集
from sklearn.model_selection import train_test_split

# 筛选特征值和目标值
x = data.iloc[:, 1:-1] # 行都要,列从1到-1
y = data["Class"]

x.head()

y.head()

x_train, x_test, y_train, y_test = train_test_split(x, y)

# 4、标准化
from sklearn.preprocessing import StandardScaler

transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

x_train

from sklearn.linear_model import LogisticRegression

# 5、预估器流程
estimator = LogisticRegression()
estimator.fit(x_train, y_train)

# 逻辑回归的模型参数:回归系数和偏置
# 有几个特征,就有几个回归系数
estimator.coef_

estimator.intercept_

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

5、运行结果
机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》,机器学习,机器学习文章来源地址https://www.toymoban.com/news/detail-723608.html

到了这里,关于机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习算法之-逻辑回归(1)

            回归树,随机森林的回归,无一例外他们都是区别于分类算法们,用来处理和预测连续型标签的算法。然而逻辑回归,是一种名为“ 回归”的线性分类器,其本质是由线性回归变化而来的,一种广泛使用于分类问题中的广义回归算法。要理解逻辑回归从何而来,

    2024年02月12日
    浏览(29)
  • 【机器学习】十大算法之一 “逻辑回归”

      作者主页: 爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主 爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域. https://blog.csdn.net/Code_and516?type=blog 个人简介:打工人。 持续分

    2024年02月10日
    浏览(30)
  • 【AI底层逻辑】——篇章5(下):机器学习算法之聚类&降维&时间序列

    续上: 目录 4、聚类 5、降维 6、时间序列 三、无完美算法  往期精彩: 聚类即把相似的东西归在一起, 与 分类 不同的是#

    2024年02月15日
    浏览(33)
  • 机器学习算法(一): 基于逻辑回归的分类预测

    逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有\\\"回归\\\"两个字,但逻辑回归其实是一个 分类 模型,并且广泛应用于各个领域之中。虽然现在深度学习相对于这些传统方法更为火热,但实则这些传统方法由于其独特的优势依然广泛应用于各个领域中。 而对于

    2024年01月15日
    浏览(36)
  • 机器学习:逻辑回归模型算法原理(附案例实战)

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 订阅专栏案

    2024年01月20日
    浏览(32)
  • 分类算法-逻辑回归与二分类

    广告点击率 是否为垃圾邮件 是否患病 金融诈骗 虚假账号 看到上面的例子,我们可以发现其中的特点,那就是都属于两个类别之间的判断。逻辑回归就是解决二分类问题的利器。 2.1 输入 逻辑回归的输入就是一个线性回归的结果。 2.2 激活函数 sigmoid函数 分析 回归的结果输

    2024年02月07日
    浏览(32)
  • 机器学习算法:线性回归、逻辑回归、决策树和随机森林解析

    引言 机器学习算法是人工智能领域的核心,它们用于解决各种问题,从预测房价到图像分类。本博客将深入探讨四种常见的机器学习算法:线性回归、逻辑回归、决策树和随机森林。 线性回归 什么是线性回归? 线性回归是一种用于建立连续数值输出的机器学习模型的算法。

    2024年02月10日
    浏览(36)
  • 机器学习:基于梯度下降算法的逻辑回归实现和原理解析

    当涉及到二元分类问题时,逻辑回归是一种常用的机器学习算法。它不仅简单而且有效,通常是入门机器学习领域的第一步。本文将介绍逻辑回归的基本概念、原理、应用场景和代码示例。 逻辑回归是一种用于解决二元分类问题的统计学习方法。尽管其名称中包含\\\"回归\\\"一词

    2024年02月09日
    浏览(32)
  • 【AI底层逻辑】——篇章5(上):机器学习算法之回归&分类

    目录 引入 一、何为机器学习 1、定规则和学规则 2、算法的定义

    2024年02月16日
    浏览(39)
  • 机械学习模型训练常用代码(随机森林、聚类、逻辑回归、svm、线性回归、lasso回归,岭回归)

    更多pandas操作请参考添加链接描述pandas对于文件数据基本操作 导入的包sklearn 字符串编码处理,LabelEncoder TfidfVectorizer结合TruncatedSVD 排除某一列,例如 如果需要用到回归则换成RandomForestRegressor 数据在dc_matrix里面 绘制距离 #加入到表里面 师范,保存文本模型,使用其转换,调

    2023年04月14日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包