DevGang
Авторизоваться

Как применить ChatGPT для построения графиков с помощью Python и Matplotlib

Хотите создавать впечатляющие графики и визуализации, но не знаете Python? Этот проект позволит вам без особых усилий генерировать код Python для создания графиков, используя ChatGPT. Просто опишите, как должен выглядеть ваш график, и ChatGPT сгенерирует код с помощью библиотеки Matplotlib. Теперь даже без опыта программирования вы сможете создавать профессиональные графики для своих данных. Не важно, кто вы: исследователь, аналитик данных или студент, ChatGPT поможет вам создавать информативные и эстетически привлекательные графики на Python.

Проект в JupyterNotebook доступен бесплатно в Cognitive Class.

Изучаем вопрос о конкретной области интересов

Вы хотите научиться строить графики в Python? Python предлагает множество способов визуализации данных, и Matplotlib — одна из самых популярных библиотек для этого. Давайте начнем с простого примера, чтобы вы могли получить представление о работе Matplotlib.

# using the provided by chatGPT to run in the notebook
import matplotlib.pyplot as plt
# Sample data
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
# Create a figure and an axes
fig, ax = plt.subplots()
# Plot the data
ax.plot(x, y)
# Add a title
ax.set_title('My Plot')
# Show the plot
plt.show()
Мой график
Мой график

Этот код создаст простой линейный график, отображающий ваши данные по осям x и y. 

Matplotlib — это мощный инструмент, и у вас есть множество вариантов для настройки графиков: можете менять стиль линий, добавлять названия осей, легенды и многое другое. 

Хотите узнать больше о Matplotlib и других библиотеках визуализации данных? Вот несколько полезных ресурсов:

* Документация Matplotlib: https://matplotlib.org/stable/index.html

* Учебник по Matplotlib: https://matplotlib.org/stable/tutorials/index.html

* Seaborn: Библиотека визуализации данных, основанная на Matplotlib: https://seaborn.pydata.org/

* Plotly: Библиотека для создания интерактивных графиков: https://plotly.com/python/

ChatGPT не только дает вам код, но и предоставляет дополнительные материалы, чтобы вы могли углубиться в изучение визуализации данных в Python.

Задаем уточняющие вопросы

Просто спросив «покажите мне больше примеров графиков на Python»  Фактически, chatGPT запоминает ваши предыдущие разговоры.
Результат: Вот еще несколько примеров графиков, которые вы можете создать на Python с помощью библиотеки Matplotlib:

Диаграмма рассеяния

import matplotlib.pyplot as plt

# Sample data
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

# Create a figure and an axes
fig, ax = plt.subplots()

# Plot the data
ax.scatter(x, y)

# Add a title
ax.set_title('My Scatter Plot')

# Show the plot
plt.show()
Точечный график
Точечный график

Барный график

import matplotlib.pyplot as plt

# Sample data
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

# Create a figure and an axes
fig, ax = plt.subplots()

# Plot the data
ax.bar(x, y)

# Add a title
ax.set_title('My Bar Plot')

# Show the plot
plt.show()
Барный график
Барный график

Круговая диаграмма

import matplotlib.pyplot as plt

# Sample data
labels = ['Apples', 'Bananas', 'Oranges']
sizes = [30, 45, 25]

# Create a figure and an axes
fig, ax = plt.subplots()

# Plot the data
ax.pie(sizes, labels=labels)

# Add a title
ax.set_title('My Pie Chart')

# Show the plot
plt.show()
Круговая диаграмма
Круговая диаграмма

Мы только начали знакомиться с возможностями Matplotlib. Существует множество других типов графиков, которые вы можете создавать с его помощью. Дополнительные сведения и примеры вы найдете в документации: https://matplotlib.org/stable/index.html.

Теперь давайте посмотрим, как построить график, используя реальный набор данных

Предложение нескольких примеров наборов данных

Прежде чем строить график, нам нужны данные. Какие наборы данных ты можешь предложить для обучения работе с Python? Важно, чтобы данные были достаточно просты для понимания и подходили для построения начальных графиков.

Набор данных Iris: Это небольшой набор данных, содержащий информацию о различных видах ирисов, включая длину и ширину чашелистиков и лепестков. Он часто используется как набор данных для начинающих для изучения методов машинного обучения и анализа данных. Вы можете загрузить набор данных Iris в Python с помощью модуля sklearn.datasets.

Набор данных Boston Housing: Этот набор данных содержит информацию о ценах на жилье в районе Бостона, включая медианную стоимость домов, уровень преступности и другие факторы. Он часто используется в качестве набора данных для начинающих при изучении методов регрессии. Вы можете загрузить набор данных Boston Housing в Python с помощью модуля sklearn.datasets.

