Введение
Я выбрал данные о командах и их представлениях с платформы Kaggle. Данные были найдены в наборе данных «House Prices — Advanced Regression Techniques». Однако, оказалось, что в CSV-файле содержатся данные о ранжировании команд, а не о ценах на дома.
Анализ данных о командах и их представлениях может дать представление о том, как часто команды отправляют свои решения и как это влияет на их оценки. Это полезно для понимания стратегий участников соревнований на Kaggle.
Я хотел выяснить, существует ли корреляция между количеством представлений и достигнутыми оценками, что может помочь новым участникам лучше планировать свои попытки.
Были выбраны гистограммы для визуализации распределения оценок и количества представлений, так как они хорошо показывают частоту значений.
Диаграмма разброса (scatter plot): Выбрана для анализа взаимосвязи между количеством представлений и оценками, что позволяет легко увидеть корреляцию между двумя переменными.
KDE линия: Добавлена к гистограммам для более наглядного представления сглаженного распределения данных.
Этап работы
1. Обработка данных
Шаг 1: Загрузка данных:
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from google.colab import files
uploaded = files.upload ()
df = pd.read_csv (next (iter (uploaded)))
Шаг 2: Проверка и вывод данных:
print (df.head ()) print (df.columns)
Шаг 3: Проверка наличия необходимых столбцов:
required_columns = ['Score', 'SubmissionCount'] for column in required_columns: if column not in df.columns: raise KeyError (f"Столбец '{column}' отсутствует в наборе данных»)
Визуализация данных
Распределение оценок (Score):
plt.figure (figsize=(10, 6)) sns.histplot (df['Score'], kde=True) plt.title ('Распределение оценок') plt.xlabel ('Оценка') plt.ylabel ('Частота') plt.show ()
Распределение количества представлений (SubmissionCount):
plt.figure (figsize=(10, 6)) sns.histplot (df['SubmissionCount'], kde=True) plt.title ('Распределение количества представлений') plt.xlabel ('Количество представлений') plt.ylabel ('Частота') plt.show ()
Взаимосвязь между оценками и количеством представлений:
plt.figure (figsize=(10, 6)) sns.scatterplot (x=df['SubmissionCount'], y=df['Score']) plt.title ('Взаимосвязь между оценками и количеством представлений') plt.xlabel ('Количество представлений') plt.ylabel ('Оценка') plt.show ()
Стилизация графиков
Описание стилизации:
sns.set_style ('whitegrid') sns.set_palette ('muted')
Я использовал стилизацию 'whitegrid' и палитру 'muted' из библиотеки Seaborn для создания чистого и профессионального вида графиков. Это делает графики более читабельными и привлекательными.
Вдохновение для стилизации было взято из стандартных стилей визуализации Seaborn, которые хорошо подходят для анализа данных и создают визуально приятные графики.
Графики
Код и датасет
Я использовал нейросеть Ghatgtp (https://chatgpt.com) для помощи в исправлении ошибок