我从使用 ChatGPT 进行数据科学中学到了什么 - KDnuggets

我从使用 ChatGPT 进行数据科学中学到了什么 – KDnuggets

源节点: 3093078

我从使用 ChatGPT 进行数据科学中学到了什么
图片作者
 

我从使用 ChatGPT 中学到了一个教训。它对数据科学非常有帮助,但您必须仔细检查它输出的所有内容。它非常适合某些任务,并且可以非常快速且准确地完成它们。对于其他一些任务,这已经足够了,您必须提示几次。我发现 ChatGPT 完全不擅长一项任务。

您可以将数据集附加到 ChatGPT 消息中,通过给出几个简单的指令,ChatGPT 可以为您探索数据。

例如,我可以从中获取数据集 这个数据项目。我给出的指示是:

“使用所附数据进行描述性统计分析。包括以下这些:

  • 总结基本统计数据(平均值、中位数、标准差等)。
  • 找出缺失的值并提出处理它们的策略。”

它返回如下所示的摘要。它对每个变量进行相同的计算。

年龄:

  • 平均年龄:28.79 岁
  • 标准差:6.94 年
  • 范围:18至50岁

它还发现数据集中没有缺失值。

如果您还需要这些计算的Python代码,您可以提示它编写它们。

要加载数据集,请使用此代码。

aerofit_data = pd.read_csv(file_path)

对于基本统计,它给出了这个。

basic_stats = aerofit_data.describe()

您可以使用此代码检查缺失值。

missing_values = aerofit_data.isnull().sum()

此外,我可以要求 ChatGPT 可视化关键变量的分布并检测潜在的异常值和异常情况。

它为关键变量创建直方图和箱线图:年龄、收入和里程。它检测到收入和里程分布中可能存在的异常值。

 

我从使用 ChatGPT 进行数据科学中学到了什么
由作者/ChatGPT 创建
 
我从使用 ChatGPT 进行数据科学中学到了什么
由作者/ChatGPT 创建
 

它还解释了可视化。因此,它注意到收入分配是右偏的,这表明大多数客户的收入处于较低水平,而获得较高收入的客户则较少。箱线图表明高端存在一些异常值。

 

我从使用 ChatGPT 进行数据科学中学到了什么
由作者/ChatGPT 创建
 
我从使用 ChatGPT 进行数据科学中学到了什么
由作者/ChatGPT 创建
 

同样的解释也适用于英里分布:右偏和高端的异常值。

考虑到数据的性质,这表明这些异常值不一定是错误,而是代表了特定的客户群。关于偏斜分布,它建议进行变换(例如,对数变换)来标准化数据。

当然,您也可以要求它为这些可视化编写Python代码。

我可以使用相同的数据并询问 ChatGPT 是否适合 逻辑回归。如果不是,我应该怎样做才能将其转变为合适的?

它回答说我的数据主要适合连续数据的描述性和推理性分析。

这些是转换数据以进行逻辑回归的建议方法。

创建二元结果: 根据使用情况变量的中值划分,将客户分类为“高使用率”或“低使用率”,创建二元结果。此外,二元结果可以是“购买跑步机”与“不购买跑步机”。

检查多重共线性: 使用 相关矩阵 or 方差通货膨胀因子 (VIF) 检查多重共线性。如果存在多重共线性,可以删除或合并相关变量。

特征缩放: 虽然模型拟合的特征缩放对于逻辑回归来说不是必需的,但它对于 收敛。对于尺度显着不同的特征尤其如此。

解决非线性问题: 这些转变,例如 日志 or 平方根,可用于不满足线性假设的变量。

样本数量: 考虑到预测变量的数量,数据集必须足够大。

数据预处理: 处理异常值和分类变量(通过 one-hot 编码或标签编码)建议。此外,它建议处理缺失值,但这不适用于我的数据,因为没有缺失值。

ChatGPT 实际上可以在数据科学项目的每个阶段提供帮助。您可以提示它编写网页抓取代码。您可以指示它探索并为机器学习算法准备数据。它还可以为您提供用于选择正确算法、数据集分割、A/B 测试和性能提升算法的代码。最后,您还可以要求 ChatGPT 为您编写模型部署的代码。

