【机器学习】线性回归与逻辑回归的极致解析:从数学理论到实战案例

article/2025/8/14 20:59:39

文章目录

  • 1. 引言
      • Python 代码示例
  • 2. 线性回归
    • 2.1 线性回归的基本概念
      • 线性回归的定义
      • 数学表达式及模型假设
    • 2.2 线性回归的工作原理
        • 最小二乘法(Ordinary Least Squares, OLS)
        • 梯度下降法在线性回归中的应用
        • 多元线性回归与一元线性回归的区别与联系
    • 2.3 线性回归的优缺点
    • 2.4 实例与代码实现
  • 3. 逻辑回归
    • 3.1 逻辑回归的基本概念
    • 3.2 逻辑回归的工作原理
    • 3.3 逻辑回归的优缺点
    • 3.4 实例与代码实现
  • 4. 线性回归与逻辑回归的比较
    • 4.1 模型本质的差异
    • 4.2 应用场景的差异
  • 5. 实际应用与常见问题
    • 5.1 模型评估
      • 1. 评估线性回归模型的性能
      • 2. 评估逻辑回归模型的性能
      • 3. 过拟合与欠拟合
    • 5.2 常见问题与调优技巧
  • 6. 总结
  • 7. 参考资料

AI3.png

1. 引言

  • 在当今数据驱动的世界中,机器学习已经成为推动技术进步的重要引擎。无论是在医疗诊断、金融分析、图像识别,还是自然语言处理等领域,机器学习算法都扮演着至关重要的角色。其中,分类与回归任务是机器学习中的两个核心问题,它们分别用于解决二分类、多分类问题以及连续变量预测问题。对于初学者和从业者而言,深入理解这些基础算法,不仅有助于掌握更复杂的模型和技术,也能够在实际项目中灵活应用这些算法。
  • 线性回归逻辑回归是机器学习中最经典的两种算法,它们在各自的领域中占据着举足轻重的地位。线性回归主要用于预测连续的数值输出,而逻辑回归则用于解决二元分类问题。尽管它们在处理问题的类型上有所不同,但这两种算法都依赖于数据特征和模型之间的线性关系。通过掌握这两种算法,读者不仅可以理解回归与分类的基本概念,还可以掌握如何在实际场景中进行模型的训练、评估与优化。
  • 本文将从基本概念入手,系统地介绍线性回归和逻辑回归的工作原理、数学推导、优缺点,并通过实例与代码实现展示它们的应用。同时,本文还将探讨如何在不同的应用场景中选择合适的算法,并对常见问题和调优技巧进行详细说明。通过对这些内容的学习,读者将能够在实际项目中更好地应用线性回归和逻辑回归,从而提升机器学习模型的性能与实用性。

Python 代码示例

在本文的示例部分,将使用Python语言来实现线性回归与逻辑回归的具体算法。Python作为当前最流行的数据科学与机器学习编程语言,提供了丰富的库与工具,可以简化模型的构建与调试过程。下文中的代码示例将使用以下几个关键库:

  • NumPy: 用于数值计算,处理矩阵和数组运算。
  • Pandas: 用于数据处理与分析,特别是数据的加载与预处理。
  • Scikit-Learn: 机器学习库,提供了丰富的算法与评估工具。
  • MatplotlibSeaborn: 用于数据的可视化,帮助理解模型的表现。

通过实际的代码实现,读者将能够更直观地理解线性回归和逻辑回归的核心思想,并掌握如何在真实数据上应用这些算法。
AI5.4.png

2. 线性回归

2.1 线性回归的基本概念

线性回归的定义

