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

人工智能-python-机器学习-逻辑回归与K-Means算法:理论与应用

文章目录

  • 逻辑回归与K-Means算法:理论与应用
    • 1. 引言
    • 2. 逻辑回归:二分类的利器
      • 🔍 为什么用它?
      • 🎯 使用场景
      • 2.1 什么是逻辑回归?
      • 2.2 理论依据
      • 2.3 使用场景
      • 2.4 示例与API解释
      • 2.5 优缺点
        • 优点:
        • 缺点:
    • 3. K-Means算法
      • 3.1 什么是K-Means?
        • 🔍 为什么用它?
      • 3.2 理论依据
      • 3.3 使用场景
      • 3.4 示例与API解释
      • 3.5 优缺点
        • 优点:
        • 缺点:
    • 4. 总结


逻辑回归与K-Means算法:理论与应用

1. 引言

在机器学习中,逻辑回归K-Means是两种非常常见且实用的算法。逻辑回归广泛应用于分类问题,而K-Means则是经典的无监督学习算法,用于聚类任务。本文将分别介绍逻辑回归和K-Means算法的理论基础、使用场景、API解释和实际示例,以帮助读者更好地理解这两种算法的应用和实现。

2. 逻辑回归:二分类的利器

🔍 为什么用它?

  • 结果导向:快速构建高解释性二分类模型(如用户购买/不购买)
  • 核心优势:输出概率值(0-1),可设置灵活阈值,部署成本低
  • 业界地位:金融风控、医疗诊断等领域的基准模型

🎯 使用场景

场景问题类型实例
风险评估是否违约银行贷款审批
用户行为预测是否点击/购买电商推荐系统
医学诊断是否患病癌症早期筛查
文本分类情感极性评论情感分析(正/负)

2.1 什么是逻辑回归?

逻辑回归是一种用于分类问题的回归模型,特别适用于二分类问题(例如:是否通过考试,是否贷款批准等)。尽管其名称中包含“回归”二字,逻辑回归其实是一种分类模型,采用Sigmoid函数将输入映射到0到1之间,从而预测样本属于某个类别的概率。

2.2 理论依据

逻辑回归的核心思想是通过线性组合输入特征,然后通过Sigmoid函数将其转化为概率值。其公式为:

hθ(x)=11+e−θTxh_\theta(x) = \frac{1}{1 + e^{-\theta^T x}} hθ(x)=1+eθTx1

其中:

  • hθ(x)h_\theta(x)hθ(x) 是预测的概率值,表示样本属于正类的概率。
  • θ\thetaθ 是模型的参数。
  • xxx 是输入特征。

三大数学原理

  1. Sigmoid函数:将线性输出映射到(0,1)概率区间
  2. 极大似然估计:最大化观测数据的出现概率
  3. 梯度下降:通过迭代优化损失函数(交叉熵):
    Loss = -Σ[yᵢlog(ŷᵢ) + (1-yᵢ)log(1-ŷᵢ)]

2.3 使用场景

逻辑回归适用于二分类问题,尤其当数据特征与目标类别之间存在线性关系时。常见应用场景包括:

  • 疾病预测:预测一个人是否患有某种疾病。
  • 信用卡欺诈检测:判断一笔交易是否是欺诈行为。
  • 邮件垃圾分类:判断一封邮件是否为垃圾邮件。

2.4 示例与API解释

