MoreRSS

site iconBanxian | 王半仙修改

基于Obsidian笔记的数学花园,电子知识大脑。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Banxian | 王半仙的 RSS 预览

20250423 手机是如何监听个人信息的

2025-04-23 13:58:00

手机监听的几种方式:

  • 获取麦克风权限窃听,高成本低收益
  • 基于加速度计/陀螺仪的窃听,值得警惕与关注
  • 输入法软件信息泄露,识别并上传关键文本
  • 跨平台营销推荐,难以规避的信息泄露
  • 幸存者偏差,偶然情况导致的窃听错觉

麦克风窃听

获取麦克风权限用于窃听的方法,在经济成本和技术能力层面都不现实

根据字节的一篇科普文章可知

  • 当前大规模数据的非实时语音识别服务的主流价格约为0.6~1元/小时
  • 如果每天偷听一位用户16小时(除去8小时睡眠时间),单日成本约为9.6—16元/人,每年成本约为3504—5840元/人,同时用户日常对话中真正具有广告价值的有效信息比例极低,这在经济上显然不可行
  • 通常情况下,如果手机处于“偷听”状态下,其耗电速度会比正常情况快27%左右;同时主流手机厂商都在系统层面设置了权限监控功能,同时会主动切断 APP 的长期偷听状态

加速度计窃听

在 2020 年的 NDSS(国际信息安全界顶级会议)就有学者提出了一种名为 AccelEve(加速度计窃听)的智能手机用户语音监听方式,该方法可以利用其内置的加速度计来重建用户的音频信号

  • 加速度计通常由一个质量块、一个弹簧和一个阻尼器组成,用于测量智能手机中的实际加速度
  • 由于加速度计和扬声器与同一块电路板物理接触,并且彼此之间距离很近,因此无论智能手机放置在哪里,扬声器发出的语音信号都会对加速度计产生显著影响
  • 在加速度计接收到振动信号后,它可以识别甚至重建发出的语音信号;该方法对密码、用户名、社交信息、安全信息等敏感词的识别准确率超过 90%,即使在嘈杂的环境中,准确率也高达 80%

过去普遍认为,加速度计无法轻易获取或推断出像麦克风、摄像头或位置这样的敏感个人信息。因此,在不需要敏感系统权限的情况下,对智能手机中说话者的窃听几乎没有障碍 这也意味着很多手机零权限的 APP 也能获取到加速度计信息,并且还不违法

陀螺仪窃听

陀螺仪又称角速度传感器,不同于加速度计(G-sensor)的,它的测量物理量是偏转、倾斜时的转动角速度,从而精确分析判断出使用者的实际动作,也能用于手机摄像头防抖或 GPS 辅助

2017 年,英国纽卡斯尔大学的研究人员就写了一个名为 PINLogger.js 的攻击脚本

  • 该脚本无需用户任何授权,就能获取用户在按压屏幕时手机倾斜度变化数据
  • 该脚本提前利用数据训练人工神经网络模型,用于推算出用户输入的 4 位 PIN 码
  • 第一次尝试时的预测准确率为 74%,在第二次和第三次尝试中分别提高到 86%和 94%

  • 上图左侧为加速度数据的三个维度 x, y, z;这些测量中可以轻松识别出四次电话的开始时间、持续时间以及结束时间;右侧为实验期间手机的通话历史截图

  • 当用户完成 22 秒的坐姿、34 秒的行走和 25 秒的跑步后,期间的运动传感器数据

窃听防范指南

  • 严格把控 APP 的麦克风权限,仅对必要场景(如语音输入或通话)开放麦克风权限
  • 尽量选择支持关闭“传感器(加速度计/陀螺仪)信息获取”权限的手机,并严格控制该权限
  • 手机输入法可考虑开源/非盈利软件,避免使用需要联网的联想功能(注意,会影响打字体验)
  • 对于非常驻 APP 尽量设置后台自动关闭机制,避免部分 APP 占用手机空间并进行监听

过敏性休克 Anaphylaxis

2025-04-23 09:39:00

定义与诊断

过敏性休克

  • 一种严重、可能危及生命的过敏反应,通常由接触药物、食物或毒液引起
  • 可影响多个身体系统,如皮肤、呼吸道、消化系统和心血管系统
  • 其重要性在于其突然发作和迅速进展
  • 如果不及时有效治疗,可能导致休克、呼吸困难和甚至死亡