线性回归是一种统计方法,用于研究因变量(目标变量)与一个或多个自变量(特征变量)之间的线性关系。通过拟合一条直线,线性回归模型试图找到最优的线性函数,使得预测值与实际观测值之间的误差最小。这条拟合的直线被称为“回归线”。
简单线性回归(Simple Linear Regression)是指只有一个自变量的情况,而多元线性回归(Multiple Linear Regression)则涉及多个自变量。无论是简单还是多元,线性回归的目标都是找到一个线性模型,即:
y ​ = β 0 ​ + β 1 ​ x 1 ​ + β 2 ​ x 2 ​ + ⋯ + β n ​ x n ​ y ^ ​ =β 0 ​ +β 1 ​ x 1 ​ +β 2 ​ x 2 ​ +⋯+β n ​ x n ​ y=β0​+β1​x1​+β2​x2​++βnxn
其中:
image.png

数学表达式及模型假设

在线性回归中,模型假设非常关键,它决定了线性回归的适用范围及其效果:

  1. 线性假设:自变量和因变量之间必须存在线性关系。即,因变量可以通过自变量的线性组合来表示。
  2. 独立性假设:观测值之间相互独立。尤其是对于时间序列数据,独立性假设尤为重要。
  3. 同方差性假设(Homoscedasticity):自变量的不同值对应的因变量的误差项具有相同的方差。这意味着残差的分布不应该随着自变量的变化而变化。
  4. 正态性假设:残差项应该服从正态分布,尤其是在构建置信区间和进行显著性检验时,这一假设尤为重要。

2.2 线性回归的工作原理

最小二乘法(Ordinary Least Squares, OLS)

最小二乘法是线性回归的核心算法之一,它的目标是通过最小化观测值与回归线之间的误差平方和来找到最佳拟合线。这些误差平方和称为残差(Residuals)。数学上,可以通过下式描述:
image.png
以下是Python中使用numpy库实现最小二乘法的简单示例:

import numpy as np# 生成样本数据
X = np.array([1, 2, 3, 4, 5])  # 自变量
y = np.array([2, 4, 5, 4, 5])  # 因变量# 添加截距项
X_b = np.c_[np.ones((X.shape[0], 1)), X]# 正规方程计算参数
theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)# 打印结果
print(f"截距项 (β0): {theta_best[0]}")
print(f"斜率 (β1): {theta_best[1]}")

梯度下降法在线性回归中的应用

梯度下降法是一种迭代优化算法,它通过沿着损失函数的梯度方向更新参数,以最小化目标函数。在线性回归中,梯度下降用于优化模型参数,目标是最小化残差平方和。
image.png
Python实现梯度下降法的简单示例:

def gradient_descent(X, y, theta, learning_rate=0.01, iterations=1000):m = len(y)for i in range(iterations):gradients = 2/m * X.T.dot(X.dot(theta) - y)theta = theta - learning_rate * gradientsreturn theta# 初始化参数
theta = np.random.randn(2, 1)# 应用梯度下降法
theta_best = gradient_descent(X_b, y, theta)# 打印结果
print(f"截距项 (β0): {theta_best[0]}")
print(f"斜率 (β1): {theta_best[1]}")

多元线性回归与一元线性回归的区别与联系

一元线性回归是线性回归的简化形式,只有一个自变量,而多元线性回归则扩展到多个自变量。尽管模型的复杂度不同,但它们遵循相同的基本原理。多元线性回归的目标是找到一个多维平面,而不是一条直线,以拟合数据。
image.png
这两者的主要区别在于维度的不同,但都通过最小化残差平方和来优化模型参数。

2.3 线性回归的优缺点

线性回归的优势

  • 简单: 线性回归的原理非常直观,通过简单的线性关系来描述变量之间的关联。
  • 高效: 由于其线性的特点,线性回归计算速度快,适用于大规模数据集。
  • 解释性强: 线性回归模型的系数可以清晰地解释每个特征对结果的影响,便于理解和解读。

线性回归的局限性

  • 无法处理非线性关系: 线性回归假设变量之间存在线性关系,无法有效建模非线性关系。
  • 对异常值敏感: 线性回归对数据中的异常值(outliers)非常敏感,异常值可能会对回归线造成较大影响。
  • 假设较强: 线性回归模型依赖于独立性、同方差性等假设,一旦假设不成立,模型效果可能会大打折扣。

2.4 实例与代码实现

