从零开始学机器学习——聚类可视化
首要给咱们介绍一个很好用的学习地址:https://cloudstudio.net/columns
在上一章节中,咱们对聚类的相关常识进行了全面的介绍,旨在为咱们打下坚实的理论根底。今日,咱们的首要任务是深入探讨数据可视化的技能和办法。在之前的学习中,咱们现已触摸过回归剖析中的可视化技能,而今日咱们将专心于聚类剖析的可视化。咱们将学习怎么运用散点图、同心圆等可视化东西,以更直观地舆解聚类成果。
数据可视化——聚类
今日咱们的方针是从一个特定的文件中读取和剖析数据。该文件包含了很多的歌曲信息,包含多个字段,例如歌曲名称、音乐门户、歌唱家、盛行度、可舞性、发布时刻等。在咱们的剖析进程中,咱们将首要过滤出这份数据中最为杰出的三大门户,并提取相关数据。接下来,咱们将深入探讨这三大门户在其他字段上的相关性,并剖析其数据散布状况。
需求留意的是,本章节并不计划过多评论聚类算法及其详细作用,咱们的重点将放在怎么运用可视化东西来展现和了解这些数据。这将有助于咱们更直观地捕捉到数据中的趋势和形式,从而为后续的剖析打下根底。
过滤数据
首要,咱们需求引进一些要害的依靠包:
!pip install seaborn
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("../data/nigerian-songs.csv")
df.head()
接下来,咱们将对数据集进行开始检查,以了解其全体结构和内容。
运用以下指令,咱们能够全面检查数据的大致格局以及数据量等要害信息。
df.info()
df.isnull().sum()
df.describe()
df.info():快速了解数据的结构和列的类型。
df.isnull().sum():辨认哪些列存在缺失数据以及缺失的程度。
df.describe():首要用于数值型数据,供给了每列的根本计算特性,便于了解数据的散布状况。
咱们能够先检查一下describe办法输出的数据,这部分信息将为咱们供给重要的计算成果和数据散布状况。其他相关的内容咱们之前现已评论过,详细状况能够参阅附图。
数据挑选
接下来,咱们将对数据进行挑选,方针是提取出最盛行的三大音乐门户。为了完成这一方针,咱们将以artist_top_genre作为X轴,以便更明晰地调查数据的散布状况。以下是相应的代码:
import seaborn as sns
top = df['artist_top_genre'].value_counts()
plt.figure(figsize=(10,7))
sns.barplot(x=top[:5].index,y=top[:5].values)
plt.xticks(rotation=45)
plt.title('Top genres',color = 'blue')
如图所示,咱们提取出了前五个音乐门户,并成功辨认出其间的三个:afro dancehall、afropop以及nigerian pop。
请留意,因为在检查数据时未发现任何缺失值(即没有null数据),因而咱们决议不删去任何行,直接进行绘图。但是,假如你的数据会集存在缺失值,主张你在进行绘图之前,首要删去包含缺失值的行,以保证数据的完整性和图形的准确性。这样能够防止潜在的数据误差,保证剖析成果的可靠性。
df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
df = df[(df['popularity'] > 0)]
top = df['artist_top_genre'].value_counts()
plt.figure(figsize=(10,7))
sns.barplot(x=top.index,y=top.values)
plt.xticks(rotation=45)
plt.title('Top genres',color = 'blue')
咱们的数据挑选作业总算圆满完成。现在,咱们现已辨认出当时最受欢迎的三大门户,详细信息如图所示。
强相关性
同样地,让咱们再来检查一下热力求。这一部分内容咱们在回归剖析中现已详细解说过,因而在这里咱们将直接供给相关的代码。以下是详细的完成代码:
corrmat = df.corr(numeric_only=True)
f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corrmat, vmax=.8, square=True)
依据图片所示的数据剖析,咱们能够清楚地看到,仅有表现出强相关性的变量是能量(energy)与响度(loudness)之间的联络。这一点并不令人惊奇,因为喧闹的音乐往往伴随着极高的生机和激烈的节奏感。
接下来,咱们将深入探讨一种新的可视化办法,以协助咱们更好地舆解聚类剖析中的数据散布状况。
数据散布
同心圆
接下来,咱们将依据受欢迎程度和可舞性这两个目标进行数据剖析,详细方法包含制作同心圆和散点图。这些图表将协助咱们更直观地舆解数据的散布和趋势。当然,你也能够挑选其他字段进行比照剖析,完全能够依据个人的喜爱和需求进行调整。
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df.iloc[:, 6:8] = df.iloc[:, 6:8].apply(LabelEncoder().fit_transform)
sns.set_theme(style="ticks")
g = sns.jointplot(
data=df,
x="popularity", y="danceability", hue="artist_top_genre",
kind="kde",
)
因为数据散布和数据类型不一致,为了保证剖析的准确性和一致性,我决议将一切数据一致转换为整数格局。如图所示:
他的意图是成一个联合散布图,用于展现数据会集盛行度(popularity)和舞蹈性(danceability)之间的联络,一起经过不同色彩标识不同的音乐风格(artist_top_genre)
散点图
sns.FacetGrid(df, hue="artist_top_genre").map(plt.scatter, "popularity", "danceability",s=5) .add_legend()
一行代码即可调查其散点散布,如图所示:
一般来说,关于聚类剖析,运用散点图来展现数据的聚类作用对错常有用的,因而把握这种可视化技能对咱们了解数据的结构和形式至关重要。在接下来的课程中,咱们将使用经过过滤后的数据,选用 k-means 聚类算法来探究和辨认数据中以风趣方法堆叠的组。
总结
在本章节中,咱们深入探讨了数据可视化在聚类剖析中的使用。经过对歌曲信息数据集的剖析,咱们成功辨认了三大门户,并运用散点图和同心圆等可视化东西,直观地展现了数据的散布与趋势。可视化不只增强了咱们对数据的了解,还为后续的聚类剖析打下了坚实的根底。
经过这种方法,咱们不只能辨认出数据中的形式,还能为决议计划供给有力支撑。正如咱们所见,数据的可视化进程是一个探究性的旅程,它协助咱们在杂乱的数据中找到躲藏的联络和含义。接下来,咱们将使用 k-means 聚类算法,进一步发掘这些数据背面的故事。
我是尽力的小雨,一名 Java 服务端码农,潜心研究着 AI 技能的奥妙。我酷爱技能交流与共享,对开源社区充满热情。一起也是一位腾讯云创造之星、阿里云专家博主、华为如此享专家、掘金优异作者。
💡 我将不惜共享我在技能道路上的个人探究与经历,期望能为你的学习与生长带来一些启示与协助。
🌟 欢迎重视尽力的小雨!🌟