机器学习模型之逻辑回归

逻辑回归是一种常用的分类算法,尤其适用于二分类问题。逻辑回归的核心思想是通过对数几率函数(logistic function)将线性回归的输出映射到概率空间,从而实现分类。

逻辑回归的原理:

逻辑回归模型使用对数几率函数(logistic function)作为激活函数,将线性回归的输出映射到概率空间。对数几率函数的数学表达式:

其中,P(Y=1∣X)表示给定输入特征X时,数据点属于正类的概率;w是权重向量;b是偏置项;e是自然对数的底数。

逻辑回归模型的损失函数是交叉熵损失(cross-entropy loss),数学表达式为:

其中,N是数据点的数量,是第i个数据点的真实标签,是第i个数据点的预测概率。

逻辑回归模型的参数优化通常采用梯度下降法(Gradient Descent),通过不断迭代更新权重和偏置项,使损失函数最小化。

逻辑回归的应用

逻辑回归在实际应用中有着广泛的应用,包括:

1、信用评分:逻辑回归可以用于评估客户的信用风险,预测客户是否会违约。

2、医学诊断:逻辑回归可以用于医学诊断,例如预测患者是否患有某种疾病。

3、电商推荐:逻辑回归可以用于电商推荐,根据用户的购买历史和浏览行为预测其是否会购买某种商品。

4、市场营销:逻辑回归可以用于预测客户是否会购买某个产品,帮助企业制定营销策略。

代码实现:

python 复制代码
import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

class LogisticRegression:
    def __init__(self, learning_rate=0.01, num_iterations=1000):
        self.learning_rate = learning_rate
        self.num_iterations = num_iterations
        self.weights = None
        self.bias = None

    def fit(self, X, y):
        num_samples, num_features = X.shape
        self.weights = np.zeros(num_features)
        self.bias = 0

        for _ in range(self.num_iterations):
            linear_model = np.dot(X, self.weights) + self.bias
            y_pred = sigmoid(linear_model)

            dw = (1 / num_samples) * np.dot(X.T, (y_pred - y))
            db = (1 / num_samples) * np.sum(y_pred - y)

            self.weights -= self.learning_rate * dw
            self.bias -= self.learning_rate * db

    def predict(self, X):
        linear_model = np.dot(X, self.weights) + self.bias
        y_pred = sigmoid(linear_model)
        y_pred_cls = [1 if i > 0.5 else 0 for i in y_pred]
        return np.array(y_pred_cls)
    
# 假设我们有一些数据X和对应的标签y
X, y = np.random.rand(100, 300), np.random.randint(0, 2, 100)

# 创建并训练逻辑回归模型
model = LogisticRegression()
model.fit(X, y)

# 使用模型进行预测
y_pred = model.predict(X)

这是一个基本的实现,实际应用中可能需要添加更多的功能,如正则化、优化算法选择等。此外,对于多分类问题,可以使用softmax回归(也称为多项逻辑回归)。在实践中,我们通常使用机器学习库(如scikit-learn)来实现逻辑回归,这些库提供了更多的功能并进行了优化。但是,理解上述代码的工作原理对于理解逻辑回归的原理是非常有帮助的。

逻辑回归模型的优点在于简单易懂、计算效率高、可解释性强。在机器学习中,逻辑回归是一种基础组件,可以用于预测事件发生的概率,也可以用于分析单一因素对某一个事件发生的影响因素。

相关推荐
只是甲4 小时前
Text2SQL 系列博客 02:技术原理深度剖析 - 从自然语言到 SQL 的完整链路
人工智能·text2sql·nl2sql·ai agent·自助数据分析·data agent·agentic 数据洞察
懷淰メ4 小时前
【AI赋能】基于PyQt+YOLO+DeepSeek水上漂浮物检测系统(详细介绍)
人工智能·yolo·目标检测·计算机视觉·pyqt·漂浮物·水上漂浮物
EQUINOX14 小时前
【论文精读】| CLIP精读
大数据·人工智能
PC2005-cloud4 小时前
博文已索引但不展示:一次 Bing SEO 问题排查记录
服务器·人工智能
weixin_408099674 小时前
2026 图片去文字 API 实战:AI一键去除图片文字(附 Python / Java / PHP / JS 完整代码)
人工智能·api接口·图片去水印·石榴智能·ai图像修复·图片去文字
幻影123!4 小时前
从零训练一个会下五子棋的AI
python·深度学习·神经网络·强化学习·五子棋·alpha zero·mokugo
greenbbLV4 小时前
2026节日慰问品政策解读:合规标准升级与福利行业新趋势
人工智能·节日
奈斯先生Vector5 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
领麦微红外5 小时前
国产MEMS红外测温传感器:传感器+算法+产品级出厂标定一站式交付模式深度解读
人工智能·硬件工程·产品经理
mingo_敏5 小时前
DeepAgents : 检索(Retrieval)
人工智能·深度学习·langchain