医疗AI场景下算法编程的深度解析(2026新生培训讲稿)(四)

医疗AI场景下算法编程的深度解析(2026新生培训讲稿)(四)
在这里插入图片描述

第7章 k-均值算法:患者分群与精准医疗

在医疗领域,我们常常面临这样的问题:患者是否可以划分为不同的亚型?不同亚型是否有不同的疾病进展模式或治疗反应?这些问题属于无监督学习的范畴。k-均值(k-means)聚类算法是最经典、最常用的无监督学习算法之一,它能够将数据划分为 k 个簇,使得同一簇内的样本高度相似,不同簇间的样本差异显著。本章将从算法原理出发,深入解析 k-均值在医疗场景中的应用,并通过实战案例展示如何利用 k-均值发现慢性病患者的潜在亚型,为精准医疗提供依据。

7.1 算法原理

7.1.1 聚类问题概述

聚类是一种无监督学习任务,目标是将数据集中的样本划分为若干个组(簇),使得同一组内的样本尽可能相似,不同组间的样本尽可能不同。与分类不同,聚类不依赖于预先标记的类别,而是从数据本身发现结构。

7.1.2 k-均值算法的核心思想

k-均值算法试图将 n 个样本划分到 k 个簇中,使得每个样本到其所属簇中心的距离平方和最小。簇中心是簇内所有样本的均值(因此得名“k-均值”)。

设数据集为 ( X = {x^{(1)}, x^{(2)}, …, x^{(n)}} ),每个样本为 p 维向量。算法将样本划分到 k 个簇 ( C = {C_1, C_2, …, C_k} ),目标是极小化目标函数(惯性,inertia):

[
J = \sum_{j=1}^{k} \sum_{x \in C_j} | x - \mu_j |^2
]

其中 ( \mu_j ) 是簇 ( C_j ) 的中心(均值向量)。

7.1.3 算法步骤

k-均值算法通过迭代优化实现上述目标,具体步骤如下:

  1. 初始化:随机选择 k 个样本作为初始簇中心。
  2. 分配:计算每个样本到各簇中心的距离(通常为欧氏距离),将样本分配到距离最近的簇中心。
  3. 更新:对于每个簇,重新计算该簇内所有样本的均值,作为新的簇中心。
  4. 重复:重复步骤 2 和 3,直到簇中心不再发生显著变化(或达到最大迭代次数)。

算法收敛时,样本分配和簇中心将不再改变。

7.1.4 距离度量

k-均值通常使用欧氏距离,但理论上可使用其他距离度量。需要注意的是,距离度量的选择会影响聚类结果,应根据数据特点选择。对于医疗数据,常混合数值型和类别型特征,此时可能需要将类别变量进行独热编码,或使用专门的距离度量(如 Gower 距离),但 k-均值对类别型特征处理不佳,通常需先将类别变量数值化或使用其他聚类算法(如 k-prototypes)。

7.1.5 k值的选择

k 值(簇数)是 k-均值最重要的超参数。常见的选择方法有:

1. 肘部法则(Elbow Method)

计算不同 k 值下的目标函数值(惯性),绘制曲线。随着 k 增加,惯性递减,但当 k 接近真实簇数时,惯性下降速度减缓,曲线出现“肘部”。肘部对应的 k 值为较优选择。

2. 轮廓系数(Silhouette Coefficient)

轮廓系数结合了簇内紧密度和簇间分离度。对于每个样本 i,计算:

  • a(i):样本 i 到同簇其他样本的平均距离(簇内不相似度)。
  • b(i):样本 i 到其他簇样本的平均距离的最小值(簇间不相似度)。
    样本 i 的轮廓系数为:
    [
    s(i) = \frac{b(i) - a(i)}{\max{a(i), b(i)}}
    ]
    s(i) 取值范围 [-1,1],越接近 1 表示聚类效果越好。整体轮廓系数是所有样本的平均值。
