首页 > 其他分享 >逻辑回归

逻辑回归

时间:2023-03-16 20:24:36浏览次数:37  
标签:逻辑 回归 alpha np theta self

什么是逻辑回归?

逻辑回归(Logistic Regression)是一种二分类模型,用于将数据分为两个不同的类别。它是一种广泛应用的模型,被用于各种领域,包括医学、金融、营销和社会科学。

在逻辑回归中,我们使用一个函数来将数据映射到一个介于0和1之间的值,这个函数被称为“sigmoid函数”。这个函数具有以下的形式:

\[h_{\theta}(x) = \frac{1}{1+e^{-\theta^T x}} \]

其中\(x\)是输入数据向量,\(\theta\)是一个参数向量,\(h_{\theta}(x)\)是sigmoid函数。

这个函数的作用是将输入数据\(x\)映射到一个介于0和1之间的值,这个值表示\(x\)属于正类的概率。例如,如果\(h_{\theta}(x)=0.8\),那么\(x\)属于正类的概率就是80%。

如何使用逻辑回归?

在使用逻辑回归时,我们需要确定参数向量\(\theta\)的值。这可以通过最大化似然函数来完成。似然函数的定义如下:

\[L(\theta) = \prod_{i=1}^m h_{\theta}(x^{(i)})^{y^{(i)}} (1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} \]

其中\(x^{(i)}\)是第\(i\)个样本的输入向量,\(y^{(i)}\)是第\(i\)个样本的输出(0或1),\(m\)是样本的数量。

我们的目标是找到一个参数向量\(\theta\),使得似然函数\(L(\theta)\)最大化。这个过程可以通过梯度下降算法来实现,梯度下降算法的步骤如下:

一.初始化参数向量\(\theta\)。
二.重复以下步骤,直到收敛为止:
1.计算似然函数的梯度\(\frac{\partial L(\theta)}{\partial \theta}\)。
2.更新参数向量\(\theta\),使得似然函数增加,例如:\(\theta := \theta + \alpha \frac{\partial L(\theta)}{\partial \theta}\),其中\(\alpha\)是学习率。

逻辑回归的Python代码实现

下面是使用Python实现逻辑回归的代码:

import numpy as np

class LogisticRegression:
    def __init__(self, alpha=0.01, num_iterations=100000):
        self.alpha = alpha
        self.num_iterations = num_iterations
    
    def sigmoid(self, z):
        return 1 / (1 + np.exp(-z))
    
    def fit(self, X, y):
        m, n = X.shape
        self.theta = np.zeros((n, 1))
        
        for i in range(self.num_iterations):
            z = np.dot(X, self.theta)
            h = self.sigmoid(z)
            gradient = np.dot(X.T, (h - y)) / m
            self.theta -= self.alpha * gradient
        
    def predict(self, X):
        z = np.dot(X, self.theta)
        h = self.sigmoid(z)
        return np.round(h)

这里我们实现了一个LogisticRegression类,它包含了一个fit方法和一个predict方法。fit方法用于训练模型,predict方法用于预测新的数据。

fit方法中,我们首先初始化参数向量\(\theta\),然后使用梯度下降算法来优化参数。在每次迭代中,我们计算梯度,并使用学习率\(\alpha\)更新参数向量\(\theta\)。

predict方法中,我们首先计算预测概率\(h\),然后将其四舍五入到最接近的整数,得到预测结果。

总的来说

逻辑回归是一种常用的分类算法,具有以下优缺点和应用:

优点:

逻辑回归是一种简单、直观、易于实现的分类算法,特别适用于二分类问题。
可以对概率进行建模,能够输出概率预测结果。
可以进行正则化,避免过拟合。
计算速度较快,适合大规模数据集。

缺点:

只适用于线性可分问题,无法处理非线性决策边界。
对于多分类问题,需要使用一些扩展技术,例如多元逻辑回归或softmax回归。
对于有缺失数据的情况,需要进行数据预处理,例如插值或删除缺失值。
对于异常值和噪声比较敏感,需要进行数据清洗和特征选择。

应用

逻辑回归广泛应用于分类问题,例如信用评估、医疗诊断、风险管理、市场营销等领域。以下是一些具体应用场景:

金融领域:逻辑回归可用于预测贷款违约、信用卡欺诈等风险。
医疗领域:逻辑回归可用于预测疾病风险、诊断疾病等。
市场营销:逻辑回归可用于预测客户购买行为、营销策略优化等。
社交网络:逻辑回归可用于社交网络分析、推荐系统等。
总之,逻辑回归是一种强大而灵活的分类算法,能够应用于各种不同的场景中。但需要注意其优缺点,并在具体应用时进行合理选择和处理。

标签:逻辑,回归,alpha,np,theta,self
From: https://www.cnblogs.com/bertin/p/17224000.html

相关文章

  • 05.深度学习--回归模型
    回归模型回归模型,可以做很多预测模型,比如:一个很好的股票预测系统,我们可以找到一个function,预测的数据可以是选择过去十年的股票数据,根据这些数据我们希望得到的是明天的股......
  • 五、自定义登录逻辑
    ​ 当进行自定义登录逻辑时需要用到之前讲解的UserDetailsService和PasswordEncoder。但是SpringSecurity要求:当进行自定义登录逻辑时容器内必须有PasswordEncoder实例......
  • 五、自定义登录逻辑
    ​ 当进行自定义登录逻辑时需要用到之前讲解的UserDetailsService和PasswordEncoder。但是SpringSecurity要求:当进行自定义登录逻辑时容器内必须有PasswordEncoder实例......
  • 线性回归和时间序列分析北京房价影响因素可视化案例|附代码数据
    全文链接:http://tecdat.cn/?p=21467最近我们被客户要求撰写关于北京房价的研究报告,包括一些图形和统计输出。在本文中,房价有关的数据可能反映了中国近年来的变化目的......
  • 泛型对象的应用:常规业务逻辑模板化,使用通用的父类来定义字段,具体字段由实现类来赋予数
    泛型对象的应用:常规业务逻辑模板化,使用通用的父类来定义字段,具体字段由实现类来赋予数据//DEMO-1publicinterfaceCommonTemplateService<T,F>{publicTbuildCa......
  • 预付款学员关课逻辑
    预付款学员关课逻辑:按产品关课,不考虑科目;如果同一个产品,多个预报名时间,按最新的时间处理;是否可行;因为科目变更后无法定位到报名记录;默认从报名记录表查询,查询不到的......
  • 【2023-03-15】学习逻辑
    23:00我希望,大家都能挣到足够的钱,去旅行,去闲着,去思考世界的过去和未来,去看书做梦,去街角闲逛,让思绪的钓线深深沉入街流之中。              ......
  • 《Spark商业案例与性能调优实战100课》第19课:商业案例之NBA篮球运动员大数据分析核心
    《Spark商业案例与性能调优实战100课》第19课:商业案例之NBA篮球运动员大数据分析核心业务逻辑代码实战......
  • 线性回归
    线性回归1、概念线性回归是最基础的回归模型。观察到x与y的关系(模型选择),y=ax+b,建立线性回归模型。通过优化方法设法拟合数据,得到最优的a,评估该模型是否准确,查看训练集......
  • 逻辑值
    逻辑值有true和false两种,一般在条件判断时使用逻辑值,如当什么表达式的值为真时运行某一语句,而假时不操作或者运行另一语句。如if(A)这种形式,这里的A表示一个逻辑值,1)而......