美国过敏性休克的终身患病率估计在 0.05%至 2%之间

过敏性休克的临床标准:美国国立过敏和传染病研究所(NIAID)金标准

  • 标准 1:急性发作的疾病(从几分钟到几个小时),伴随皮肤、黏膜组织或两者的受累(例如,全身性荨麻疹、瘙痒或潮红、嘴唇-舌头-悬雍垂肿胀)并且至少有以下之一: a. 呼吸困难(例如,呼吸困难、喘息、支气管痉挛、喉鸣、呼气峰值流量降低、低氧血症) b. 血压降低或终末器官功能障碍的相关症状(例如,低张力/虚脱、晕厥、失禁)
  • 标准 2:在暴露于可能的过敏原后迅速发生的两种或多种以下症状(从几分钟到几个小时): a. 皮肤-黏膜组织受累(例如,全身性荨麻疹、瘙痒-潮红、嘴唇-舌头-悬雍垂肿胀) b. 呼吸困难(例如,呼吸困难、喘息、支气管痉挛、喉鸣、呼气峰值流量降低、低氧血症) c. 血压降低或相关症状(例如,低张力/虚脱、晕厥、失禁) d. 持续的胃肠道症状(例如,剧烈的腹痛、呕吐)
  • 标准 3:在暴露于已知过敏原后血压降低(从几分钟到几个小时): a. 婴儿和儿童:低收缩压(按年龄划分)或收缩压下降超过 30%* b. 成人:收缩压低于 90 mm Hg 或较该人的基线下降超过 30%

儿童的低收缩压定义为:1 个月至 1 岁小于 70 mm Hg,1 至 10 岁小于(70 mm Hg + 2 × 年龄),11 至 17 岁小于 90 mm Hg

