21-城里人套路深之用python实现逻辑回归算法

如果和一个人交流时,他的思想像弹幕一样飘散在空中,将是怎样的一种景象?我想大概会毫不犹豫的点关闭的。生活为啥不能简单明了?因为太直白了令人乏味。保留一些不确定性反而扑朔迷离,引人入胜。我们学习了线性回归,对于损失函数及权重更新公式理解起来毫无压力,这是具体直白的好处。然而遇到抽象晦涩的逻辑回归,它的损失函数及权重更新公式就经历了从p(取值范围0~1)->p/(1-p)(取值范围0~+oo)->z=log(p/(1-p))(取值范围-oo~+oo)->p=1/1+e^(-z)->极大似然函数->log似然->log似然对于权重求导等一系列诡异而不失合理的变化。第一感觉是套路好深,变幻莫测到难以掌握。然而多看几遍,再给高数一次机会,会发现这些公式并不那么面目可憎。有时困难是在想象中逐渐长大的。

逻辑回归是用于分类的一个强大算法,广泛应用于银行贷款、广告精准投放等领域。关于它的基础知识可以参考:

1、回归XY | 数据江湖:回归五式之第二式(逻辑回归)https://mp.weixin.qq.com/s/MRlH5hdPRYNBem53xQBJNQ

2、零基础掌握极大似然估计

https://mp.weixin.qq.com/s/Zur3PgwtYvVs9ZTOKwTbYg

3、逻辑回归原理及实现(含最大似然函数及权重更新公式推导)

http://www.cnblogs.com/sxron/p/5489214.html

该搬的砖一块都不能少啊,否则有一天,看似巍峨高耸的大楼轰然倒塌,那时,成功学和鸡汤都帮不了你啦……

为了帮助理解,下面首先用代码画出sigmoid函数,也即1/1+e^(-z):

逻辑回归的损失函数可以看作log似然函数加上负号:

损失函数关于Φ(z)的作图代码如下:

下面在Python中实现了逻辑回归算法:

乍见之欢不如久处不厌,希望大家能守住内心的淡泊宁静,在虚无的生命中找到永恒不变的意义。下周学习如何用scikit-learn完成分类任务,敬请期待:)

时间: 2024-11-08 09:53:29

21-城里人套路深之用python实现逻辑回归算法的相关文章

基于Python的函数回归算法验证

看机器学习看到了回归函数,看了一半看不下去了,看到能用方差进行函数回归,又手痒痒了,自己推公式写代码验证: 常见的最小二乘法是一阶函数回归回归方法就是寻找方差的最小值y = kx + bxi, yiy-yi = kxi+b-yi方差为∑(kxi + b - yi )^2f = k^2∑xi^2 + b^2 + ∑yi^2 +2kb∑xi - 2k∑xi*yi - 2yib求极值需要对其求微分,因为是二元函数,因此使用全微分公式,其极值点应该在两个元的偏微分都为0处δf/δk = 2k∑(xi^2

机器学习python实战----逻辑回归

当看到这部分内容的时候我是激动的,因为它终于能跟我之前学习的理论内容联系起来了,这部分内容就是对之前逻辑回归理论部分的代码实现,所以如果有不甚理解的内容可以返回对照着理论部分来理解,下面我们进入主题----logistic regression 一.sigmoid函数 在之前的理论部分我们知道,如果我们需要对某物进行二分类,那么我们希望输出函数的值在区间[0,1],于是我们引入了sigmoid函数.函数的形式为. 曲线图 根据函数表达式,我们可以用代码来表示 def sigmoid(Inx):

用Python实现岭回归算法与Lasso回归算法并处理Iris数据集

在介绍岭回归算法与Lasso回归算法之前,先要回顾一下线性回归算法.根据线性回归模型的参数估计公式可知可知,得到的前提是矩阵可逆.换句话说就是样本各个特征(自变量)之间线性无关.然而在实际问题中,常常会出现特征之间出现多重共线性的情况,使得行列式的值接近于0,最终造成回归系数无解或者无意义. 为了解决这个问题,岭回归算法的方法是在线性回归模型的目标函数之上添加一个l2的正则项,进而使得模型的回归系数有解.具体的岭回归目标函数可表示为如下: 在Python中,岭回归算法的实现方法如下. 在Pyth

机器学习 Python实现逻辑回归

# -*- coding: cp936 -*- from numpy import * def loadDataSet(): dataMat = []; labelMat = [] fr = open('testSet.txt') for line in fr.readlines(): lineArr = line.strip().split() dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])]) labelMat.append

Python之逻辑回归

代码: 1 import numpy as np 2 from sklearn import datasets 3 from sklearn.linear_model import LogisticRegression 4 import matplotlib.pyplot as plt 5 6 __author__ = 'zhen' 7 8 iris = datasets.load_iris() 9 10 for i in range(0, 4): 11 x = iris['data'][:,

Python之逻辑回归模型来预测

建立一个逻辑回归模型来预测一个学生是否被录取. import numpy as np import pandas as pd import matplotlib.pyplot as plt import os path='data'+os.sep+'Logireg_data.txt' pdData=pd.read_csv(path,header=None,names=['Exam1','Exam2','Admitted']) pdData.head() print(pdData.head())

逻辑回归的原理和python实现

输入 鸢尾花卉数据集,数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性. 输出 根据手动实现的逻辑回归模型对鸢尾花卉数据集分类的预测结果. 原理 逻辑回归处理的是分类问题,线性回归处理的是回归问题,这是两者最本质的区别.逻辑回归算法是一种分类算法,适用于标签取值离散的情况. 逻辑回归的模型为: 其中,代表特征向量,代表逻辑函数,一个常用的逻辑函数公式为: 该函数的图像为: 通过公式和图像,我们可以总结下的作用:对于给定的输入变量,根据选择的参数计算输出变量等于1的概率,

用Python开始机器学习(7:逻辑回归分类) --好!!

from : http://blog.csdn.net/lsldd/article/details/41551797 在本系列文章中提到过用Python开始机器学习(3:数据拟合与广义线性回归)中提到过回归算法来进行数值预测.逻辑回归算法本质还是回归,只是其引入了逻辑函数来帮助其分类.实践发现,逻辑回归在文本分类领域表现的也很优秀.现在让我们来一探究竟. 1.逻辑函数 假设数据集有n个独立的特征,x1到xn为样本的n个特征.常规的回归算法的目标是拟合出一个多项式函数,使得预测值与真实值的误差最小

机器学习经典算法详解及Python实现---Logistic回归(LR)分类器

(一)认识Logistic回归(LR)分类器 首先,Logistic回归虽然名字里带"回归",但是它实际上是一种分类方法,主要用于两分类问题,利用Logistic函数(或称为Sigmoid函数),自变量取值范围为(-INF, INF),自变量的取值范围为(0,1),函数形式为: 由于sigmoid函数的定义域是(-INF, +INF),而值域为(0, 1).因此最基本的LR分类器适合于对两分类(类0,类1)目标进行分类.Sigmoid 函数是个很漂亮的"S"形,如下