案例描述: 假设我们要预测房价,给定一组历史数据,包括房屋面积、卧室数量、楼层等特征,使用线性回归模型来预测房价。
Python代码实现:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt# 假设我们有一个简单的房价数据集
data = {'Area': [1500, 1600, 1700, 1800, 1900, 2000],'Bedrooms': [3, 3, 3, 4, 4, 4],'Price': [300000, 320000, 340000, 360000, 380000, 400000]
}# 将数据转换为DataFrame
df = pd.DataFrame(data)# 特征与目标变量
X = df[['Area', 'Bedrooms']]
y = df['Price']# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化线性回归模型
model = LinearRegression()# 训练模型
model.fit(X_train, y_train)# 预测房价
y_pred = model.predict(X_test)# 输出均方误差
mse = mean_squared_error(y_test, y_pred)
print(f"Mean Squared Error: {mse}")# 绘制真实房价与预测房价的对比图
plt.scatter(y_test, y_pred)
plt.xlabel("Actual Prices")
plt.ylabel("Predicted Prices")
plt.title("Actual Prices vs Predicted Prices")
plt.show()# 显示模型的系数和截距
print(f"Coefficients: {model.coef_}")
print(f"Intercept: {model.intercept_}")

代码解释:

  1. 数据加载与准备:
    • 使用一个简单的数据集,包括房屋的面积和卧室数量作为特征,房价作为目标变量。
    • 数据集被分割为训练集和测试集,用于模型训练和评估。
  2. 模型训练:
    • 使用 LinearRegression 类初始化线性回归模型,并通过 fit 方法在训练集上进行模型训练。
  3. 模型评估:
    • 使用测试集对模型进行预测,并计算均方误差(MSE),作为模型性能的评价指标。
    • 通过绘图对比实际房价与预测房价,直观展示模型的预测效果。
  4. 模型系数与截距:
    • 输出模型的系数和截距,便于分析每个特征对房价的影响。

结果分析:

  • 通过对比实际房价和预测房价,可以观察模型的预测效果。如果误差较大,可能需要考虑增加特征或者使用更复杂的模型(如多项式回归或非线性回归)。

AI5.1.png

3. 逻辑回归

3.1 逻辑回归的基本概念

逻辑回归的定义:
逻辑回归(Logistic Regression)是一种用于处理二元分类问题的线性模型。与线性回归不同,逻辑回归的输出值是一个概率值,用来表示某个数据点属于某个类别的概率。逻辑回归通过拟合一条S型曲线(Sigmoid函数)来将预测值限制在0到1之间。
数学表达式:
image.png
模型假设:
image.png

3.2 逻辑回归的工作原理

逻辑回归的推导及损失函数:
image.png
扩展至多分类问题的逻辑回归:
对于多分类问题(如有三个或更多类别),逻辑回归可以扩展为Softmax回归。Softmax回归通过一个归一化的指数函数来输出每个类别的概率。Softmax函数的数学表达式如下:
image.png

其中 K K K是类别的数量, ( β j ) ( \mathbf{\beta}_j ) (βj) 是类别 j )的参数向量。

3.3 逻辑回归的优缺点

逻辑回归的优势:

  • 易于实现: 逻辑回归的计算复杂度较低,实现简单。
  • 对线性关系有良好拟合: 在特征与输出之间存在线性关系时,逻辑回归能够很好地拟合数据。
  • 概率输出: 逻辑回归输出的概率值便于解释模型的预测结果,并可以为决策提供依据。

逻辑回归的局限性:

  • 假设线性可分性: 逻辑回归假设数据是线性可分的,无法处理复杂的非线性关系。
  • 对异常值敏感: 与线性回归类似,逻辑回归对异常值较为敏感,异常数据可能会影响模型的性能。

3.4 实例与代码实现

