太好了,听起来你在使用ChatGPT进行探索性数据分析(EDA)的经历非常愉快

探索性数据分析(EDA)通常涉及一系列步骤和技术,这些步骤和技术有助于理解数据、数据结构和不同变量之间的关系。EDA 中常见的步骤和技术包括:

    • 数据收集(Data Collection):从数据库、文件、外部 API 等不同来源收集数据。

    • 数据清洗(Data Cleaning)
        • 处理缺失值:补充或删除缺失数据。

        • 处理异常值:识别和处理异常值。

        • 数据类型转换:确保使用正确的数据类型进行分析(例如,将字符串转换为日期)。

    • 数据画像(Data Profilling)
        • 使用描述性统计对数据集进行汇总。

        • 理解数据的基本结构(行数/列数、值的范围等)。

    • 单变量分析(Univariate Analysis)
        • 分析单个变量。

        • 使用均值、中位数、众数、方差、标准差等度量方法。

        • 可视化:使用直方图、箱形图、条形图对分类数据进行分析。

    • 双变量/多变量分析(Bivariate/Multivariate Analysis)
        • 探索两个或多个变量之间的关系。

        • 散点图、成对图用于连续变量。

        • 交叉表格、堆叠条形图用于分类变量。

        • 定量数据的相关性分析。

    • 分组分析(Grouped Analysis)
        • 基于类别或组聚合数据。

        • 分析不同群体之间的模式或差异。

    • 时间序列分析(Time Series Analysis)
        • 分析按时间顺序收集或索引的数据点。

        • 识别趋势、季节性和周期。

    • 模式和异常识别(Identifing Patterns and Anomalies)
        • 识别数据中出现的任何模式。

        • 检测异常或不想要的值。

    • 特征工程(Feature Engineering):创建新变量或修改现有变量以提高数据集对建模的适用性。

    • 数据可视化(Data Visualization)
        • 利用各种图表和图形对数据进行可视化。

        • 相关性用热力图,时间序列用折线图等。

    • 假设检验(Hypothesis Testing):根据数据模式制定和测试假设。

这些步骤中的每一步都可能涉及各种工具和编程语言,Python 和 R 是最流行的数据分析语言。Python 中的 Pandas、NumPy、Matplotlib、Seaborn 以及 R 中的 dplyr、ggplot2 等库通常用于 EDA 任务。根据数据的性质和所处理的具体问题,所使用的具体技术和工具可能会有很大差异。

3. 基于泰坦尼克号数据集的案例实现

这里,我们将使用比较有名的泰坦尼克号数据作为示例数据集(获取方式见文末)。按照上面的步骤指导 ChatGPT 帮我完成整个探索性分析案例。接下来,我将通过9个步骤指导 ChatGPT 帮我完成基于泰坦尼克号数据集的 EDA。

Step 1:数据收集(Data Collection)

这一步,我直接将数据集上传到聊天窗口,然后给 ChatGPT 以下指令:

ChatGPT

首先,我将加载数据集并初步了解它的结构,例如行数和列数、每列中的数据类型,以及前几行数据,从而了解我们正在处理的内容。让我们从这个初始步骤开始。

import pandas as pd# Load the datasettitanic_data = pd.read_csv(r'datasets/titanic.csv')# Display the basic information and the first few rows of the datasettitanic_data.info()titanic_data.head()

通过输出,我们可以看出,泰坦尼克号数据集由418行和12列组成。以下是这些列的简要概述:

    • PassengerId: Unique ID for each passenger.

    • Survived: Survival status (0 = No, 1 = Yes).

    • Pclass: Ticket class (1 = 1st class, 2 = 2nd class, 3 = 3rd class).

    • Name: Passenger’s name.

    • Sex: Passenger’s sex.

    • Age: Passenger’s age.

    • SibSp: Number of siblings/spouses aboard.

    • Parch: Number of parents/children aboard.

    • Ticket: Ticket number.

    • Fare: Passenger fare.

    • Cabin: Cabin number.

    • Embarked: Port of Embarkation (C = Cherbourg, Q = Queenstown, S = Southampton).

从初步检查来看,很明显:

图片[1]-太好了,听起来你在使用ChatGPT进行探索性数据分析(EDA)的经历非常愉快-山海云端论坛

    • “年龄”、“票价”和“客舱”列含有缺失值。

    • 每一列的数据类型似乎都合适,既有数值(整数和浮点数)数据,也有分类(对象)数据。

Step 2:数据清洗(Data Cleaning)

同样给它一个指令(后续每一步都会给 ChatGPT 指令,故不再赘述):

ChatGPT:

基本就是根据我的指令分步骤进行分析,具体实现如下:

    • 检测缺失值

# Inspecting missing valuesmissing_values = titanic_data.isnull().sum()missing_values

输出:

PassengerId      0Survived         0Pclass           0Name             0Sex              0Age             86SibSp            0Parch            0Ticket           0Fare             1Cabin          327Embarked         0dtype: int64

    • 检查数据类型

# Checking data typesdata_types = titanic_data.dtypesdata_types

输出:

PassengerId      int64Survived         int64Pclass           int64Name            objectSex             objectAge            float64SibSp            int64Parch            int64Ticket          objectFare           float64Cabin           objectEmbarked        objectdtype: object

    • 根据汇总统计信息识别潜在异常值

# Identifying potential outliers by looking at summary statisticssummary_statistics = titanic_data.describe()summary_statistics

基于上述分析及输出,我们可以得到:

缺失值(Missing Values)

    • Age: 86 missing values.

    • Fare: 1 missing value.

    • Cabin: 327 missing values.

数据类型(Data Types)

每一列的数据类型似乎都合适:

    • 数值数据(整型和浮点型):PassengerId, Survived, Pclass, Age, SibSp, Parch, and Fare。

    • 分类/字符串数据(对象类型):Name, Sex, Ticket, Cabin, and Embarked。

潜在异常值(Potential Outliers)

从汇总统计来看:

    • Age 列的范围很广(0.17——76岁),考虑到多样化的乘客人口统计数据,这是合理的。

    • SibSp 和 Parch 的范围都比较宽,但这反映了家庭规模的不同。

    • Fare 的范围也比较显著,最大值为512.3292,这似乎异常高,可能是一个异常值。

为了进一步检查潜在的异常值,特别是对 Fare 列,我们可以创建箱形图。这将为我们提供数据分布的可视化表示,并有助于识别极值。

我们将从潜在异常值的可视化检查开始,特别关注 Fare 和 Age 列,因为它们是关键的数值变量。我将为这些列创建箱形图,从而直观地检查分布并识别任何异常值。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容