3. Calinski-Harabasz 指数

基于簇间离差矩阵与簇内离差矩阵的比值,越大表示聚类效果越好。

4. 领域知识

在某些医疗应用中,k 值可能由临床意义决定,例如已知疾病有 3 种亚型,可设 k=3。

7.1.6 算法复杂度

k-均值的时间复杂度约为 O(n * k * I * p),其中 n 为样本数,k 为簇数,I 为迭代次数,p 为特征维数。对于大规模数据,k-均值是相对高效的算法。

7.1.7 局限性

  • 需预先指定 k:实际中 k 往往未知。
  • 对初始值敏感:不同的初始中心可能导致不同的聚类结果。
  • 假设簇为凸形:k-均值假设簇是球形且大小相近,对非凸形状或大小悬殊的簇效果不佳。
  • 对噪声和异常值敏感:异常点会显著影响簇中心。
  • 只能处理数值型数据:对类别型数据需转换。

7.2 医疗应用场景

7.2.1 患者分群与疾病亚型发现

这是 k-均值在医疗中最经典的应用。通过聚类,可将患者划分为具有相似临床特征、生物标志物或基因组特征的亚组,每个亚组可能对应不同的疾病机制、预后或治疗反应。例如:

  • 糖尿病亚型:基于血糖、BMI、胰岛素抵抗、年龄等指标,将糖尿病患者分为不同亚型(如严重自身免疫性糖尿病、严重胰岛素缺乏性糖尿病、严重胰岛素抵抗性糖尿病等),不同亚型并发症风险和治疗方法不同。
  • 心力衰竭表型:通过临床指标(如射血分数、BNP、肾功能)聚类,识别不同心衰表型,指导个性化治疗。
  • COVID-19 临床分型:基于症状、实验室指标、影像特征,将 COVID-19 患者分为轻症、重症、危重症等亚型。

7.2.2 医学影像分割

图像分割是将图像划分为若干有意义的区域。k-均值可用于初步的医学图像分割,例如:

  • 脑 MRI 分割:将脑组织分为灰质、白质、脑脊液等。
  • 肿瘤区域识别:在 CT 或 MRI 中分割肿瘤区域(需结合其他后处理)。
  • 眼底图像分割:分割视盘、血管等结构。

虽然深度学习在图像分割领域更为强大,但 k-均值因其简单、快速,仍可用于预处理或快速原型验证。

7.2.3 基因表达数据分析

在基因组学中,聚类广泛用于发现共表达基因模块或样本亚型。例如:

  • 肿瘤亚型发现:基于基因表达谱,将肿瘤样本聚类为不同分子亚型(如乳腺癌的 luminal A、luminal B、HER2 过表达、基底样等)。
  • 时间序列基因表达聚类:将随时间变化的基因表达模式聚类,识别功能相关的基因群。

7.2.4 医疗资源优化与运营管理

聚类可用于医疗资源的优化配置。例如:

  • 患者就诊模式聚类:基于就诊时间、科室、诊断等,聚类患者群体,优化预约排程和资源配置。
  • 医院床位需求预测:对不同类型患者聚类,分析其住院时长规律,辅助床位管理。

7.2.5 异常检测与质量控制

k-均值可用于识别异常值——那些离所有簇中心都很远的样本可能是数据录入错误、罕见病例或设备故障。在医疗质量控制中,可通过聚类识别异常诊疗模式。

7.2.6 药物研发

在药物研发中,聚类可用于化合物筛选、患者分层(临床试验入组)、药物反应预测等。例如,基于患者基因特征聚类,识别可能对特定靶向药物敏感的患者群体。

7.2.7 健康管理人群画像

在公共卫生领域,可利用聚类对人群进行健康画像,如将人群分为“健康生活方式型”、“慢性病高风险型”、“多病共存型”等,为制定针对性干预措施提供依据。

7.3 案例实战:基于k-means的慢性病患者聚类分析