Набор данных MNIST: Это набор данных рукописных цифр с 60 000 обучающих примеров и 10 000 тестовых примеров. Он часто используется как набор данных для начинающих при изучении методов классификации изображений. Вы можете загрузить набор данных MNIST в Python с помощью модуля keras.datasets.

Из предложенных наборов данных мы выбираем набор данных Iris для дальнейшей работы в качестве образца.

Загрузите набор данных Iris в качестве образца для работы

Нам нужна правильная выборка в табличном формате, поэтому мы запросили «загрузить данные iris в табличном формате».
Результат:
Чтобы загрузить набор данных Iris в табличном формате в Python, вы можете использовать библиотеку Pandas. Вот пример того, как можно загрузить набор данных Iris и отобразить его в табличном формате:

import pandas as pd
from sklearn import datasets

# Load the Iris dataset
iris = datasets.load_iris()

# Create a DataFrame with the features and target values
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['target'] = iris.target

# Display the DataFrame
print(df)
#--> or we can call the dataset to displace it
df

Это создаст Pandas DataFrame с характеристиками (длина чашелистика, ширина чашелистика, длина лепестка и ширина лепестка) набора данных Iris в качестве столбцов и целевыми значениями (вид ириса) в качестве дополнительного столбца.

Затем вы можете использовать обычные функции Pandas для обработки и анализа данных в DataFrame. Например, вы можете использовать функцию head() для отображения первых нескольких строк DataFrame или использовать функцию describe() для получения сводной статистики для числовых столбцов.

Построение графика набора данных

Для удобства мы можем задать уточняющие вопросы; здесь мы спросили «построить график».
Результат:
Чтобы построить график набора данных Iris с помощью Matplotlib, можно использовать следующий код:

# --> Trying of the suggestions from ChatGPT
# --> we removed the redundant lines (e.g. loading libraries and importing data) from the suggestion

# Create a figure and an axes
fig, ax = plt.subplots()

# Plot the data, coloring the points by the target values
scatter = ax.scatter(df['sepal length (cm)'], df['sepal width (cm)'], c=df['target'])

# Add a legend
legend = ax.legend(*scatter.legend_elements(), title='Species')

# Add a title
ax.set_title('Iris dataset')

# Show the plot
plt.show()
Набор данных Iris
Набор данных Iris

Столбец, относящийся к конкретному графику

Мы выбираем и просим построить график определенного столбца в наборе данных. Например, запрос «покажите мне распределение столбца «длина чашелистика (см)»
Результат:

Чтобы показать распределение столбца в Pandas DataFrame, вы можете использовать функцию hist() DataFrame. Например, чтобы показать распределение столбца 'sepal length (cm)' в наборе данных Iris, вы можете использовать следующий код:

# Create a figure and an axes
fig, ax = plt.subplots()

# Plot the distribution of the 'sepal length (cm)' column
df['sepal length (cm)'].hist(ax=ax)

# Add a title
ax.set_title('Distribution of sepal length')

# Show the plot
plt.show()
Распределение длины чашелистника
Распределение длины чашелистника

Как вы могли заметить, у графика нет меток. Поэтому мы можем попросить «переделать его с правильными метками осей».
Результат:

# Create a figure and an axes
fig, ax = plt.subplots()

# Plot the distribution of the 'sepal length (cm)' column
df['sepal length (cm)'].hist(ax=ax)

# Add axis labels
ax.set_xlabel('Sepal length (cm)')
ax.set_ylabel('Frequency')

# Add a title
ax.set_title('Distribution of sepal length')

# Show the plot
plt.show()
Распределение длины чашелистника
Распределение длины чашелистника

Более сложный график

Еще одним полезным графиком для отображения распределения является boxplot, который позволяет нам визуализировать стандартное отклонение и выявлять выбросы.

Здесь мы запрашиваем диаграмму распределения всех столбцов, отображаемых на одном графике, спрашивая «покажи мне диаграмму распределения всех столбцов на одном графике».
Результат:

Чтобы отобразить распределение всех столбцов во фрейме данных Pandas в виде прямоугольных диаграмм на одном графике, вы можете использовать функцию boxplot() фрейма данных.

Например, чтобы отобразить распределение всех столбцов в наборе данных Iris в виде прямоугольных диаграмм, вы можете использовать следующий код:

import matplotlib.pyplot as plt
import pandas as pd
from sklearn import datasets

# Load the Iris dataset
iris = datasets.load_iris()

# Create a DataFrame with the features
df = pd.DataFrame(iris.data, columns=iris.feature_names)

# Add a column with the target values
df['target'] = iris.target

# Create a figure and an axes
fig, ax = plt.subplots()

