探索性数据分析最终指南
#初学者 #python #eventdriven

探索性数据分析(EDA)是一个迭代过程,涉及可视化和汇总数据以获得见解并为进一步的分析提供信息,这使其成为任何数据分析过程中的关键步骤。
EDA在做出任何假设之前有助于查看数据。它可以帮助识别错误以及识别和更好地理解数据中的模式,检测异常值并找到有趣的关系。
EDA可以帮助回答有关标准偏差,分类变量和置信区间的问题。一旦EDA完成并绘制了洞察力,它的功能就可以用于建模的更复杂的数据分析。

探索性数据分析工具

  1. python::这是一种用于数据分析和可视化的编程语言。它为EDA提供了图书馆,例如Numpy,Pandas,Matplotlib和Seaborn等。

2. Tableau :这是一个可视化工具,可允许分析师创建交互式可视化和仪表板。它是用户友好的,并且具有广泛的可视化选项。

3. excel :这是一种流行的电子表格工具,可用于数据分析和可视化。它为数据汇总和可视化提供了几个内置功能,例如枢轴表和图表。

4. r :这是一种流行的编程语言,用于统计分析和数据可视化。它为数据探索和可视化提供了广泛的包装,例如ggplot2,dplyr和Tidyr。

探索性数据分析技术

  1. 数据收集和制备:这通常是EDA中的第一步。它涉及识别数据源,收集数据以及清洁和转换数据。数据清洁涉及删除或纠正任何不一致,错误或缺失的数据,而数据转换涉及将数据转换为合适的格式进行分析。

  2. 数据摘要:这使数据科学家能够更好地了解数据的主要特征。它涉及计算每个变量的均值,中位,模式,方差和标准偏差等摘要统计数据。此外,频率表和直方图可用于可视化数据的分布。

3. 数据可视化:这允许数据分析师在视觉上探索数据并识别模式和趋势。各种图形技术可用于可视化变量之间的关系并检测任何异常或异常值。

4. 数据探索:这涉及对数据进行进一步分析以识别模式和关系。这可以通过执行相关分析,回归分析和因子分析来确定变量之间的关系来实现。此外,聚类分析可用于将相似的数据点分组在一起并确定任何基本模式。

  1. 数据解释:数据解释涉及了解从数据探索和可视化获得的结果。它涉及解释结果的统计意义并确定变量之间的任何有意义的关系。
    探索性数据分析的过程

  2. 数据收集和准备:这通常是第一步。它可能涉及清洁和转换数据,处理缺失值和离群值并选择相关变量进行分析。

  3. 单变量分析:这涉及检查数据中的单个变量。这可以通过计算摘要统计数据,例如均值,中值和标准偏差,然后使用直方图,框图和密度图可视化数据的分布。它分为两个;非图形和图形。

3. 双变量分析:涉及检查数据中变量之间的关系。这可以通过创建散点图,相关矩阵和热图来完成。

4. 多元分析:涉及研究数据中多个变量之间的关系。这可以通过创建散点图矩阵,主成分分析和群集分析来完成。

5. 数据可视化:这允许探索数据中的复杂关系和模式。这可以使用各种图形工具,例如散点图,框图,直方图和热图。
示例
在此示例中,我们将分析一个包含有关钻石信息的数据集,包括其克拉重量,切割,颜色,清晰度和价格。
该代码将加载钻石数据集,执行各种数据清洁和探索任务,并使用Matplotlib和Seaborn创建多个可视化。这些可视化包括克拉重量的直方图,剪切的价格箱图,克拉重量的散点图和剪切颜色的价格,数值变量的相关矩阵以及主成分分析。

导入库

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

加载数据集

diamonds = pd.read_csv('diamonds.csv')

查看数据集的前五行

print(diamonds.head())

检查缺失值

print(diamonds.isnull().sum())

检查重复项

print(diamonds.duplicated().sum())

数据集的摘要统计

print(diamonds.describe())

克拉重量变量的直方图

plt.hist(diamonds['carat'], bins=30)
plt.xlabel('Carat Weight')
plt.ylabel('Frequency')
plt.title('Distribution of Carat Weight')
plt.show()

价格变量的盒装

sns.boxplot(x='cut', y='price', data=diamonds)
plt.xlabel('Cut')
plt.ylabel('Price')
plt.title('Price by Cut')
plt.show()

_克拉重量和价格的散点图,cut_
颜色

sns.scatterplot(x='carat', y='price', hue='cut', data=diamonds)
plt.xlabel('Carat Weight')
plt.ylabel('Price')
plt.title('Price vs. Carat Weight')
plt.show()

数值变量的相关矩阵

corr = diamonds[['carat', 'depth', 'table', 'price']].corr()
sns.heatmap(corr, cmap='coolwarm', annot=True)
plt.title('Correlation Matrix')
plt.show()

_主体组件分析_

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X = diamonds[['carat', 'depth', 'table', 'price']]
pca.fit(X)
X_pca = pca.transform(X)
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=diamonds['cut'])
plt.xlabel('PCA 1')
plt.ylabel('PCA 2')
plt.title('PCA of Diamonds Dataset')
plt.show()