过敏性反应的 4 点分级(Ring and Messmer's 4-point grading system):1 级指皮肤症状、轻微发热反应或两者兼有,4 级指心脏或呼吸骤停

检测和预测

高危人群风险因素

  • 潜在过敏原:食物、药物、昆虫叮咬和乳胶
  • 潜在潜在风险因素:肥大细胞疾病和遗传性α-胰蛋白酶血症
  • 风险共因素:运动、酒精和高温

基于机器学习预测的诊断增强:

  • 将物理特征与遗传数据联系起来,以帮助发现新的药物靶点
  • 通过分析存储在电子病历中的治疗结果和患者数据来识别现有药物的新用途
  • 基于历史数据趋势的关键诊断标准,实现更快、更准确的诊断
  • 根据患者的既往过敏、过敏家族史和患者特异性敏感性等因素来评估过敏性休克

其他常见诊断方法:

  • 穿戴式设备,用于监测生命体征(如心率、血氧饱和度),以检测过敏性休克的早期迹象
  • 图像识别,通过分析皮肤症状图像,如荨麻疹或肿胀,来帮助诊断过敏性休克
  • 通过智能手机麦克风分析声音和呼吸模式,以检测过敏性休克的早期迹象,比如呼吸困难
  • 通过手机录音来有效地区分哮喘的气管呼吸音和正常声音,识别过敏性休克期间的喘鸣

范德堡大学开发的过敏性休克警报器,这是一种作为手表佩戴的可穿戴健康监测设备。它监测佩戴者的血氧饱和度,如果读数低于 94%,则通过语音发出警报,并向附近目睹过敏性休克的旁观者提供治疗指导

其他资料补充:

个性化治疗

应急准备:携带自动注射肾上腺素(如 EpiPens)并在出现过敏性休克迹象时使用它们

治疗方案:指南推荐肾上腺素作为一线治疗,辅以抗组胺药和皮质类固醇等联合治疗

个性化治疗:根据历史数据模拟各种治疗方案,以确定针对个体患者的最有效干预措施

参考:Artificial intelligence and machine learning for anaphylaxis algorithms

洗衣符号

2025-04-18 10:41:00

水洗符号

缓和处理,在设置洗衣机档位时可以选择「轻柔」或跳过甩干程序

漂白符号

干燥符号

熨烫符号

熨烫标识旁还会附有文字说明,比如:反面熨烫、湿熨烫、垫衬布熨烫等

专业维护

如果衣物的标签中包括了专业维护的符号,那就送去洗衣店吧

参考:

流形学习降维 UMAP

2025-04-10 16:17:00

UMAP 算法

  • 全称为均匀流形近似与投影,Uniform Manifold Approximation and Projection
  • UMAP 是一种基于黎曼几何和代数拓扑理论框架的数据降维与可视化算法
  • UMAP 能同时捕捉数据的局部和全局结构,可拓展性强,对嵌入维度没有限制
  • MAP 不具备PCA 或因子分析等线性技术可以提供的解释性(因子载荷)

UMAP 定义的概念解释与补充:

  1. Uniform 均匀假设:通过空间的扭曲,对样本稀疏/密集的位置进行收缩或拉伸
  2. Manifold 流形:一种拓扑空间,每个点的附近局部类似于欧几里得空间
  3. Approximation 近似:用一组有限的样本组(而不是完整集合)来近似流形
  4. Projection 投影:空间对象从高维空间到低维空间的映射

由于均匀假设(空间是扭曲的),导致距离的度量只能是局部的,而不是整个空间通用的

常见的一维流形:线和圆,但不包括类似数字8的形状 常见的二维流形(又名曲面):平面、球体、环面等

UMAP 的算法过程分两步:(1)学习高维空间中的流形结构(2)找到该流形的低维表示

步骤 1:学习高维空间中的流形结构(图源 - UMAP 官方文档):

  1. 使用 k 近邻算法找到每个样本点在高维空间中的 $k$ 个近邻点,组成 $k$ 邻域图
  2. 计算样本点 $i$ 及其近邻点 $j$ 之间的距离 $d_{ij}$,用于 $k$ 邻域图边权重 $w_{ij}$ 的初始化 $$

w_{ij}=\exp(\frac{-max(0,d_{ij}-\rho_{i})}{\sigma_{i}}) $$ - $k$ 最近邻的数量,用于控制算法抽取数据的局部或全局结构;$k$ 取值越小,算法的降维结果更倾向于捕捉原始数据中的局部结构;$k$ 取值越大,算法的降维结果更倾向于捕捉原始数据中的全部结构 - $\rho_{i}=min(d_{ij}|1\leq j \leq k,d_{ij}>0)$ ,该参数的选择描述了 $k$ 邻域图的局部连通性约束(一般默认值=1),即每个节点至少与其他一个节点相连的概率为 100% - $\sigma_{i}$ 对应平滑归一化因子,取值的经验公式如下:$\sum_{j\mathop{=}1}^{k}\exp\left({\frac{-\operatorname*{max}(0,d(x_{i},x_{i_{j}})-\rho_{i})}{\sigma_{i}}}\right)=\log_{2}(k).$ 3. $k$ 邻域图的加权邻接矩阵 $A$ 的对称化处理:$B=A+A^{\mathsf{T}}-A\circ A^{\mathsf{T}}$

对称化处理深入理解:假设节点 a 和节点 b 之间存在两个权重边 $w_{ab}$ 和 $w_{ba}$,对称化处理也对应着边的合并操作 $w_{ab}+w_{ba}-w_{ab}\cdot w_{ba}$;如果原始边权重对应边的存在概率,那合并后的边权重就是至少存在一条边的概率

最终得到了满足局部连通性约束的邻域图(高维空间中的流形结构):

步骤 2:找到该流形的低维表示

  1. 随机初始化样本在低维嵌入空间的位置,并且节点间的距离是非变化的(低维空间不是扭曲的),而是标准的欧几里得距离;但为了避免低维嵌入空间可能存在的节点堆叠的问题,需要限制节点间的最小间距
  2. 以目标函数(交叉熵 CE)最小化为目标,用梯度下降法来指导样本在低维嵌入空间的坐标更新: $$CE=\sum_{e\in E}{w_{h}(e)}{log(\frac{w_{h}(e)}{w_{l}(e)})}+(1-{w_{h}(e)});l o g(\frac{1-{w}_{h}(e)}{1-{w}_{l}(e)})$$
    • $w_{h}(e)$ 表示边 $e$ 在高维空间的边权重;$w_{l}(e)$ 表示边 $e$ 在低维空间的边权重
    • 交叉熵的前项描述了样本在高维空间中的“吸引力”,$w_{h}(e)$ 越大,前项越小
    • 交叉熵的后项描述了样本在高维空间中的“互斥力”,$w_{h}(e)$ 越小,后项越小

Python 实现 - 官方 github 地址

UMAP 的四个常用超参数:

  1. n_neighbors:指定最近邻的数量,用于控制算法抽取数据的局部或全局结构
  2. local_connectivity:默认值为 1 ,意味着每个样本都至少与其他一个点相连
  3. min-dist:默认值为 0.1,低维嵌入空间中节点之间的最小距离(分离度)
  4. n-epochs:用于优化低维嵌入空间中节点表示的训练轮数

local_connectivityn_neighbors 分别决定了领域图节点数的下限与上限

UMAP VS t-SNE

  • 二者都擅长对数据的降维与可视化,都能捕捉到数据中的非线性关系
  • 相比于 t-SNE,UMAP 的算法运行性能更好(速度更快,能保留更多全局结构)
  • 二者在小数据集上表现无明显差距,但在大数据集上更推荐使用 UMAP 算法

不同降维可视化算法的对比(图源 - UMAP 官方论文):

随着数据维度的增加,UMAP 的性能表现明显优于其他模型(图源 - UMAP 官方论文): 参考:UMAP Dimensionality Reduction — An Incredibly Robust Machine Learning Algorithm

25年2季度论文集锦_生物医疗

2025-04-08 14:03:00

仅搜集收录了部分个人感兴趣的文章,并进行简单记录

1 概念科普

1.1 DeepSeek 赋能专病库建设与运营

2025 年 04 月 03 日 文章链接

DeepSeek 通过三层赋能体系重构专病库价值:

非结构化数据智能解析

  • 非结构化文本的精准解析,提取关键实体(如疾病名称、用药记录、手术操作)
  • 通过跨模态对齐算法(如CLIP改进模型),实现影像特征与文本描述的自动关联

标准化治理与质量控制

  • 内置 SNOMED CT、ICD-10 等标准术语库,自动识别并修正非标准表述
  • 基于孤立森林(Isolation Forest)和规则引擎,实时检测异常数据

疾病风险预测与分层管理

  • 基于 XGBoost、Transformer 时间序列模型,支持个性化风险预警
  • 采用结构因果模型(SCM),揭示变量间因果关系

个性化诊疗决策支持

  • 基于强化学习(RL)动态优化用药方案
  • 开发“文本+影像+基因”多模态诊断模型

科研效率革命性提升

  • 集成AutoML工具(如DeepSeek-AutoFE),自动筛选关键变量
  • 基于生成对抗网络(CTGAN),合成符合真实分布的虚拟患者数据

联邦学习驱动的跨机构协作

  • 采用 DeepSeek-FL 框架联合训练模型
  • 数据使用记录上链,确保贡献方权益可追溯

动态随访与闭环管理

  • 基于语音识别(Whisper)和意图理解模型,实现自动电话/短信随访
  • 实时监测专病库数据,自动触发预警(比如不良反应)

1.2 荟萃分析:LLMs 诊断能力不及专业医生,部分超越非专业医生

2025 年 4 月 18 日 文章链接

对 83 篇研究论文进行了 Meta 分析,以评估生成式人工智能在医学领域的诊断能力

  • 涉及GPT-4(最常用)、Llama3 70B、Gemini 1.5 Pro和Claude 3 Sonnet等多种AI模型
  • 结果显示,AI模型的平均诊断准确率为52.1%,与非专家医生相当;但专家医生的表现优于AI,准确率差距为15.8%。;AI在皮肤科表现突出,但在泌尿科的结论普适性受限。
  • 研究显示,生成式AI具有巨大潜力,但仍面临挑战研究强调AI在医学教育中的潜力,可用于病例模拟和技能评估,但同时也提出了透明度和偏见方面的担忧,并呼吁开发清晰、符合伦理且经过充分验证的AI应用

2 模型预测

2.1 预测急性低氧性呼吸衰竭患者高流量鼻插管治疗的结果

2025 年 04 月 05 日 文章链接

高流量鼻导管(HFNC)治疗失败:定义为 HFNC 治疗后24小时内需进行无创通气(NIV)、气管插管+机械通气,或死亡。

现有的临床指标:

  • ROX = SpO₂ / (FiO₂ × 呼吸频率)
  • MROX = PaO₂ / (FiO₂ × 呼吸频率)
  • ROX-HR = 100 × SpO₂ / (FiO₂ × 呼吸频率 × 心率)
  • MROX-HR = 100 × PaO₂ / (FiO₂ × 呼吸频率 × 心率)
  • 以及 HACOR 评分、SOFA 评分、PaO₂/FiO₂、SpO₂/FiO₂ 和 HR/SpO₂ 比值。

数据说明:

  • 2018年至2023年在意大利摩德纳大学医院呼吸ICU接受HFNC治疗的184例AHRF患者的治疗前2小时内的测量数据进行训练(其中37%为HFNC治疗失败)
  • 外部验证数据集包括567例AHRF患者(22%失败率),其中510例来自巴西最近的RENOVATE试验,57例来自美国的MIMIC-IV和eICU数据库

主要结果:

  • 支持向量机(SVM)模型在所有测试情境中,其内部与外部预测性能均优于所有临床指标
  • 在对567例患者的外部验证中,SVM模型准确率为73%、灵敏度73%、特异度73%,AUC为0.79
  • 当将动脉血气(ABG)数据纳入模型训练时,SVM模型在MIMIC-IV/eICU数据集中的外部验证表现为:准确率83%、灵敏度84%、特异度82%、AUC为0.82

基于SVM模型的决策支持工具,比现有临床指标更为准确的HFNC治疗早期结局预测

2.2 利用自然语言处理和机器学习改进过敏性休克的识别

2022 年 10 月 11 日 文章链接

数据说明:

  • 2015-2019 年在美国西北部 2 家综合医疗机构的 516 名过敏性休克潜在事件
  • 训练集:239 个潜在事件中有 154(64%)符合过敏性休克的裁决标准
  • 验证集:277 个潜在事件中有 180(65%)符合过敏性休克的裁决标准

潜在事件的判定路径

  • 路径 1:潜在过敏性休克事件包括急诊或住院期间被诊断为过敏性休克的遭遇
  • 路径 2:门诊期间被诊断为过敏性休克,并在同一天从任何地点诊断出支气管痉挛、喘鸣或低血压,以及/或心肺复苏、肾上腺素或苯海拉明注射的程序代码

特征说明:

  • 47 个结构化特征:人口统计学、符合资格的医疗接触环境、过敏性休克的潜在原因(食物、药物、血液制品或疫苗,或未指定)、近期免疫疗法或静脉对比剂成像、临床干预(例如,肾上腺素、血管加压素、心肺复苏、插管、胰蛋白酶实验室、免疫学随访)、过敏反应史以及竞争性诊断史,包括血管神经性水肿、慢性呼吸系统疾病和严重感染
  • 100 个非结构化特征:先通过概念总结、知识库、NLP 实体识别等方式,构建了 468 个候选 NLP 协变量;然后根据频率分布和专家判断保留了 100 个 NLP 协变量
  • 三种特征筛选策略:LASSO 正则化,基于中位数聚类(PAM),全部保留

建模结果:

  • 结构化特征 Top5:1)既往过敏反应诊断的年数,2)前一年的过敏反应诊断,3)同一天接受任何影像学检查,以及 4)抗组胺药或 5)皮质类固醇的出院处方
  • 非结构化特征 Top5:1)≥2 次低血压的肯定提及;2)在提及突然发作、肾上腺素注射或过敏性休克诊断时,任何关于呼吸衰竭和血压降低的描述或观察入组;3) ≥2 次皮肤/粘膜受累的肯定提及,以及与过敏性休克诊断提及相邻的呼吸衰竭或血压降低;4) ≥2 次喘鸣的肯定提及;以及 5) 皮肤/粘膜受累和血压降低的描述,与突然发作、肾上腺素给药、过敏性休克诊断或观察入组的提及相邻

