先看看示例
作者提供的示例,实际效果取决于你的输入和使用工具。
输入
示例文件 products.csv,列 price、weight、rating,共 30 行;无缺失;只做探索。
输出
编辑示例 · 未运行
import pandas as pd
import umap
from sklearn.preprocessing import StandardScaler
X = pd.read_csv("products.csv")[["price", "weight", "rating"]]
Z = StandardScaler().fit_transform(X)
embedding = umap.UMAP(n_neighbors=8, min_dist=0.2,
n_components=2, random_state=42).fit_transform(Z)
pd.DataFrame(embedding, columns=["u1", "u2"]).to_csv("embedding.csv", index=False)
# 对照:保持其余参数不变,将 n_neighbors 改为 15;不把坐标当作商品类别。方法说明
为高维特征构建低维表示,比较参数与随机种子对可视化和后续分析的影响。
具体任务
把高维样本投到二维查看:为特征矩阵选择预处理、距离度量和 UMAP 参数,生成可复跑绘图代码。
比较嵌入对参数的敏感性:固定随机种子,改变邻居数并并排观察,避免把一次分群当作结论。
必需材料
数值特征矩阵与列含义
探索目标和缺失值处理规则
可选材料
已有标签,仅用于着色或明确的监督任务
新样本及训练测试划分
使用门槛
能够运行 Python,并知道哪些字段不能进入特征矩阵。
这个 Skill 额外提供的方法
同时交付参数与对照方式,用户能判断图形是否稳定。
编辑示例(未运行)
观察 30 个商品的特征结构
任务:对商品的价格、重量和评分做二维探索。
输入:
示例文件 products.csv,列 price、weight、rating,共 30 行;无缺失;只做探索。
结果片段:
```python
import pandas as pd
import umap
from sklearn.preprocessing import StandardScaler
X = pd.read_csv("products.csv")[["price", "weight", "rating"]]
Z = StandardScaler().fit_transform(X)
embedding = umap.UMAP(n_neighbors=8, min_dist=0.2,
n_components=2, random_state=42).fit_transform(Z)
pd.DataFrame(embedding, columns=["u1", "u2"]).to_csv("embedding.csv", index=False)
# 对照:保持其余参数不变,将 n_neighbors 改为 15;不把坐标当作商品类别。
```
展示的是按给定列写成的代码片段,未生成真实嵌入或验证聚类。 此为编辑示例,未安装或运行上游 Skill。
首次任务
读取【特征文件】和【字段说明】,写 UMAP 二维探索脚本;固定随机种子,对照两组邻居数;验收:预处理可复现、标签不泄漏、报告不把二维图解释为因果。
必需材料:数值特征矩阵与列含义:【请填写或粘贴】;探索目标和缺失值处理规则:【请填写或粘贴】
验收方法
缩放和缺失处理是否与列类型匹配
种子、参数与软件版本是否记录
至少一组参数对照是否支持所述结构
依赖与准备
Python、umap-learn、NumPy、pandas 与 scikit-learn;绘图另需绘图库。Parametric UMAP 才需要额外深度学习依赖。
使用边界
二维距离与簇大小不能直接解释为真实类别或因果。
训练集外数据必须沿用训练时的预处理;监督标签不得泄漏到评估集。
排错
图里出现漂亮的簇但换参数就消失:并排比较邻居数、min_dist 和种子,把不稳定结构标记为探索线索。
新数据投影与旧图无法比较:保存并复用原 scaler 和 reducer,不对新数据重新 fit。
固定来源
https://github.com/K-Dense-AI/scientific-agent-skills/blob/065b734670d7d990627dbc06a05b5a99be33f1f1/skills/umap-learn/SKILL.md