十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ML-For-Beginners 聚类可视化实战:用散点图探索尼日利亚音乐数据并完成 5 图研究笔记

ML-For-Beginners 聚类可视化实战:用散点图探索尼日利亚音乐数据并完成 5 图研究笔记 ML-For-Beginners 聚类可视化实战用散点图探索尼日利亚音乐数据并完成 5 图研究笔记【免费下载链接】ML-For-Beginners12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners导读本文围绕 ML-For-Beginners 第 5 课「聚类与可视化」5-Clustering/1-Visualize配套作业展开目标是在聚类建模之前使用散点图等可视化手段摸清数据分布、发现自然的对象分组并完成一份包含5 个良好文档化散点图的研究 notebook。读完本文你将掌握 scatter plot 的多种形态基础散点、FacetGrid 分组散点、jointplot 联合分布、KDE 密度叠加、pairplot 多变量矩阵学会用 seaborn/matplotlib 在真实数据集5-Clustering/data/nigerian-songs.csv上开展探索性数据分析EDA并知道如何满足作业的「Vorbildlich卓越」评价标准。作业目标为聚类准备数据在translations/de/5-Clustering/1-Visualize/assignment.md即本作业的德语译本英文原版位于 5-Clustering/1-Visualize/assignment.md中任务非常明确在本课中你已经掌握了一些可视化技术来为聚类准备数据尤其是散点图Streudiagramme在识别对象分组时非常有用。研究创建散点图的不同方法与不同库并把你的工作记录在一个 notebook 中。你可以使用本课的数据、其他课的数据或自己获取的数据请在 notebook 中注明数据来源。绘制若干散点图并解释你的发现。评价标准Bewertungskriterien作业附带的评分表直接决定交付物形态标准卓越Vorbildlich合格Angemessen待改进Verbesserungswürdig交付物提交一个包含5 个良好文档化散点图的 notebook提交少于 5 个散点图且文档化程度较低提交一个不完整的 notebook因此要拿到满分最低交付物就是一个 notebook 5 张来源明确、每张都配有文字解释的散点图。本文后续给出可直接复用的 5 图模板与评分自检清单。数据基础理解你要可视化的对象推荐使用本课自带的尼日利亚 Spotify 歌曲数据集5-Clustering/data/nigerian-songs.csv。该文件共 530 条记录、16 列包含name歌名、album、artist、artist_top_genre艺术家主流流派、release_date、length毫秒、popularity0–100 热度、danceability、acousticness、energy、instrumentalness、liveness、loudness、speechiness、tempo、time_signature。其中 0–1 区间的音频特征danceability、energy、acousticness 等非常适合作为散点图的两个坐标轴。先按主课程 README5-Clustering/1-Visualize/README.md的流程完成数据加载与清洗这是做散点图之前的必要准备import matplotlib.pyplot as plt import pandas as pd import seaborn as sns df pd.read_csv(5-Clustering/data/nigerian-songs.csv) df.info() # 530 entries, 16 columns, 无缺失值 df.isnull().sum() df.describe()主课程还建议两步关键清洗去掉artist_top_genre为Missing的行Spotify 未分类的噪声只保留三大主流流派afro dancehall、afropop、nigerian pop并过滤掉popularity 0的歌曲df df[df[artist_top_genre] ! Missing] df df[(df[artist_top_genre] afro dancehall) | (df[artist_top_genre] afropop) | (df[artist_top_genre] nigerian pop)] df df[(df[popularity] 0)]课程中的相关性热力图df.corr(numeric_onlyTrue)sns.heatmap提示唯一较强的相关性出现在energy与loudness之间其余特征相关性较弱——这意味着散点图不会呈现干净的对角线而更可能呈现重叠的云团恰好是聚类前「数据有多难分」的直观预判。散点图方法库与研究路线作业要求「研究不同的方法和不同的库」这是本作业与研究型文章的精华所在。围绕同一数据集可以按以下路线展开对比matplotlib 原生plt.scatter最底层、最灵活适合快速查看两个连续变量的关系但不自带分组配色与统计叠加。seabornsns.scatterplot直接支持hue按流派着色、size、style是分组散点图的第一选择。seabornFacetGridplt.scatter按类别分面课程中正是用它同时绘制三个流派的 popularity–danceability 散点见下文。seabornjointplot把两个变量的分布直方图/密度与散点合并到一张图是探索联合分布的最佳工具。seabornpairplot一次生成多变量的散点图矩阵适合从 4–5 个音频特征中快速扫描候选「可分对」。其他库可选加分项plotly.express.scatter交互式缩放/悬停、altair声明式语法等可用于「研究不同库」的差异化对比。建议在 notebook 中为每个库/方法单独建一个 Markdown 标题 代码单元格 结论文本这就是「良好文档化」的体现。5 图模板可直接落地的完整示例以下 5 张图构成一份能达到「卓越」档的作业 notebook全部基于清洗后的df约 292 行、三流派。图 1基础分组散点seaborn scatterplotplt.figure(figsize(10, 7)) sns.scatterplot(datadf, xpopularity, ydanceability, hueartist_top_genre, alpha0.7) plt.title(Popularity vs. Danceability by Genre) plt.show()文档化解释要点三流派在 popularity–danceability 平面上高度重叠未形成明显分离的簇alpha0.7用于缓解点重叠overplotting。图 2FacetGrid 分组散点课程同款课程 README 中的原始写法为sns.FacetGrid(df, hueartist_top_genre, height5) \ .map(plt.scatter, popularity, danceability) \ .add_legend()新版本 seaborn 中size参数已更名为height解决方案 notebook 5-Clustering/1-Visualize/solution/notebook.ipynb 中运行时会给出对应 UserWarning。运行结果见下图三流派均围绕某一中心区域收敛印证了「尼日利亚听众的流行度–舞蹈性品味在三大流派间趋于一致」的课程观察。文档化解释要点分组着色让我们判断「流派」是否足以成为聚类的自然标签结论是仅凭这两个轴难以区分流派聚类算法需要更多特征。图 3jointplot 联合分布散点 KDEsns.set_theme(styleticks) g sns.jointplot(datadf, xpopularity, ydanceability, hueartist_top_genre, kindkde)该图用 KDE核密度估计以连续概率密度曲线表示数据可以看到围绕某一收敛点形成的同心圆状等高线课程生成的示例见下非常适合解读多个分布的叠加。文档化解释要点三个流派在密度等高线上大致对齐KDE 能揭示散点图易被遮挡的高密度区域是「散点图家族」的重要补充。图 4多变量扫描pairplotsns.pairplot(df[[popularity, danceability, energy, loudness, artist_top_genre]], hueartist_top_genre, diag_kindkde)文档化解释要点一次输出 4×4 散点矩阵快速定位哪些特征对更可能产生可分簇例如 energy–loudness 因相关性较强而呈带状其他组合为弥散云团。这也是「用散点图缩小候选特征集」的典型工作流。图 5交互式散点不同库的对比研究import plotly.express as px fig px.scatter(df, xpopularity, ydanceability, colorartist_top_genre, hover_data[name, artist], titleInteractive Scatter: Popularity vs Danceability) fig.show()文档化解释要点与静态库对比plotly 支持悬停查看具体歌曲如歌名、艺术家、缩放与图例筛选适合在「研究不同库」的对比小节中作为差异化结论并请在 notebook 中注明「数据来源ML-For-Beginners 仓库 5-Clustering/data/nigerian-songs.csv」。完成度自检与提交流程交作业前对照评分表逐项检查数量notebook 中至少 5 张散点图或同类分布图文档化每张图前有目标说明、图后有 2–3 句发现总结涉及判断如「是否存在天然分组」「哪些特征对更可分」数据来源使用本课数据时注明nigerian-songs.csv自备数据则必须注明出处可复现notebook 自包含import、数据读取与清洗步骤重新运行可复现全部图表。主课程 README 还给出了一个可选的预习挑战为「生产环境中可能用到的各种聚类算法」绘制一张对照表并思考各自要解决的问题如 K-Means 适用于通用归纳式任务、DBSCAN 适用于非平坦几何与密度不均的数据可将它作为 notebook 的结尾小节把散点图探索的结论数据是否可分、大致簇数与下一课 K-Means 的选择理由衔接起来。小结本作业的本质是一次「以散点图为核心的聚类前探索」训练先在真实音乐数据上完成加载与清洗再用多种方法与库绘制 5 张以上散点图围绕「是否收敛、能否分组、哪个特征对可分」输出文字结论。沿用主课程的数据管线5-Clustering/1-Visualize/README.md、参考解决方案5-Clustering/1-Visualize/solution/notebook.ipynb即可产出一份可直接用于下一课 K-Means 实验的高质量研究笔记。【免费下载链接】ML-For-Beginners12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表