案例描述: 假设我们有一个关于某种疾病的数据集,其中包括患者的年龄、血压、体重等特征,以及是否患病的标签。我们可以使用逻辑回归模型来预测新患者是否患有这种疾病。
Python代码实现:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, roc_auc_score, roc_curve
import matplotlib.pyplot as plt# 假设我们有一个疾病诊断数据集
data = {'Age': [25, 30, 45, 50, 35, 40, 60, 55],'BloodPressure': [120, 130, 135, 140, 125, 128, 150, 145],'Weight': [70, 80, 75, 85, 78, 82, 90, 88],'HasDisease': [0, 0, 1, 1, 0, 1, 1, 1]
}# 将数据转换为DataFrame
df = pd.DataFrame(data)# 特征与目标变量
X = df[['Age', 'BloodPressure', 'Weight']]
y = df['HasDisease']# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化逻辑回归模型
model = LogisticRegression()# 训练模型
model.fit(X_train, y_train)# 预测疾病发生概率
y_pred = model.predict(X_test)
y_pred_proba = model.predict_proba(X_test)[:, 1]# 输出准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")# 输出混淆矩阵
conf_matrix = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:")
print(conf_matrix)# 绘制ROC曲线
fpr, tpr, thresholds = roc_curve(y_test, y_pred_proba)
roc_auc = roc_auc_score(y_test, y_pred_proba)
plt.plot(fpr, tpr, label=f'ROC curve (area = {roc_auc:.2f})')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve')
plt.legend(loc='lower right')
plt.show()

代码解释:

  1. 数据加载与准备:
    • 使用一个简单的数据集,包括患者的年龄、血压和体重作为特征,以及是否患病的标签。
    • 数据集被分割为训练集和测试集,用于模型训练和评估。
  2. 模型训练:
    • 使用 LogisticRegression 类初始化逻辑回归模型,并通过 fit 方法在训练集上进行模型训练。
  3. 模型评估:
    • 通过准确率(Accuracy)和混淆矩阵(Confusion Matrix)来评估模型的性能。
    • 使用ROC曲线和AUC值来评估模型在分类任务中的表现。
  4. 结果分析:
    • 通过ROC曲线和AUC值,可以判断模型在不同阈值下的表现,帮助选择合适的决策阈值。
    • 通过混淆矩阵,可以分析模型在分类过程中所犯的错误类型(如假阳性和假阴性)。

4. 线性回归与逻辑回归的比较

在这部分内容中,我们将详细探讨线性回归和逻辑回归之间的本质差异以及它们在不同应用场景中的使用情况。我们还将通过案例分析来说明何时使用线性回归,何时使用逻辑回归。

4.1 模型本质的差异

线性回归逻辑回归虽然名字相似,但它们解决的问题、数学形式以及假设都有显著的不同。
1. 线性回归用于预测连续变量
线性回归是一种用于预测连续变量的模型。它通过拟合一条直线来预测一个连续的数值输出。线性回归的数学模型可以用以下形式表示:
y ^ = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n \hat{y} = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots + \beta_n x_n y^=β0+β1x1+β2x2++βnxn
其中, y ^ \hat{y} y^ 是预测值, β 0 \beta_0 β0 是截距, β 1 , β 2 , … , β n \beta_1, \beta_2, \dots, \beta_n β1,β2,,βn 是特征对应的权重(回归系数),而 x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,,xn 是输入特征。


2. 逻辑回归用于分类任务
与线性回归不同,逻辑回归是一种用于解决分类问题的模型,尤其是二元分类问题(即输出只有两个可能的类别)。逻辑回归通过拟合一个S型曲线(Sigmoid函数)来估计一个事件发生的概率。逻辑回归的数学表达式如下:
P ( y = 1 ∣ x ) = σ ( β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n ) P(y=1|x) = \sigma(\beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots + \beta_n x_n) P(y=1∣x)=σ(β0+β1x1+β2x2++βnxn)
其中, P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x) 是事件发生的概率, σ ( z ) \sigma(z) σ(z) 是Sigmoid函数,定义为:
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1