本节将使用一个真实的慢性病相关数据集,通过 k-均值聚类发现患者的潜在亚型。我们将使用 糖尿病进展数据集(Diabetes dataset)来自 scikit-learn,该数据集包含 442 名糖尿病患者的 10 个基线变量(年龄、性别、BMI、平均血压、六个血清测量值)以及一年后疾病进展的定量测量。虽然这是一个回归数据集,但我们可以基于基线特征进行聚类,观察不同簇的疾病进展差异。

7.3.1 数据集介绍

from sklearn.datasets import load_diabetes import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score import warnings warnings.filterwarnings('ignore')# 加载数据 diabetes = load_diabetes() X = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) y = pd.Series(diabetes.target, name='target')print(X.shape)print(X.head())

输出:

(442, 10) age sex bmi bp s1 s2 s3 \ 0 0.038076 0.050680 0.061696 0.021872 -0.044223 -0.034821 -0.043401 1 -0.001882 -0.044642 -0.051474 -0.026328 -0.008449 -0.019163 0.074412 2 0.085299 0.050680 0.044451 -0.005670 -0.045599 -0.034194 -0.032356 3 -0.089063 -0.044642 -0.011595 -0.036656 0.012191 0.024991 -0.036038 4 0.005383 -0.044642 -0.036385 0.021872 0.003935 0.015596 0.008142 s4 s5 s6 0 -0.002592 0.019907 -0.017646 1 -0.039493 -0.068332 -0.092204 2 -0.002592 0.002861 -0.025930 3 0.034309 0.022688 -0.009362 4 -0.002592 -0.031988 -0.046641 

特征已标准化(均值为0,方差为1),这是原始数据集提供的预处理。目标变量 target 是疾病进展一年后的定量测量(数值越大表示疾病进展越严重)。

7.3.2 数据预处理

虽然特征已经标准化,但我们需要确认数据无缺失值,并考虑是否需要进一步处理。由于所有特征均为数值型,且已标准化,可直接用于聚类。

# 检查缺失值print(X.isnull().sum())

无缺失。

7.3.3 确定最佳k值

我们使用肘部法则和轮廓系数选择最佳 k 值。

inertia =[] silhouette_scores =[] K_range =range(2,11)for k in K_range: kmeans = KMeans(n_clusters=k, random_state=42, n_init=10) kmeans.fit(X) inertia.append(kmeans.inertia_) silhouette_scores.append(silhouette_score(X, kmeans.labels_))# 绘制肘部法则曲线 plt.figure(figsize=(12,5)) plt.subplot(1,2,1) plt.plot(K_range, inertia, marker='o') plt.xlabel('k') plt.ylabel('惯性') plt.title('肘部法则') plt.subplot(1,2,2) plt.plot(K_range, silhouette_scores, marker='o') plt.xlabel('k') plt.ylabel('轮廓系数'

Read more

AI的提示词专栏:LLaMA-2 与 Mixtral 的提示词调优技巧

AI的提示词专栏:LLaMA-2 与 Mixtral 的提示词调优技巧

AI的提示词专栏:LLaMA-2 与 Mixtral 的提示词调优技巧 本文围绕 LLaMA-2 与 Mixtral 两大模型的提示词调优展开,先分析二者核心特性,再针对性给出适配原则与实战技巧。LLaMA-2 因参数规模差异大、通用领域训练数据为主、指令敏感度低,需按参数分层设计提示词、补充领域知识、强化指令约束,还提供了结构化指令、Few-Shot 示例等 5 个实战技巧;Mixtral 凭借混合专家架构、长上下文窗口、强多语言能力,需引导激活对应专家模块、合理处理长文本、规范多语言输出,配套专家引导指令等 4 个技巧。文章还对比二者调优重点与适用场景,指出常见误区并给出避坑方案,最后总结核心思路并提供后续实践建议,助力开发者优化提示词、发挥模型性能。 人工智能专栏介绍     人工智能学习合集专栏是 AI 学习者的实用工具。它像一个全面的 AI 知识库,把提示词设计、AI 创作、智能绘图等多个细分领域的知识整合起来。

