爱企查在线查询做网站如何网站考虑优化

当前位置: 首页 > news >正文

爱企查在线查询,做网站如何网站考虑优化,自己做的手工放在哪个网站卖,oa协同办公系统逻辑回归#xff08;Logistic Regression#xff09; 逻辑回归是一种用于二分类#xff08;binary classification#xff09;问题的统计模型。尽管其名称中有“回归”二字#xff0c;但逻辑回归实际上用于分类任务。它的核心思想是通过将线性回归的输出映射到一个概率值…逻辑回归Logistic Regression 逻辑回归是一种用于二分类binary classification问题的统计模型。尽管其名称中有“回归”二字但逻辑回归实际上用于分类任务。它的核心思想是通过将线性回归的输出映射到一个概率值以进行类别预测。

  1. 模型概述 逻辑回归的基本公式为 P ( y 1 ∣ x ) σ ( z ) 1 1 e − z P(y1|x) \sigma(z) \frac{1}{1 e^{-z}} P(y1∣x)σ(z)1e−z1​ 其中 ( P ( y 1 ∣ x P(y1|x P(y1∣x) ) 是给定特征 ( x x x ) 时因变量 ( y y y ) 等于 1 的概率。( z β 0 z \beta_0 zβ0​ β 1 x 1 \beta_1x_1 β1​x1​ β 2 x 2 \beta_2 x_2 β2​x2​ … \ldots … β n x n \beta_n x_n βn​xn​ ) 是线性组合。( σ ( z ) \sigma(z) σ(z) ) 是 sigmoid 函数将输出值映射到 0 0 0到 1 1 1之间。
  2. Sigmoid 函数 Sigmoid 函数的形状如下 σ ( z ) 1 1 e − z \sigma(z) \frac{1}{1 e^{-z}} σ(z)1e−z1​ 当 ( z z z ) 为负时函数输出接近于 0 0 0当 ( z z z ) 为正时函数输出接近于 1 1 1。这种特性使得 sigmoid 函数非常适合用于概率预测。
  3. 损失函数 逻辑回归的损失函数为交叉熵损失cross-entropy loss用于衡量模型预测与实际标签之间的差异。其公式为 L ( β ) − 1 N ∑ i 1 N [ y i log ⁡ ( y ^ i ) ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] L(\beta) -\frac{1}{N} \sum_{i1}^{N} [y_i \log(\hat{y}_i) (1-y_i) \log(1-\hat{y}_i)] L(β)−N1​i1∑N​[yi​log(y^​i​)(1−yi​)log(1−y^​i​)] 其中 ( N N N ) 是样本数量。( y i y_i yi​ ) 是实际标签。( y ^ i \hat{y}_i y^​i​ ) 是预测概率。 逻辑回归的损失函数求解通常通过 最大似然估计 和 梯度下降 等优化算法进行。逻辑回归模型中常用的损失函数是 交叉熵损失目标是通过最小化损失函数来找到最佳的模型参数。
  4. 逻辑回归中的损失函数 1损失函数 逻辑回归的损失函数基于交叉熵Cross-Entropy Loss用于衡量模型预测的概率分布与实际标签之间的差异。对于二分类问题其形式为 L ( β ) − 1 N ∑ i 1 N [ y i log ⁡ ( y ^ i ) ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] L(\beta) - \frac{1}{N} \sum_{i1}^{N} \left[ y_i \log(\hat{y}_i) (1 - y_i) \log(1 - \hat{y}_i) \right] L(β)−N1​i1∑N​[yi​log(y^​i​)(1−yi​)log(1−y^​i​)] 其中 ( N N N ) 是样本数量。( y i y_i yi​ ) 是第 ( i i i ) 个样本的真实标签 0 0 0 或 1 1 1。( y ^ i σ ( z i ) \hat{y}_i \sigma(z_i) y^​i​σ(zi​) ) 是第 ( i i i ) 个样本的预测概率。( z i β 0 β 1 x i 1 β 2 x i 2 ⋯ β n x i n z_i \beta_0 \beta1 x{i1} \beta2 x{i2} \dots \betan x{in} zi​β0​β1​xi1​β2​xi2​⋯βn​xin​ ) 是线性组合。( σ ( z ) \sigma(z) σ(z) ) 是 sigmoid 函数定义为 σ ( z ) 1 1 e − z \sigma(z) \frac{1}{1 e^{-z}} σ(z)1e−z1​ 这将线性回归的输出 ( z z z ) 映射到 ( ( 0 0 0, 1 1 1) ) 之间作为类别为 1 1 1 的预测概率。 2如何求解损失函数 求解逻辑回归的损失函数通常使用 梯度下降 等优化方法。目标是找到使损失函数最小的参数 ( β \beta β )即 最小化交叉熵损失。求解过程可以概括为以下步骤 ** 计算梯度** 为了最小化损失函数我们需要对每个参数 ( β j \beta_j βj​) 计算损失函数的偏导数即梯度并通过优化算法如梯度下降进行更新。 对于交叉熵损失函数梯度计算公式为 ∂ L ∂ β j − 1 N ∑ i 1 N ( y i − y ^ i ) x i j \frac{\partial L}{\partial \betaj} -\frac{1}{N} \sum{i1}^{N} (y_i - \hat{y}i) x{ij} ∂βj​∂L​−N1​i1∑N​(yi​−y^​i​)xij​ 其中 ( x i j x_{ij} xij​ ) 是第 ( i i i ) 个样本的第 ( j j j ) 个特征。( y i y_i yi​ ) 是第 ( i i i ) 个样本的实际标签。( y ^ i \hat{y}_i y^​i​) 是第 ( i i i ) 个样本的预测概率。 使用梯度下降更新参数 梯度下降法通过以下公式迭代更新参数 β j β j − α ∂ L ∂ β j \beta_j \beta_j - \alpha \frac{\partial L}{\partial \beta_j} βj​βj​−α∂βj​∂L​ 其中 ( α \alpha α ) 是学习率控制每次更新步长的大小。( ∂ L ∂ β j \frac{\partial L}{\partial \beta_j} ∂βj​∂L​ ) 是损失函数对参数 ( β j \beta_j βj​ ) 的梯度。 通过不断更新参数使得损失函数逐渐减小直到达到全局或局部最优解。 3 代码示例逻辑回归中的梯度下降 以下是使用 Python 实现逻辑回归梯度下降的示例 import numpy as np# Sigmoid 函数 def sigmoid(z):return 1 / (1 np.exp(-z))# 损失函数 (交叉熵) def compute_loss(y, y_pred):return -np.mean(y * np.log(y_pred) (1 - y) * np.log(1 - y_pred))# 梯度下降算法 def gradient_descent(X, y, learning_rate0.1, num_iterations1000):m, n X.shapebeta np.zeros(n) # 初始化参数for i in range(num_iterations):z np.dot(X, beta)y_pred sigmoid(z)gradients np.dot(X.T, (y_pred - y)) / mbeta - learning_rate * gradientsif i % 100 0:loss compute_loss(y, y_pred)print(fIteration {i}: Loss {loss})return beta# 示例数据 X np.array([[1, 2], [1, 3], [2, 2], [2, 3]]) # 样本数据 y np.array([0, 0, 1, 1]) # 标签数据# 在样本数据前面加一列 1 用于偏置项 (截距项) Xbias np.c[np.ones(X.shape[0]), X]# 运行梯度下降求解参数 beta gradient_descent(X_bias, y) print(求解得到的参数:, beta)4. 优缺点 优点 简单易懂逻辑回归模型简单易于实现和解释。概率输出模型输出的是预测的概率可以用于更细致的决策。适用于线性可分问题在特征与目标变量之间存在线性关系时表现良好。 缺点 线性假设假设特征与目标之间存在线性关系不适用于复杂的非线性关系。辑回归假设特征和类别之间的关系是线性的对于复杂非线性问题表现不如其他模型如决策树、神经网络。受特征选择影响模型对输入特征敏感需要合适的特征选择和处理。容易过拟合在特征数量较多时可能会发生过拟合特别是当样本量不足时。无法解决多分类问题标准的逻辑回归只适用于二分类问题若要应用于多分类问题需要使用 Softmax 回归或一对多策略。
  5. 代码示例 以下是使用 Python 的 scikit-learn 库实现逻辑回归的示例 import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, confusion_matrix, classification_report# 生成示例数据 X, y make_classification(n_samples100, n_features2, n_classes2, n_informative2, n_redundant0, random_state42)# 拆分数据集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 创建逻辑回归模型 model LogisticRegression() model.fit(X_train, y_train)# 进行预测 y_pred model.predict(X_test)# 评估模型 accuracy accuracy_score(y_test, y_pred) conf_matrix confusion_matrix(y_test, y_pred) class_report classification_report(y_test, y_pred)print(准确率:, accuracy) print(混淆矩阵:\n, conf_matrix) print(分类报告:\n, class_report)# 绘制决策边界 plt.scatter(X[:, 0], X[:, 1], cy, cmapcoolwarm, edgecolorsk) xlim plt.gca().get_xlim() ylim plt.gca().getylim()xx, yy np.meshgrid(np.linspace(xlim[0], xlim[1], 100), np.linspace(ylim[0], ylim[1], 100)) Z model.predict(np.c[xx.ravel(), yy.ravel()]) Z Z.reshape(xx.shape)plt.contourf(xx, yy, Z, alpha0.3, cmapcoolwarm) plt.title(逻辑回归决策边界) plt.xlabel(特征1) plt.ylabel(特征2) plt.show()结果 6. 总结 逻辑回归是一种简单而有效的分类模型适合于解决二分类问题。尽管它有一些局限性如线性假设但在许多实际应用中逻辑回归因其易于解释和实现而被广泛使用。通过合适的特征选择和数据处理逻辑回归能够在很多情况下提供可靠的分类结果。