脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - 机器学习逻辑回归算法原理与python代码实现入门

机器学习逻辑回归算法原理与python代码实现入门

2023-10-23 16:25青枫浦上看桃花 Python

在Python中,已经有相应的库将数学方法整合好了,通过调用库中的模 块就能建立逻辑回归模型,从而预测概率并进行分类。下面通过一个简 单的案例来说明如何在Python中快速搭建逻辑回归模型,以帮助大家加 深对逻辑回归模型的

一、原理

        逻辑回归模型本质就是将线性回归模型通过Sigmoid函 数进行了一个非线性转换,得到一个介于0~1之间的概率值。

对于二分 类问题(分类0和1)而言,其预测分类为1(或者说二分类中数值较大 的分类)的概率可以用如下所示的公式计算。

 机器学习逻辑回归算法原理与python代码实现入门

因为概率和为1,则分类为0(或者说二分类中数值较小的分类)的 概率为1-P。

逻辑回归模型的本质就是预测属于各个分类的概率,有了概率之 后,就可以进行分类了。对于二分类问题来说,例如在预测客户是否会 违约的模型中,如果预测违约的概率P为70%,则不违约的概率为 30%,违约概率大于不违约概率,此时就可以认为该客户会违约。对于 多分类问题来说,逻辑回归模型会预测属于各个分类的概率(各个概率 之和为1),然后根据哪个概率最大,判定属于哪个分类。 了解了逻辑回归模型的基本原理后,在实际模型搭建中,就是要找 到合适的系数ki和截距项k0,使预测的概率较为准确,在数学中使用极 大似然估计法来确定合适的系数ki和截距项k0,从而得到相应的概率。

在Python中,已经有相应的库将数学方法整合好了,通过调用库中的模 块就能建立逻辑回归模型,从而预测概率并进行分类。下面通过一个简 单的案例来说明如何在Python中快速搭建逻辑回归模型,以帮助大家加 深对逻辑回归模型的理解。

二、逻辑回归python实现

1.简单案例

本小节通过一个简单的Python案例来说明逻辑回归模型的算法原 理,数据见下表。特征变量有2个——X1和X2;Y是目标变量,取值为0 或1,代表2个不同的分类。以客户违约预测模型为例,可以把特征变量 X1看成收入,X2看成历史违约次数,目标变量Y看成是否违约(0表示 不违约,1表示违约)。

机器学习逻辑回归算法原理与python代码实现入门

先构造数据,代码如下。

1 X = [[1, 0], [5, 1], [6, 4], [4, 2], [3, 2]]

2 Y = [0, 1, 1, 0, 0]

再将已有数据使用逻辑回归模型进行拟合,代码如下。

1 from sklearn.linear_model import LogisticRegression

2 model = LogisticRegression()

3 model.fit(X, Y)

第1行代码从Scikit-Learn库中引入逻辑回归模型 LogisticRegression。

第2行代码将逻辑回归模型赋给变量model,这里没有设置参数,即 使用默认参数。

第3行代码用fit()函数进行模型的训练。

训练完模型之后,即可用模型的predict()函数进行预测,代码如 下。

1 model.predict([[2, 2]])

预测结果如下。

1 [0]

       有的读者可能会感到疑惑:为什么上述代码中的predict()函数中要 写两组中括号,而不是写成model.predict([2,2])呢?这是因为predict() 函数默认接收一个多维数据,将其用于同时预测多个数据时大家会更容 易理解,演示代码如下。

1 model.predict([[1, 0], [5, 1], [6, 4], [4, 2], [3, 2]])

因为这里演示的多个数据和变量X是一样的,所以也可以直接写成 model.predict(X),预测结果如下。

1 [0 1 1 0 0]

可以看到其预测准确度为100%。

 2.用逻辑回归模型处理多分类问题

1 # 构造数据,此时y有3个分类-1、0、1

2 X = [[1, 0], [5, 1], [6, 4], [4, 2], [3, 2]]

3 y = [-1, 0, 1, 1, 1] 4 5

# 模型训练

6 from sklearn.linear_model import LogisticRegression

7 model = LogisticRegression() 8 model.fit(X, y)

模型训练完成后,同样可以用predict()函数进行分类预测,代码如 下。

1 print(model.predict([[0, 0]])) 打印结果如下。

1 [-1]

同样可以用predict_proba()函数获取各个分类的概率,代码如下。

1 y_pred_proba = model.predict_proba([[0, 0]])

 打印结果如下。机器学习逻辑回归算法原理与python代码实现入门

可以看到预测分类为-1的概率最大,因此数据[0,0]被预测为分 类-1。 

到此这篇关于机器学习逻辑回归算法原理与python代码实现入门的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/qq_58546982/article/details/132802955

延伸 · 阅读

精彩推荐
  • PythonPython3.6.x中内置函数总结及讲解

    Python3.6.x中内置函数总结及讲解

    今天小编就为大家分享一篇关于Python3.6.x中内置函数总结及讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小...

    Money多多7392021-06-01
  • PythonPython编程实现生成特定范围内不重复多个随机数的2种方法

    Python编程实现生成特定范围内不重复多个随机数的2种方法

    这篇文章主要介绍了Python编程实现生成特定范围内不重复多个随机数的2种方法,涉及Python基于random生成随机数的常见操作技巧,需要的朋友可以参考下...

    捂汗县长12802020-09-29
  • Python用Python子进程关闭Excel自动化中的弹窗

    用Python子进程关闭Excel自动化中的弹窗

    利用Python进行Excel自动化操作的过程中,尤其是涉及VBA时,可能遇到消息框/弹窗(MsgBox)。...

    Python中文社区15522021-05-07
  • PythonPython元类与迭代器生成器案例详解

    Python元类与迭代器生成器案例详解

    这篇文章主要介绍了Python元类与迭代器生成器案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    Wise-11122021-12-27
  • PythonPython编程使用PyQt5制作动态钟表示例

    Python编程使用PyQt5制作动态钟表示例

    本篇文章将用 Python 同时绘制两种类型的表;一个是上面提到的含有时、分、秒针的钟表(为了方便,下面统称为老式钟表),一个是电子表,最终运行效果文...

    小张Python9712022-01-20
  • Pythonpython3.6环境安装+pip环境配置教程图文详解

    python3.6环境安装+pip环境配置教程图文详解

    这篇文章主要介绍了python3.6环境安装+pip环境配置教程图文详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    hlvy6472021-07-16
  • PythonPython中的异常处理讲解

    Python中的异常处理讲解

    这篇文章介绍了Python中的异常处理,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    springsnow5022023-02-20
  • Pythonpython--字典(dict)和集合(set)详解

    python--字典(dict)和集合(set)详解

    本文通过实例给大家介绍了python中字典和集合的知识小结,非常不错,具有参考借鉴价值,需要的的朋友参考下吧,希望能够给你带来帮助...

    带你去网吧里偷耳机6672022-01-03