By Ne0inhk
企业OA系统的最优选!一款美观大气、功能全面的开源OA办公系统

企业OA系统的最优选!一款美观大气、功能全面的开源OA办公系统

💂 个人网站:IT知识小屋🤟 版权: 本文由【IT学习日记】原创、在ZEEKLOG首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 * 简介 * 架构 * 功能列表 * UI界面 * 开源地址&使用手册 * 写在最后 简介 TL-OA是一款专为中小型日常办公问题设计的一款开源OA办公系统,代码100%开源,支持免费商用,项目结构清晰,注释清楚,十分适用于中小型企业快速搭建自己的高效、灵活的办公平台。具体特点如下: * 内置AI功能,支持自然语言处理能力: 如只需输入一句“查询近7天员工打卡缺勤人数”,系统就能自动生成 SQL 并返回图表或表格结果 * 内置低代码引擎: 支持自定义表单、自定义字段、自定义数据字典、自定义审批流、自定义列表展示、自定义触发事件、自定义图表统计、自定义对接接口,快速开发企业常见应用

By Ne0inhk

文墨共鸣在教育场景的应用:作文相似度雅鉴与古诗转述智能判分

文墨共鸣在教育场景的应用:作文相似度雅鉴与古诗转述智能判分 1. 项目介绍 文墨共鸣(Wen Mo Gong Ming)是一个将深度学习技术与传统水墨美学完美结合的教育智能判分系统。这个项目基于阿里达摩院开源的StructBERT大模型,专门针对中文语义理解进行了深度优化。 在教育场景中,老师经常需要批改大量学生作文,判断作文之间的相似度,或者评估学生对古诗的转述理解。传统的人工判分方式耗时耗力,且容易受到主观因素影响。文墨共鸣系统通过先进的AI技术,能够快速、准确地分析文本相似度,为教育工作者提供智能化的判分辅助。 系统采用独特的水墨风视觉设计,让技术工具也能充满文化韵味。从宣纸色调的背景到朱砂印章式的分数展示,每一个细节都体现了传统文化与现代科技的融合。 2. 教育应用场景 2.1 作文相似度检测 在学生作文批改中,老师经常需要判断作文之间的相似程度。文墨共鸣系统能够深度理解文本语义,准确识别出字面不同但含义相似的作文内容。 实际应用案例: * 判断学生作文是否存在抄袭现象 * 评估不同学生对同一题目的理解深度 * 识别优秀作文中的共同特点 * 检测作

By Ne0inhk
《开源圈聚焦的技术新作:讯飞 Astron Agent 的 “工作流编排 + MCP 工具集”,如何降低企业智能体开发门槛》

《开源圈聚焦的技术新作:讯飞 Astron Agent 的 “工作流编排 + MCP 工具集”,如何降低企业智能体开发门槛》

前引:今天我们不谈趣味互动类的小智能体,而是聚焦又一个开源的企业级智能体 “基建”—— 讯飞星辰推出的 Astron Agent。作为讯飞首个开源的企业级智能体平台,它把 AI 工作流编排、RPA 自动化、MCP 工具集打包成了可直接复用的基座,刚上线 GitHub 就拿下 6k+ Star,连科技圈都在讨论它怎么降低企业做智能体的门槛! 本文将聚焦于:与其同时开源的RPA介绍及智能体平台Astron Agent 中各个工具的详细使用                                    不是广告!不是广告!不是广告!真心推荐! 目录  【一】Astron智能体平台介绍 【二】RPA介绍 【三】Astron部署登录 (2)登录过程 (2)全程体验 【四】几个重要工具详解 (1)什么是系统/用户提示词 (2)代码节点 (3)什么时候用知识库 (4)

By Ne0inhk