2.3 注射药物过敏性休克的 AI 预测模型

2024 年 04 月 05 日 文章链接

数据说明:

  • JADER 数据库,包括 2004 年 4 月至 2020 年 12 月的不良药物反应报告
  • 筛选出 947 种相对更容易导致“过敏性休克”的不良反应药物进行分析
  • 根据分析和给药途径分别排除了320 种和 400 种药物,最终保留 227 种
  • 使用化学性质和结构相似性作为特征变量,采用主成分分析进行降维

建模方法:逻辑回归、LASSO、XGBoost、RF、SVM 和 NNW 等六种模型的集成

最终建模结果(多模型集成后的交叉验证 AUC=0.85)

2.4 基于机器学习的全身麻醉期间过敏性休克的危险预测分析

2022 年 12 月 文章链接

数据说明:

  • 2017 年 1 月至 2019 年 1 月期间所有麻醉病例的麻醉记录
  • 优先收集了 45 例过敏性休克阳性患者的完整术前临床记录
  • 收集接受全身麻醉的 247 例过敏性休克阴性患者的临床数据
  • 基线数据(共 148 个变量):(1)基本资料,如性别、年龄、体重指数、Brinkmann 指数、饮酒史、过敏史、麻醉暴露史和医疗状况,共计 21 个变量;(2)正在进行的药物治疗(七个变量);(3)术前检查数据,如生化筛查、全血计数、血浆凝血试验和术前输血试验(90 个变量);(4)麻醉相关药物(30 个变量)

