Чему я научился при использовании 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 квадратный корень, можно использовать для переменных, которые не удовлетворяют предположению о линейности.

Размер образца: Набор данных должен быть достаточно большим, учитывая количество переменных-предикторов.

Предварительная обработка данных: Обработка выбросов и категориальных переменных (с помощью горячее кодирование или кодирование меток) рекомендуется. Кроме того, он предлагает обработать пропущенные значения, но это не относится к моим данным, поскольку пропущенных значений нет.

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 написал код Python на основе приведенного выше кода SQL, но он работает неправильно. Поэтому я критикую 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 раз бросаете шестигранный кубик. Какова вероятность того, что выпадут две единицы, три двойки, одна тройка, ноль четверок, три пятерки и одна шестерка?»

Вероятность вычисляется таким образом.

 

Чему я научился, используя 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.

Отметка времени:

Больше от КДнаггетс