3. 模型的数学形式与假设对比
线性回归假设预测变量和响应变量之间存在线性关系,这意味着数据可以被一条直线很好地拟合。而逻辑回归则假设输入特征与输出的对数几率(log-odds)之间存在线性关系。
线性回归假设模型中的误差项是独立同分布的,并且服从正态分布(高斯分布),而逻辑回归则假设样本的独立性,但并不要求误差项服从正态分布。

4.2 应用场景的差异

线性回归和逻辑回归在应用场景上有明显的区别。我们需要根据问题的性质来选择合适的模型。
1. 线性回归适用于预测任务
线性回归适用于那些目标变量是连续数值的问题,比如房价预测、股票价格预测等。例如,假设你想根据房屋的面积、卧室数量、位置等特征来预测房屋的售价,这就是一个典型的线性回归问题。
2. 逻辑回归适用于分类任务
逻辑回归则适用于分类任务,特别是二分类问题,例如垃圾邮件检测(判断一封邮件是否是垃圾邮件)、疾病诊断(判断病人是否患有某种疾病)等。例如,假设你要根据病人的年龄、血压、胆固醇水平等特征来预测他是否患有心脏病,这就是一个典型的逻辑回归问题。
3. 案例分析:何时使用线性回归、何时使用逻辑回归

  • 线性回归案例:假设你在研究如何通过气温、湿度等气象参数来预测某一天的电力消耗量。这里电力消耗量是一个连续变量,适合使用线性回归模型。
  • 逻辑回归案例:假设你要根据一系列特征(如客户年龄、收入、过往购买记录等)预测某客户是否会购买某商品。这是一个二分类问题(购买或不购买),逻辑回归是更合适的选择。

线性回归适用于解决“预测”的问题,即对连续变量的预测;逻辑回归则适用于解决“分类”的问题,尤其是二分类问题。掌握这两种模型的本质差异与应用场景,可以帮助我们在实际工作中做出更加合理的模型选择。

5. 实际应用与常见问题

5.1 模型评估

1. 评估线性回归模型的性能

  • 决定系数(R²)
    决定系数 R 2 R^2 R2 是衡量线性回归模型拟合优度的常用指标。它表示模型对数据变异的解释程度,值的范围为0到1。 的值越接近1,模型的解释能力越强。其计算公式为:

    R 2 = 1 − RSS TSS R^2 = 1 - \frac{\text{RSS}}{\text{TSS}} R2=1TSSRSS

其中,RSS 是残差平方和,TSS 是总平方和。残差平方和是实际值与预测值之间差异的平方和,总平方和是实际值与均值之间差异的平方和。

- 均方误差(MSE)
均方误差是预测值与实际值之差的平方的平均值,公式为:
MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2
其中, y i y_i yi 是实际值, y ^ i \hat{y}_i y^i 是预测值, n n n 是样本数量。MSE 值越小,模型的预测性能越好。

2. 评估逻辑回归模型的性能

  • 混淆矩阵混淆矩阵是一种可视化分类模型性能的工具,用于展示分类结果的实际类别和预测类别之间的关系。其结构为:

                      预测为正类	               预测为负类
    

    实际为正类 True Positives (TP) False Negatives (FN)
    实际为负类 False Positives (FP) True Negatives (TN)

  • 从混淆矩阵中可以计算出各种评估指标,如准确率、精确率、召回率和F1-score。

  • ROC曲线与AUCROC(Receiver Operating Characteristic)曲线绘制了假阳性率(False Positive Rate, FPR)与真正率(True Positive Rate, TPR)的关系。AUC(Area Under the Curve)表示ROC曲线下的面积,用于衡量模型的整体表现。AUC值越接近1,模型性能越好。ROC曲线的公式如下:

    FPR = FP FP + TN \text{FPR} = \frac{\text{FP}}{\text{FP} + \text{TN}} FPR=FP+TNFP
    TPR = TP TP + FN \text{TPR} = \frac{\text{TP}}{\text{TP} + \text{FN}} TPR=TP+FNTP