特征选择方法:基于支持向量机(SVM)的递归特征消除(RFE)、卡方分析、基于相关性的特征选择(CFS)和信息增益率(IGR),最终筛选了 75 个特征用于模型构建

最终建模结果:线性判别分析结合递归特征消除表现出良好的性能,使用 25 个特征进行分类时,准确率为 0.867,马修斯相关系数(MCC)为 0.558。结合递归特征消除的逻辑回归模型也显示出足够的性能,使用六个特征进行分类时,准确率为 0.858,MCC 为 0.541

t-SNE 降维可视化

2025-04-07 15:18:00

t-SNE 算法

  • 全称为 t 分布-随机邻近嵌入(t-distributed Stochastic Neighbor Embedding)
  • 该算法将高维空间中的数据映射到低维空间中,并保留数据集的局部特性
  • t-SNE 算法能够捕捉数据间的非线性关系,数据可视化效果好,常用于探索性数据分析
  • t-SNE 算法的缺点主要是占用内存较多、运行时间长,容易丢失大规模信息 (集群间关系)

算法过程概述:

  1. 计算原始高维空间中数据点之间的相似度:对于样本 $i$,算法会使用以 $i$ 为中心的高斯分布来计算其他数据点的条件概率 $P_{j|i}$,进而得到样本 $i$ 和样本 $j$ 在高维原始空间的相似度 $P_{i,j}$ $$