虽然 ChatGPT 可以做到这一切,但您很可能不会立即获得完全符合您要求的代码。所以,你必须了解你想要实现什么并检查代码。您可能必须提示 ChatGPT 进行代码更正,并提供有关更改内容的更多说明。

ChatGPT 可以帮助仍在学习新编码语言的用户。想象一下,你是一个 SQL 高手,并且你没有解决任何问题 这个面试问题。但是,您希望将 Python 添加到您的技能中。 ChatGPT 可以帮助您。您可以复制 SQL 代码并要求 ChatGPT 将其转换为 Python。

那么,SQL代码就是这样的。

SELECT 
  company, 
  profit 
FROM 
  (
    SELECT 
      *, 
      rank() OVER (
        ORDER BY 
          profit DESC
      ) as rank 
    FROM 
      (
        SELECT 
          company, 
          sum(profits) AS profit 
        FROM 
          forbes_global_2010_2014 
        GROUP BY 
          company
      ) sq
  ) sq2 
WHERE 
  rank = 3;

ChatGPT根据上面的SQL代码编写了Python代码,但运行不正常。所以我抨击 ChatGPT 没有编写正确的代码。我要求它再试一次,因为输出与 SQL 代码不同。它再次尝试并返回正确的结果。

import pandas as pd

# Assuming 'forbes_global_2010_2014' is a pandas DataFrame with columns 'company' and 'profits'
# Since we don't have the actual data, this code assumes that the DataFrame is already loaded

# Step 1: Group by company and sum the profits
company_profits_sum = forbes_global_2010_2014.groupby('company')['profits'].sum().reset_index()

# Step 2: Rank the companies by profit in descending order
company_profits_sum['rank'] = company_profits_sum['profits'].rank(ascending=False, method='max')

# Step 3: Filter the top 3 companies
top_companies = company_profits_sum[company_profits_sum['rank'] = 3]

# Final selection of columns
result = top_companies[['company', 'profits']].sort_values('profits', ascending=False)

result  # This will display the top 3 companies by profit

正如您所看到的,您会得到一个很好的代码,每个代码块之前都有注释。为了提高您的学习能力,您可以要求它解释此代码。这样,您将更深入地了解每行代码的作用和方式。

当我说不好时,我的意思是非常糟糕!它达到了使用正确的公式并插入正确的值的水平,但不知何故设法搞乱了不那么复杂的计算。

看看这个。我要求它解决这个问题:“假设你掷一个六面骰子 10 次。掷出两个 1、三个 2、一个 3、零个 4、三个 5 和一个 6 的概率是多少?”

它以这种方式计算概率。

 

我从使用 ChatGPT 进行数据科学中学到了什么
 

计算阶乘时会出现混乱。而且它的风格也做到了这一点!完全错误的说法2! = 12。不是,是 2。你怎么能搞砸一个简单的计算,比如 2×1 = 2?这实在是太可笑了!

更有趣的是,有一次,3! = 36,第二次是3! = 6. 值得赞扬,因为它至少有一次是正确的。

当我要求它在没有进一步解释的情况下更正计算时,它会再次计算并得出概率 0.0001389。我简直不敢相信自己的眼睛!它可以使用完全相同的公式和值,并得出仍然错误的不同结果!

我又要求它修正计算,它终于返回了正确的结果:0.0008336。第三次是魅力!

诚然,这些错误是ChatGPT 3.5犯的。我向 ChatGPT 4 询问了同样的问题,它第一次尝试就得出了正确的计算结果。为了安全起见,您还可以使用一些数学插件。

从这一切中我们学到的主要教训是,ChatGPT 是一个糟糕的主人,但却是一个非常好的仆人。它对于编写代码、调试、分析和可视化数据很有帮助。然而,永远不要完全相信它,也不要在没有仔细检查的情况下接受它所写的内容。

检查它编写的代码,并检查计算。毕竟,您是一名数据科学家,而 ChatGPT 不是!第一次尝试时,您可能无法从 ChatGPT 获得所需的结果。但是给它更精确的指令并尝试几次可能会让你得到想要的结果。
 
 

内特·罗西迪 是一名数据科学家和产品战略。 他也是教授分析学的兼职教授,并且是 地层划痕,一个帮助数据科学家准备面试的平台,回答来自顶级公司的真实面试问题。 与他联系 推特:StrataScratch or LinkedIn.

时间戳记:

更多来自 掘金队