3. 过拟合与欠拟合

  • 过拟合过拟合发生在模型过于复杂,能够很好地拟合训练数据,但在新数据上的表现差。检测方法包括:

解决方法

  • 在训练集和验证集上计算误差,验证集误差显著高于训练集误差通常表示过拟合。
  • 使用交叉验证来评估模型的泛化能力。
  • 使用更简单的模型。
  • 增加数据量。
  • 使用正则化技术(如L1、L2正则化)。
  • 欠拟合欠拟合发生在模型过于简单,无法捕捉数据的复杂性。检测方法包括:

解决方法

  • 模型在训练集和验证集上均表现不佳。
  • 残差图显示模型无法捕捉数据中的模式。
  • 使用更复杂的模型。
  • 增加特征或进行特征工程。
  • 减少数据的噪声或错误。

5.2 常见问题与调优技巧

1. 数据预处理对模型的影响

  • 归一化(Normalization):将特征缩放到相同的范围(如0到1),可以加快梯度下降法的收敛速度,提高模型性能。常用的归一化方法有Min-Max归一化。
from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()
X_normalized = scaler.fit_transform(X)
  • 标准化(Standardization):将特征转换为均值为0、标准差为1的分布,适用于数据具有不同均值和方差的情况。常用的标准化方法有Z-score标准化。
from sklearn.preprocessing import StandardScalerscaler = StandardScaler()
X_standardized = scaler.fit_transform(X)

2. 特征选择与特征工程

  • 特征选择:选择对模型训练最有帮助的特征,减少特征的数量,可以提高模型的性能并减少计算成本。常用方法包括递归特征消除(RFE)、L1正则化等。
  • 特征工程:从原始数据中创建新特征,以提高模型的性能。包括特征构造、特征提取、特征选择等。

3. 正则化方法的应用

  • L1正则化(Lasso回归):通过在损失函数中添加特征的绝对值和作为正则化项,促使部分特征的系数为零,从而进行特征选择。
from sklearn.linear_model import Lassomodel = Lasso(alpha=0.1)
model.fit(X_train, y_train)
  • L2正则化(Ridge回归):通过在损失函数中添加特征的平方和作为正则化项,避免模型过于复杂,并减小系数的幅度。
from sklearn.linear_model import Ridgemodel = Ridge(alpha=0.1)
model.fit(X_train, y_train)

正则化技术有助于减少模型的复杂性,从而避免过拟合。
通过上述内容,我们可以看到在实际应用中,模型的评估、数据预处理、特征工程和正则化都是至关重要的。正确的评估方法可以帮助我们了解模型的性能,适当的数据预处理和特征工程可以提高模型的表现,而正则化则帮助我们控制模型的复杂度。

6. 总结

  • 在这篇博客中,我们详细探讨了线性回归和逻辑回归这两种基础的机器学习算法。我们首先介绍了线性回归的基本概念和工作原理,包括其数学表达式、最小二乘法的推导以及梯度下降法的应用。通过示例代码,我们展示了如何使用Python实现线性回归模型,并对其优缺点进行了分析。
  • 接着,我们深入讨论了逻辑回归,涵盖了其定义、数学表达式、模型假设及其与线性回归的区别。我们还解释了逻辑回归的工作原理,包括损失函数的推导及梯度下降法的应用。此外,我们探讨了逻辑回归的优缺点,并通过示例代码演示了如何实现逻辑回归模型。
  • 在比较线性回归和逻辑回归的部分,我们分析了它们在预测连续变量和分类任务中的应用场景,并讨论了它们各自的优劣。最后,我们总结了实际应用中的常见问题,如模型评估、数据预处理、特征选择及正则化方法,并提供了实用的调优技巧。
  • 理解并掌握线性回归与逻辑回归这两种基础算法对于进入机器学习领域至关重要。它们不仅是许多高级机器学习模型的基础,而且在实际应用中也广泛用于预测和分类任务。通过不断学习和实践,读者可以更好地利用这些技术解决复杂的实际问题。

7. 参考资料