# Plot the boxplots of all columns
df.boxplot(ax=ax)

# Add a title
ax.set_title('Distributions of all columns')

# Show the plot
plt.show()
Распределение по всем столбцам
Распределение по всем столбцам

Использование chatGPT для вашего собственного проекта

ChatGPT — отличный инструмент для работы над вашим проектом. Важно сформулировать вопрос таким образом, чтобы он решал вашу проблему. Помните, что разделение вашего проекта на более мелкие блоки и решение их по отдельности — ключ к решению проекта.

Чтобы задать вопрос по программированию в ChatGPT, вы можете просто предоставить четкое и краткое описание вашей проблемы вместе с любым соответствующим кодом или сообщениями об ошибках. Вы также должны указать язык программирования и любые библиотеки или фреймворки, которые вы используете.

Как правильно сформулировать вопрос для ChatGPT

Итак, давайте спросим ChatGPT, что он думает. 

При формулировании запроса для ChatGPT важно помнить о нескольких вещах, чтобы максимально эффективно использовать модель:будьте конкретны и ясны в том, что вы хотите, чтобы сделала модель. Например, вместо того, чтобы спрашивать «Что вы знаете об этой теме?», спросите «Можете ли вы дать краткий обзор истории темы?»

При необходимости предоставьте контекст. Если вы задаете вопрос о конкретном событии или человеке, дайте некоторую справочную информацию, чтобы модель могла понять контекст, в котором вы задаете вопрос.

Будьте лаконичны. Длинные и сложные подсказки могут быть трудны для понимания модели и могут привести к менее точным или релевантным ответам.

Избегайте использования чрезмерно технического языка или жаргона, с которым модель может быть не знакома.

Не задавайте несколько вопросов в одном задании, лучше задавать по одному вопросу за раз.

Вот несколько примеров хороших подсказок для ChatGPT:

  • «Можете ли вы объяснить основное различие между контролируемым и неконтролируемым обучением?»
  • «Каковы основные компоненты нейронной сети и как они работают?»
  • «Пожалуйста, напишите короткий рассказ о роботе, который умеет читать мысли»

С другой стороны, вот несколько примеров плохих подсказок:

  • «всё»
  • «Что ты можешь мне рассказать?»
  • «что ты знаешь»

Соблюдая эти рекомендации, вы сможете гарантировать получение максимально точных и релевантных ответов от модели при использовании ChatGPT.

Специалист по данным

ChatGPT не идеален; приведенный пример взят из sklearn. В реальном мире вам нужно загрузить собственные данные из вашего ресурса, используя Pandas (пример ниже показывает загрузку iris из локального хранилища).

В целом, как практикующий специалист по данным, вы часто будете сталкиваться с многогранным процессом сбора данных, их подготовки, построения модели и интерпретации. Каждый из этих этапов имеет свои собственные уникальные требования с точки зрения навыков и ресурсов. Например, вы можете использовать pandas для загрузки и обработки ваших наборов данных. Важно помнить, что примеры, предоставляемые ChatGPT, предназначены для использования в качестве базового учебного пособия и могут не подходить для обработки более сложных или существенных наборов данных.

GPT не заменит специалиста по анализу данных

Есть несколько причин, по которым ChatGPT и другие крупные языковые модели не заменят специалистов по обработке данных:

Специалисты по данным обладают гораздо более широким набором навыков: специалисты по данным обучаются широкому спектру навыков, включая анализ данных, машинное обучение, программирование, статистику и многое другое. ChatGPT и другие крупные языковые модели способны только генерировать текст на основе заданного запроса, и у них нет других навыков, которыми обладают специалисты по данным.

Специалисты по данным могут интерпретировать и объяснять результаты своей работы: Специалисты по данным обучены интерпретировать и объяснять результаты своей работы, что имеет решающее значение для принятия решений и общения с заинтересованными сторонами. ChatGPT и другие большие языковые модели не способны интерпретировать или объяснять результаты своей работы.

Специалисты по данным могут работать с широким спектром данных: специалисты по данным обучены работать с широким спектром данных, включая структурированные и неструктурированные данные, и они могут использовать различные инструменты и методы для извлечения информации из данных. ChatGPT и другие большие языковые модели способны генерировать текст только на основе заданного запроса и не могут работать с другими типами данных.

Специалисты по данным могут работать с широким кругом заинтересованных сторон: специалисты по данным обучены работать с широким кругом заинтересованных сторон, включая руководителей предприятий, экспертов по предметной области и технических экспертов, и они могут сообщать сложные концепции ясным и понятным образом. ChatGPT и другие большие языковые модели не способны работать с заинтересованными сторонами или сообщать сложные концепции.

Источник:

#Python #Pandas
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу