逻辑斯蒂(logistic)回归学习+手撕代码

Logistic回归

最近面试的朋友有被要求现场手写logistic模型,再加上本身有些厂面试爱手撕logistic公式,再加上有些面试会让你介绍一个自己最熟悉的机器学习模型,我寻思这会了一个logistic不就齐活了,话不多说,直接开整!
逻辑回归被广泛应用于估算某个实例属于某个特定类别的概率
1.公式推导(不想编辑公式就手写了友友们):
在这里插入图片描述
使用梯度下降的方向作为参数θ更新的方向,一般在训练时会设置学习率α作为学习的步长,参数更新的公式即为:
θi+1 = θi - α*(y_pre - y)·x

2.逻辑回归的优缺点:
优点:
1)实现简单,计算量小
2)概率推导得到,理论可靠
3)值域为[0,1],具有概率意义
4)参数代表每个特征对输出的影响,可解释性强
缺点:
1)容易欠拟合,一般准确度不是特别高
2)本质来说是一个线性分类器,对于线性不可分的问题处理的不好
3)特征空间很大的时候,性能不好

3.比较
1)与线性回归的比较:
线性回归的目标变量是连续变量,逻辑回归是类别型变量
线性回归模型的目标变量和自变量之间的关系假设是线性相关的,逻辑回归中则是非线性的
线性回归通常基于正态分布,逻辑回归则是基于二项分布或者多项分布
线性回归的参数估计使用最小二乘,逻辑回归使用最大似然
2)与朴素贝叶斯的比较:
朴素贝叶斯则是直接求出权重,逻辑回归是通过loss最优化求出分类概率
朴素贝叶斯基于条件独立假设,逻辑回归没有这个假设
朴素贝叶斯是生成模型,逻辑回归是判别模型
3)与SVM比较
SVM只输出类别,逻辑回归输出概率
二者的损失函数不同
逻辑回归的可解释性强
SVM自带有约束的正则化

4.代码
代码是找的本站其他帖子手撕的代码做了一些注释和一点点修改参考如下:

from math import exp
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split


# data
def create_data():
    #导入sklearn自带的鸢尾花的数据集
    iris = load_iris()
    X, y = np.array(iris.data), np.array(iris.target)
    #print(X.shape)#可以查看数据的shape
    #只选取前两种特征和前100个样品进行回归演示
    return X[:100
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值