- 博客(292)
- 资源 (4)
- 收藏
- 关注
原创 应用monai进行医学图像的弹性变形的demo
运行后会弹出一个窗口显示两张图,你能清楚看到原图和扭曲变形后的区别,同时文件夹里会多一个叫 "elastic_deformation_result.png" 的图片文件。mnoai 我用的1.2.0的版本,对比代码和效果,明显比opencv变形搞得更好。这段代码的作用很简单:就是把一张医学图像(DICOM 格式)做一些扭曲变形,然后展示原图和变形后的图。简单说就是:读入医学图像→按工具要求调整格式→设置变形程度→执行变形→看效果。
2025-07-23 09:39:56
130
原创 增加交叉验证和超参数调优
假设你用一份训练集训练模型,然后用同一批数据测试,准确率 90%—— 这能说明模型好吗?不能!因为模型可能 “死记硬背” 了训练数据(过拟合),换一批新数据就不行了。所以需要用 “没见过的数据” 来验证模型 —— 但我们只有一份训练集,怎么办?超参数是训练前手动设定的参数,不是模型自己学出来的。比如代码中的:lr(学习率):模型更新参数的 “步长”,太大可能跑过头,太小可能学太慢。batch_size(批大小):每次训练用多少数据,影响训练速度和稳定性。momentum。
2025-07-22 22:55:21
683
原创 torchvision.transforms 与 MONAI 数据增强的异同
如果你处理的是自然图像或通用CV任务足够轻量、高效,且与 PyTorch 生态无缝兼容;如果你处理的是医学影像(尤其是 3D 数据或多模态数据),MONAI 的数据增强更贴合场景需求,能更好地应对医学数据的特殊性,同时保持与 PyTorch 的兼容性(可与操作混合使用)。简单来说:是 “通用工具”,MONAI 是 “医学专用工具”,两者在基础增强上重叠,但 MONAI 针对医学场景做了深度优化。
2025-07-22 21:22:42
669
原创 医学影像弹性形变处理
这段代码的主要流程是:读取 DICOM 医学影像,尝试使用 MONAI 进行弹性形变(根据版本适配),如果失败则使用 OpenCV 实现,最后可视化并保存处理结果。这样可以在不同环境下灵活处理医学影像的弹性形变需求。后面会写一篇解释弹性变形方法的短文。
2025-07-22 20:40:52
432
原创 将处理后的图像保存为 DICOM
复用原始 DICOM的大部分信息,只替换图像数据和唯一标识,最后生成一个符合标准的新 DICOM文件"。这样保存的文件既能被医学影像软件识别,又包含了我们处理后的图像内容。复制 DICOM 文件格式信息:确保新文件能正常打开# 关键修复:设置字节序和VR编码方式else:# 手动创建文件元数据并设置默认传输语法ds.file_meta.TransferSyntaxUID = ImplicitVRLittleEndian # 默认小端隐式VR。
2025-07-22 16:05:15
537
原创 给CT图像添加“条纹噪声”
这个函数就像给图像加了一层有规律的 "条纹滤镜",可以控制条纹是横的还是竖的、条纹多宽、间隔多远、以及条纹有多明显,最终让图像出现类似信号干扰的条纹效果。
2025-07-22 14:22:01
293
原创 CT 图像呼吸运动伪影模拟:原理与实现
在医学影像领域,呼吸运动伪影是 CT/MRI 成像中常见的干扰因素,会导致图像模糊、边界不清,影响诊断准确性。本文将用通俗的语言解释呼吸运动伪影的产生逻辑,并提供可直接运行的 Python 模拟代码,帮助理解这一现象。
2025-07-22 14:00:19
487
原创 通过代码理解伪影模拟的原理
这段代码就是把原始图像的每一行,按照规定的幅度平移后,再写到一张新的白纸上,平移后空出来的地方用黑色填满,这样就做出了 "模糊拖影" 的效果。
2025-07-22 13:55:42
263
原创 基于 Python 的 CT 图像处理-伪影模拟
先看运行效果: 完整代码如下:总体说明这段代码是用于处理 CT 图像的 Python 程序,主要功能是加载 CT 的 DICOM 文件,对图像进行处理(添加呼吸运动模糊和条纹噪声等伪影),并通过交互式界面调整窗宽窗位来观察图像效果。以下是对代码的说明:import pydicom import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import Slider import os from pydico
2025-07-22 13:45:19
631
原创 PyTorch 实现 CIFAR-10 图像分类:从数据预处理到模型训练与评估
CIFAR-10 数据集包含 10 个类别,每个类别对应一个索引(0-9)。数据准备:加载并预处理 CIFAR-10 数据集。模型设计:构建卷积神经网络。模型训练:通过优化器调整参数,最小化损失函数。模型评估:在测试集上验证模型准确率。结果可视化:展示模型预测效果。学习率 (lr):影响训练速度和稳定性。批次大小 (batch_size):较大的批次可能加速训练,但需要更多内存。网络层数:增加卷积层或全连接层可能提高准确率。训练轮次 (epochs)
2025-07-21 22:00:06
898
原创 使用 PyTorch 的 torchvision 库加载 CIFAR-10 数据集
):将多个预处理操作按顺序组合。将 PIL 图像或 NumPy 数组(H×W×C,范围 0-255)转换为 PyTorch 张量(C×H×W,范围 0.0-0)。。这里和将像素值从[0.0, 1.0]映射到(例如,0.0→-1.0,1.0→1.0)。
2025-07-21 12:03:10
848
原创 CT影像肺部ROI分割
这个目前还有点问题 没有很好的进行ROI分割提取肺部,而是单独把整个ct 做个肺部提取了, 正常应该提取左 右肺部2个分割,这个后面找时间再优化补充一下,这里先把已经搞的记录一下,我想 无非是先预处理一下图像 再提取?或者不用opencv 而用其他的lib 进行提取操作?或者参数有问题? 完整代码如下: 运行结果如图: 作用:导入必要的库并设置中文字体显示关键点::用于读取DICOM格式的医疗影像:处理图像数据:图像处理和计算机视觉功能:图像可视化:形态学操作字体设置确保中文标签正常显
2025-07-21 06:37:28
807
原创 使用 PyDicom 调整 CT 影像窗宽窗位
更新图像更新直方图上的标记线更新文本标注窗位窗宽强制刷新画布确保事件实时处理当滑动条值变化时,这个函数会被调用根据新的窗宽窗位重新处理图像并更新显示同时更新直方图上的标记线和文本标注位置触发画布重绘确保界面实时响应。
2025-07-20 14:01:06
810
原创 DICOM 医学影像文件的读取、处理与可视化的例子
医学影像(如 CT、MRI 等)通常是由多个二维切片(slice)按一定顺序堆叠而成的三维结构。
2025-07-20 08:02:44
393
原创 用逻辑回归(Logistic Regression)处理鸢尾花(iris)数据集
数据准备:加载数据、划分训练集 / 测试集。特征工程:标准化特征,避免量纲影响。模型训练:用逻辑回归学习分类规则。模型评估:用准确率、混淆矩阵等指标衡量性能。预测应用:对新样本进行分类。鸢尾花数据集是机器学习的 “Hello World”,适合入门。逻辑回归是简单但强大的分类算法,尤其适合特征与类别之间存在线性关系的场景。
2025-07-19 20:40:22
611
原创 用 Numpy 手动实现矩阵卷积运算
卷积神经网络(CNN)的核心是卷积运算,但很多人对其原理一知半解。今天我用 Numpy 手动实现一个简单的矩阵卷积,带你直观理解 CNN 的核心操作!
2025-07-19 16:58:40
361
原创 从随机数值到特征检测器的学习与更新
这正是权值共享的意义——同一个特征检测器(卷积核)应用于整个输入空间,并且它的学习基于所有位置上的综合反馈。在遍历整个数据集多次(称为 epoch)的过程中,网络持续接收反馈(损失),并根据反馈不断调整所有卷积核的数值。这个计算利用了链式法则,并考虑了卷积操作的具体数学形式以及权值共享的特性(梯度是共享核在所有位置贡献的汇总)。初始值是随机的,网络通过不断试错和调整,逐渐让卷积核学会提取对最终任务(如分类)有用的特征。学习率控制了移动的幅度,梯度的大小决定了移动的幅度(误差贡献大的权重更新幅度大)。
2025-07-19 16:41:41
909
原创 神经网络:从模式组合到多层神经网络的进化
神经网络的 “深度” 指的是隐藏层的数量。层数越多,网络能提取的特征越复杂,识别能力越强。就像人看图片时,会先看线条(简单特征),再看形状(复杂特征),最后判断整体内容 —— 多层神经网络就是用这种 “分层思考” 的方式,让 AI 学会识别复杂图案。
2025-07-19 11:13:24
212
原创 从单个神经元到数字识别神经网络的演变
这张图把 “加权求和 + Sigmoid” 包装成了一个叫 “神经元” 的单元,多个神经元组队就成了神经网络。本质上,它是用数学公式模拟 “人类判断事物” 的过程 —— 先看局部特征(加权求和),再综合判断(Sigmoid 归一化),最后多个判断一起投票(神经网络)。而数字识别网络就是用这种方式,让 AI 学会 “看图片认数字”。
2025-07-19 10:38:00
338
原创 心电图时间序列的 ARMA 模型分析与预测
数据加载与预处理:处理多通道 ECG 数据,确保长度一致。可视化:展示原始心电图波形。平稳性检验:使用 ADF 检验确认数据是否适合 ARMA 模型。模型构建:通过 ACF/PACF 图确定阶数,拟合 ARMA 模型。预测与评估:使用 MSE 评估模型性能,可视化预测结果。残差分析:验证模型是否充分提取信息。通过这个流程,可以对心电图信号进行建模和短期预测,用于心率异常检测或信号滤波等应用。
2025-07-16 08:54:57
1005
原创 时间序列挖掘及建模
我们挖掘它的目的,就是从历史数据中找规律,用来预测未来 —— 比如根据过去的销售数据预测下个月的销量,根据历史交通流量规划明天的出行路线。ARIMA (p,d,q) 中的 “d” 就是差分阶数 —— 比如 d=1,就是对序列做 1 阶差分(用当前值减前一个值),直到序列平稳。拿到一条时间序列,不能直接建模,得先做预处理,核心是判断它是否平稳 —— 因为很多模型(比如 ARMA)只适用于平稳序列。而 ARMA (p,q) 模型,就是同时考虑自回归和移动平均,p 是 AR 的阶数,q 是 MA 的阶数。
2025-07-15 19:47:20
746
原创 原来时间序列挖掘这么简单
看数据的 “脾气”(趋势、季节、随机);分清楚是哪类序列(平稳 / 非平稳);平稳的用 ARMA,非平稳的先差分再用 ARIMA;用 Python 工具快速实现,搞定预测!
2025-07-15 19:42:48
871
原创 Apriori 原理:快速筛选频繁出现的症状组合
先明确一个前提:什么是 “频繁项集”?比如医生想找 “经常一起出现的症状”,假设我们规定 “至少在 2 个病人身上出现才算频繁”(这就是 “最小支持度”)。
2025-07-15 18:29:52
298
原创 关联规则挖掘:从概念到算法实践
首先,我们得明确什么是 “关联”。关联反映的是数据集中项目之间的相互依赖关系,比如 “购买面包的顾客同时购买牛奶” 就是一种关联。而关联规则挖掘,就是从数据中发现这种 “频繁出现的模式”,并形成类似 “如果 A,那么 B”(A→B)的规则。Apriori 算法是基础,通过先验原理剪枝;FP-growth 算法更高效,用 FP-tree 压缩数据;Eclat 算法则从垂直角度处理数据。实际应用中,大家可以根据数据量和维度选择合适的算法,而 mlxtend 库能帮我们快速实现这些算法。
2025-07-15 16:29:40
675
原创 从病人数据中找出感冒的关键症状组合
如果病人同时有 “发烧 + 咳嗽”,那么有 100% 的概率是感冒;如果病人同时有 “咳嗽 + 嗓子痛”,那么有 100% 的概率是感冒。先找经常一起出现的项目”(频繁项集),再从里面挑 “靠谱的如果…那么…”(强关联规则)。
2025-07-15 16:23:56
868
原创 K-means 聚类在肺炎患者分型中的应用(简单示例)
细菌性肺炎:中高热、白细胞高、咳嗽中等时间病毒性肺炎:高热、白细胞正常、咳嗽时间短支原体肺炎:低热、白细胞略高、咳嗽时间长这里定义了三种肺炎的典型特征特征 1:体温(℃)特征 2:白细胞计数(×10⁹/L)特征 3:咳嗽持续天数这些中心值基于医学常识:细菌性肺炎常伴随白细胞升高,病毒性肺炎多为高热,支原体肺炎咳嗽时间较长。
2025-07-15 15:42:32
666
原创 聚类分析的概念
聚类是一种让数据 “自动抱团” 的技术。它不需要你提前告诉电脑 “谁和谁是一伙的”(这叫 “无监督学习”),电脑会自己观察数据的特点,把长得像的分到一组。类比:就像老师带一群陌生的学生,不用提前安排,让学生们自己找 “合得来” 的人站成几队 —— 最后会形成几个小团体,这就是 “簇”。算法像什么适合场景缺点K-means选组长分小组圆形团体、大数据形状奇怪的分不好DBSCAN按扎堆程度分组任意形状、有噪声数据太稀疏时不灵GMM算概率分团体复杂形状、需要概率计算有点慢。
2025-07-15 15:20:47
888
原创 医疗数据分析中标准化的作用
标准化是为了消除特征本身 “数值大小” 的干扰,让每个特征在聚类时都能 “平等说话”,这样 DBSCAN 才能更准确地找到真正相似的患者群体(亚型),而不是被某个特征的 “大数值” 带偏。
2025-07-15 15:18:15
433
原创 BSCAN 在糖尿病患者数据聚类分析中的应用
这段代码实现了使用 DBSCAN 算法对糖尿病患者数据进行聚类分析,以识别不同的患者亚型和异常病例。
2025-07-15 14:55:56
827
原创 Python 数据挖掘综述
数据挖掘是从大量、不完全、有噪声的数据中,提取隐含的、潜在有用的信息和知识的过程。它融合了统计学、机器学习、数据库技术等多学科知识,核心目标是解决 “数据爆炸但知识贫乏” 的问题。数据:原始记录(如用户消费金额、商品 ID);信息:结构化处理后的数据(如 “20-30 岁用户月均消费 500 元”);知识:提炼出的规律(如 “20-30 岁用户更倾向购买品类 A”)。
2025-07-15 14:27:14
895
原创 用 K-means 算法实现水果分堆
K-means 就像是一个 “智能分拣员”,它不认识水果,但能根据水果的位置自动分成几堆。只要数据有明显的 “聚集趋势”,它就能找到!
2025-07-15 12:22:08
668
原创 集成技术及其应用
集成技术是数据挖掘中非常重要的一类方法,简单来说,它不是靠单个模型 “单打独斗”,而是通过组合多个模型的力量,来达到更好的分类或回归效果。接下来,我们就从基础到应用,一步步揭开集成技术的面纱。
2025-07-15 08:46:41
790
原创 提升(Boosting)及 Python 示例
先做一套题,找出错题重点练;再做一套题,再找错题重点练……最后综合所有经验,谁强听谁的。它和装袋(Bagging)的区别是:装袋是 “平行做题,投票决定”,提升是 “串行补漏,强者主导”~
2025-07-15 08:31:03
846
原创 装袋(Bagging)过程
这样做的好处是:单个模型容易 “看走眼”(比如 M₁可能把红西红柿当苹果),但多个模型一起投票,错误会相互抵消,结果更稳定、更准确~
2025-07-15 06:58:44
245
原创 集成技术(一)
大白话来说,集成技术就是 **“组队干活” 的思路 **:不依靠单个模型(比如单个决策树、单个逻辑回归)来做判断,而是让多个不同的模型(或者同一类模型的不同版本)一起 “思考”,最后综合它们的意见得出结果。打个比方:你想判断一个水果是不是苹果,单个模型可能只看 “颜色”,另一个只看 “形状”,集成技术就会让这两个模型分别发表意见,再综合起来判断 —— 相当于 “三个臭皮匠顶个诸葛亮”。集成技术可以综合 “使用时长”“投诉次数”“套餐类型” 等多个模型的判断,更精准地找出高风险客户。
2025-07-14 21:02:56
245
原创 基础分类模型及回归简介(一)
那些离线最近的人,就是 “支持向量”,线的位置全靠他们定。比如你新认识一个人,想知道他喜欢打篮球还是踢足球,就看他身边 5 个好朋友(k=5)里,多数人喜欢啥,就猜他也喜欢啥。数据挖掘里的 “有监督学习”,就像有老师带着你学:给你一堆带答案的习题(训练数据),学会后去做新题(测试数据)。建决策树时,得先挑 “最有用的问题”(属性选择),比如先问 “颜色” 比先问 “有没有虫眼” 更能快速区分水果。朴素贝叶斯的思路就是:统计 “苹果通常是红的”“苹果通常是圆的” 这些概率,然后综合起来猜。
2025-07-14 20:51:37
942
accp6认证标准等
2014-08-21
hibernate4+spring4+springmvc+ehcache+自己写的cache系统
2018-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人