以下是一个使用逻辑回归进行分类的示例:

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score# 加载示例数据集
data = load_iris()
X = data.data
y = (data.target == 0).astype(int)  # 将任务转化为二分类问题# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 创建逻辑回归模型
model = LogisticRegression()# 训练模型
model.fit(X_train, y_train)# 预测
y_pred = model.predict(X_test)# 输出准确率
print("准确率:", accuracy_score(y_test, y_pred))
  • API解释

    • LogisticRegression():创建一个逻辑回归模型。
    • fit():训练模型,传入训练数据集和标签。
    • predict():用训练好的模型对测试数据集进行预测。
    • accuracy_score():评估预测结果的准确性。
    LogisticRegression(penalty='l2',           # 正则化类型: 'l1'或'l2'C=1.0,                  # 正则化强度(↓C=↑正则化)solver='lbfgs',         # 优化算法: 'newton-cg','sag','saga'max_iter=100,           # 最大迭代次数class_weight=None,      # 处理样本不平衡: 'balanced'random_state=42          # 随机种子)

2.5 优缺点

优点:
  • 简单易懂,计算效率高。
  • 适用于特征与目标之间存在线性关系的分类问题。
  • 可以输出样本属于某一类的概率。
缺点:
  • 不能很好地处理非线性问题。
  • 对于数据中的异常值较为敏感。

3. K-Means算法

3.1 什么是K-Means?

K-Means算法是一种常见的无监督学习聚类算法,旨在将数据集分成K个簇,使得簇内的样本相似度最大,而簇间的样本差异度最小。K-Means广泛应用于聚类分析中,尤其是在无标签数据的情况下。

🔍 为什么用它?

结果导向:快速发现数据内在分组(无标签数据)
核心优势:计算高效(O(n)),可扩展性强,直观可视化
业界地位:用户分群、图像压缩的首选聚类算法

3.2 理论依据

K-Means算法通过最小化簇内样本到簇中心的距离来进行聚类。具体步骤如下:

  1. 初始化:随机选择K个样本作为初始簇中心。
  2. 分配样本:将每个样本分配给最近的簇中心。
  3. 更新簇中心:根据每个簇内的样本,重新计算簇的中心(即样本均值)。
  4. 重复:不断重复分配样本和更新簇中心的步骤,直到簇中心不再发生变化或达到最大迭代次数。

3.3 使用场景

K-Means算法适用于需要将数据分组的情况,常见的应用场景包括:

  • 市场细分:将消费者分成若干群体,以制定更有针对性的市场营销策略。
  • 图像压缩:将图像中的颜色值进行聚类,减少颜色种类以压缩图像。
  • 基因数据分析:将基因表达数据分组,发现基因之间的相似性。

3.4 示例与API解释

以下是使用K-Means算法进行聚类的示例:

from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt# 加载数据集
data = load_iris()
X = data.data# 创建KMeans模型,假设聚类数为3
model = KMeans(n_clusters=3, random_state=42)# 训练模型
model.fit(X)# 获取聚类中心
centroids = model.cluster_centers_# 获取每个样本的簇标签
labels = model.labels_# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.scatter(centroids[:, 0], centroids[:, 1], s=200, c='red', marker='X')  # 聚类中心
plt.title('K-Means 聚类结果')
plt.show()
  • API解释

    • KMeans(n_clusters=3):创建一个K-Means聚类模型,n_clusters=3指定了聚类数为3。
    • fit():训练模型,传入数据集。
    • cluster_centers_:获取每个簇的中心坐标。
    • labels_:获取每个样本所属的簇标签。

3.5 优缺点

优点:
  • 算法简单,易于实现。
  • 适用于大规模数据集,计算效率较高。
  • 聚类结果易于理解,适合可视化。
缺点:
  • 需要预先指定K值(聚类数)。
  • 对初始簇中心敏感,可能导致不同的结果。
  • 对异常值敏感,异常值可能会影响簇的形成。

💡 黄金法则:

有标签预测问题 → 逻辑回归
无标签数据探索 → K-Means
两者结合:先用K-Means发现用户群体,再用逻辑回归预测群体行为!

4. 总结

逻辑回归K-Means算法分别是经典的监督学习无监督学习方法。逻辑回归适用于处理二分类问题,而K-Means算法则广泛用于聚类分析。通过理解它们的理论依据、应用场景和API使用方法,我们可以根据不同的问题选择合适的算法进行数据建模。


http://www.lryc.cn/news/617820.html

相关文章:

  • 【电机控制】FOC单电阻电流采样配置
  • DHCP 服务详解与部署
  • React 19 通用 ECharts 组件
  • Redis应⽤-缓存与分布式锁
  • Linux驱动学习day27天(USB驱动理论部分)
  • 修改学生信息管理系统以及查询
  • Ansys Mechanical中的声学分析
  • Nestjs框架: RBAC基于角色的权限控制模型初探
  • java内部类-匿名内部类
  • 适用于高质量核磁共振(NMR)的溶剂推荐
  • Apache ECharts 6 核心技术解密 – Vue3企业级可视化实战指南
  • 每日五个pyecharts可视化图表-line:从入门到精通 (3)
  • 编程技术杂谈4.0
  • SQL复杂查询
  • 论文学习22:UNETR: Transformers for 3D Medical Image Segmentation
  • TCGA数据集下载工具gdc-client下载慢解决方案
  • 掘金数据富矿,永洪科技为山东黄金定制“数智掘金”实战营
  • JavaScript let的使用
  • macos彻底删除vscode
  • 2025年农业工程与环境预防国际会议(ICAEEP 2025)
  • k8s 部署mysql主从集群
  • 用AListLite让安卓手机成为NAS实现文件共享
  • 基于开源模型构建医疗疾病大模型:从理论到实践
  • 2025牛客多校第八场 根号-2进制 个人题解
  • USB 基本描述符
  • TRL - Transformer Reinforcement Learning SFTTrainer 和 SFTConfig
  • AI(2)-神经网络(激活函数)
  • 当生产环境卡成 PPT:Spring Boot 线程 Dump 捉妖指南 - 第544篇
  • 【09-神经网络介绍2】
  • 数据结构-排序(2)