以下是本篇博客中提到的参考资料,包括文献、书籍和博客链接,这些资源可以帮助读者进一步深入理解线性回归和逻辑回归算法:

  1. 文献
    • J. Han, M. Kamber, and J. Pei, Data Mining: Concepts and Techniques. Morgan Kaufmann Publishers, 2011.
    • C. M. Bishop, Pattern Recognition and Machine Learning. Springer, 2006.
    • T. M. Mitchell, Machine Learning. McGraw-Hill, 1997.
  2. 书籍
    • Géron, A. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. O’Reilly Media.
    • Ng, A. (2020). Machine Learning Yearning: Technical Strategy for AI Engineers, In the Era of Deep Learning. Self-published.
  3. 博客
    • Towards Data Science: A Comprehensive Guide to Linear Regression
    • Machine Learning Mastery: Logistic Regression for Machine Learning
    • Kaggle: A Comprehensive Introduction to Different Types of Regression
  4. 在线课程
    • Coursera: Machine Learning by Andrew Ng
    • edX: Introduction to Machine Learning with Python

这些资源将帮助您更好地理解和应用线性回归和逻辑回归技术,并为进一步学习机器学习领域的高级主题奠定基础。

07c03ae6d77b4b153f6d1ec710be7c14_7a80245f0b5f4021a033b3789a9efdeb.png

  1. 📜 [ 声明 ] 由于作者水平有限,本文有错误和不准确之处在所难免,
  2. 本人也很想知道这些错误,恳望读者批评指正!
  3. 我是:勇敢滴勇~感谢大家的支持!


http://www.hkcw.cn/article/tnGrSATOXC.shtml

相关文章

机器学习-聚类分析算法

一、聚类分析的定义 聚类分析是一种无监督学习的统计分析方法。它的主要目的是将一个数据集中的样本(或观测值)按照某种相似性或距离度量划分成若干个类别(簇)。在聚类过程中,同一个簇内的样本具有较高的相似性&#…

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 (简单) 2.字母异位词分组 (中等) 3.最长连续序列 (中等) 二、双指针部分 4.移动零 (简单) 5.盛最多水的容器 (中等) 6. 三数之和 (中等) 7.接雨水 (困难) 三、滑动窗口 8.无重复字符的最长子串 (中等) 9.找到字符串中…

人脸识别-特征算法

文章目录 一、LBPH算法1.基本原理2.实现步骤3.代码实现 二、Eigenfaces算法1.特点2.代码实习 三、FisherFaces算法1.算法原理2.算法特点3.代码实现 四、总结 人脸识别特征识别器是数字信息发展中的一种生物特征识别技术,其核心在于通过特定的算法和技术手段&#xf…

【数据结构】排序算法---计数排序(动图演示)

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaGo 结语 1. 定义 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。计数排序不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组…

【优选算法 | 哈希表】常见算法题的哈希表套路拆解

算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟链表 在刷题的过程中,我们会频繁遇到一些“高频套路”——而哈希表正是其中最常用也最高效的工具之一。它能帮助我们在 O(1) 的时间复杂度内完成查找、插入与…

数据结构《排序》

在之前数据结构之算法复杂度章节中我们学习了复杂度相关的概念,这就使得懂得如何来区分算法的好坏,在之前C语言专题中在指针的学习时我们了解了冒泡排序,之后再数据结构的二叉树章节中我们又学习了堆排序,其实排序不止这两种&…

TSP-旅行商问题(基于动态规划或蚁群算法求解)

1. TSP问题 旅行商问题(Travelling salesman problem, TSP)是运筹学和理论计算机科学中经典的问题.具体问题如下:给定一系列城市和每对城市之间的距离,求解访问每座城市一次并回到起始城市的最短回路. 2. 动态规划 本节参考旅行商问题(动态规划) 2.1 理论介绍 假设节点数…

【算法与数据结构】深入解析二叉树(二)之堆结构实现