P_{j|i}=\frac{\exp(-||x_{i}-x_{j}||^2/2\sigma^2)}{\Sigma_{j}\exp(-||x_{i}-x_{j}||^2/2\sigma^2)} , \ \ \ \ \ P_{ij}=\frac{P_{j|i}+P_{i|j}}{2N} $$

$\sigma$ 是可调节的超参数(perplexity);$N$ 表示样本数;右侧公式是为了确保相似度矩阵的对称性

  1. 计算低维嵌入空间中数据点之间的相似度,先使用 $t$ 分布(一般自由度为 1)随机初始化所有样本的位置,样本间的相似度 $Q_{ij}$ 的计算同高维空间中的计算过程(只是不再需要额外的对称化处理)
  2. 定义目标函数为原始空间和嵌入空间的联合概率分布的KL散度,然后通过梯度下降法更新样本在嵌入空间的位置,追求低维空间中的样本间相似度尽可能接近高维空间中的相似度

长尾性质:t 分布的长尾性质允许在低维空间中更好地分离远离的点,这有助于避免 PCA 降维中容易存在的“拥挤”现象,即在低维空间中不同簇之间的点被压缩在一起

t-SNE 算法示例:

# 基于 t-SNE 算法对手写数字数据集 MINIST 进行可视化
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
from sklearn import datasets
from sklearn import manifold
%matplotlib inline

# 获取 MNIST 数据集(国内网络可能下载失败)
data = datasets.fetch_openml(
    'mnist_784', version=1, return_X_y=True)
pixel_values, targets = data
targets = targets.astype(int)
single_image = pixel_values[1, :].reshape(28, 28)
# plt.imshow(single_image, cmap='gray') 单个样本的可视化

# 对数据进行t-SNE转换
tsne = manifold.TSNE(n_components=2, random_state=42)
transformed_data = tsne.fit_transform(pixel_values[:3000, :])

tsne_df = pd.DataFrame(
np.column_stack((transformed_data, targets[:3000])),
    columns=["x", "y", "targets"])
tsne_df.loc[:, "targets"] = tsne_df.targets.astype(int)
grid = sns.FacetGrid(tsne_df, hue="targets", size=8)
grid.map(plt.scatter, "x", "y").add_legend() # 可视化