文章目录 📝二叉树的顺序结构及实现🌠 二叉树的顺序结构🌠 堆的实现🌠 堆的实现🌉堆向下调整算法🌉堆的创建🌉建堆时间复杂度🌉堆的插入🌉堆的删除 🌠堆向上调…

【leetcode】优先级队列的两种妙用:词频统计与动态中位数(附代码模板)

前言 🌟🌟本期讲解关于力扣的几篇题解的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…

【算法学习】哈希表篇:哈希表的使用场景和使用方法

算法学习: https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言: 在之前学习数据结构时我们就学习了哈希表的使用方法,这里我们主要是针对哈希表的做题方法进行讲解,都是leetcode上的经典…

HDFS详解

一、HDFS 概述 定位与特点 分布式文件系统:HDFS(Hadoop Distributed File System)是 Hadoop 生态的核心组件,专为海量数据存储和批处理设计。 核心设计原则: 高容错性:数据自动多副本冗余,支持…

【数据结构】String字符串的存储

目录 一、存储结构 1.字符串常量池 2.字符串哈希表 2.1结构 2.2基础存储单位 2.2.1键对象 2.2.2值对象 二、存储过程 1.搜索 2.创建 三、存储位置 四、存储操作 1.new新建 2.intern入池 这是String类的详解:String类变量 一、存储结构 1.字符串常量池…

数据结构大作业——家谱管理系统(超详细!完整代码!)

目录 设计思路: 一、项目背景 二、功能分析 查询功能流程图: 管理功能流程图: 三、设计 四、实现 代码实现: 头文件 结构体 函数声明及定义 创建家谱树头结点 绘制家谱树(打印) 建立右兄弟…

北京将有7级大风小冰雹 雷电蓝色预警发布

6月1日17时50分,北京发布雷电蓝色预警,预计当天20时至次日2时,自西向东将有雷阵雨天气,局地短时雨强较大,并伴有7级左右短时大风和小冰雹,请注意防范。明天上午至中午前后依旧会出现分散性雷阵雨,雨量总体不大。午后至前半夜北风增强,阵风明显,外出时请做好防风措施,…

专家:印太战略实质是霸权工具 不会得逞

针对美国防长赫格塞思在香格里拉对话会上涉及中国的部分表态,有中国学者指出,美国所谓的“印太战略”实质上是霸权工具,不会得逞。在对话会上,赫格塞思再次提到所谓的“印太战略”,并呼吁亚太地区同盟国和合作伙伴国与美国一起构筑更现实的战略关系。国防大学教授孟祥青表…

SCNN(Spatial CNN) 模型学习记录

目录 1.模型架构 2.核心模块SCNN_*分析 SCNN(Spatial As Deep: Spatial CNN for Traffic Lane Detection)是一种专为交通车道线检测任务设计的深度神经网络架构,由中国科学院计算技术研究所提出,旨在在语义分割框架中增强空间信…

Lerobot框架使用(含本地数据训练)

本文包含从安装环境到完整使用Lerobot框架进行算法复现全流程。 A Install LeRobot 安装miniconda管理python环境 Linux mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/minicon…

小红书 web x-s x-t X-Mns 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向分析 cp execjs.compile(open(v…

国产化中间件基本使用_东方通(TongWeb7.0.E.6_P2)

tongweb开发操作文档 1、前期准备 进入官网申请使用,官网地址:https://www.tongtech.com 若提供的安装程序的授权文件已过期,请去官方网站重新申请。 2、安装部署 2.1、下载安装Tongweb 进入官网申请试用,官方会提供响应的嵌入式安装包及试用授权证书(3个月) 申请…

010302-oss_反向代理_负载均衡-web扩展2-基础入门-网络安全

文章目录 1 OSS1.1 什么是 OSS 存储?1.2 OSS 核心功能1.3 OSS 的优势1.4 典型使用场景1.5 如何接入 OSS?1.6 注意事项1.7 cloudreve实战演示1.7.1 配置cloudreve连接阿里云oss1.7.2 常见错误1.7.3 安全测试影响 2 反向代理2.1 正向代理和反向代理2.2 演示…