177 KiB
Уф.. начинаем длинную тяжелую лабу...
Информация о первом датасете:
О наборе данных
Контекст
В космическом пространстве существует бесконечное количество объектов. Некоторые из них находятся ближе, чем мы думаем. Хотя нам может казаться, что расстояние в 70 000 км не может причинить нам вред, в астрономическом масштабе это очень маленькое расстояние, которое может нарушить многие природные явления. Таким образом, эти объекты/астероиды могут причинить вред. Поэтому разумно знать, что нас окружает и что может причинить нам вред. Таким образом, этот набор данных содержит список сертифицированных НАСА астероидов, которые классифицируются как ближайшие к Земле объекты.
Информация о втором датасете:
О наборе данных
Контекст
Оценки, полученные студентами
Содержание
Этот набор данных состоит из оценок, полученных учениками по различным предметам.
Благодарности
http://roycekimmons.com/tools/generated_data/exams
Вдохновение
Понять влияние предыстории родителей, подготовки к тестированию и т.д. На успеваемость учащихся
Информация о третьем датасете:
О наборе данных
Этот набор данных был собран путём сбора данных с онлайн-сайтов.
Столбцы выглядят следующим образом.
Название: в этом столбце содержится название мобильного телефона.
Рейтинг: в этом столбце указаны оценки, выставленные телефону. Минимальная оценка — 0, максимальная — 5.
Spec_score: в этом столбце указана оценка телефона на основе его характеристик. Минимальное значение — 0, максимальное — 100.
No_of_sim: в этом столбце указано, поддерживает ли телефон две SIM-карты, 3G, 4G, 5G, LTE.
Оперативная память: В этом столбце содержится информация о оперативной памяти телефона
Аккумулятор: В этой колонке представлена информация о характеристиках аккумулятора телефона.
Дисплей: В этом столбце содержится информация о размере экрана телефона.
Камера: В этой колонке представлена информация о камере, задней и фронтальной.
Внешняя_память: этот столбец содержит информацию о том, поддерживает ли устройство внешнюю память и какой объём памяти.
Android_version: этот столбец сообщает нам о версии Android на телефоне.
Цена: Цена телефона.
Компания: Компания, которой принадлежит телефон.
Встроенная_память: в этом столбце представлена информация о встроенной памяти телефона.
быстрая_зарядка: показывает, поддерживает ли устройство быструю зарядку. Если да, то насколько.
Screen_resolution: Это описывает разрешение экрана телефона.
Процессор: В этом столбце приведена информация о процессоре телефона.
Имя_процессора: в этом столбце описывается название процессора.
начинаем...
первое...
Проблемная область: Это данные о ближайших к Земле объектах (астероиды и кометы), которые могут угрожать нашей планете. Важно анализировать их траектории, размеры и скорость для предотвращения потенциальных катастроф.
Объекты наблюдения: Астероиды, кометы и другие объекты.
Атрибуты: 'id', 'name', 'est_diameter_min', 'est_diameter_max', 'relative_velocity', 'miss_distance', 'orbiting_body', 'sentry_object', 'absolute_magnitude', 'hazardous'
Связи между объектами: Нет явных связей между объектами, но можно изучать корреляции между размером, скоростью и расстоянием объекта.
import pandas as pd
data = pd.read_csv("./csv/1.csv", sep=",")
print("вот столько колонОчек", data.columns.size)
print("вот такие колонОчки:", data.columns.tolist())
Получение сведений о пропущенных данных
Типы пропущенных данных:
None - представление пустых данных в Python
NaN - представление пустых данных в Pandas
'' - пустая строка
# Проверим, есть ли пропущенные значения
print(data.isnull().sum(), "\n")
# Есть ли пустые значения признаков
print(data.isnull().any(), "\n")
Тут понятно, что пропущенных значений нет, поэтому заполнять пустые места не нужно
И еще на сайте видно, что колонки "orbiting_body" и "sentry_object" не имеют никаких значений кроме "Земля" и "false" соответственно. Значит удалим их
data = data.drop(columns=['sentry_object'])
data = data.drop(columns=['orbiting_body'])
print(data.columns)
при просмотре типа данных на сайте kaggle выяснилось, что числовые колонки - это 3-7. По ним и будем просматриватьвыбросы и усреднять значения
numeric_columns = ['est_diameter_min', 'est_diameter_max', 'relative_velocity', 'miss_distance', 'absolute_magnitude']
for column in numeric_columns:
if pd.api.types.is_numeric_dtype(data[column]): # Проверяем, является ли колонка числовой
q1 = data[column].quantile(0.25) # Находим 1-й квартиль (Q1)
q3 = data[column].quantile(0.75) # Находим 3-й квартиль (Q3)
iqr = q3 - q1 # Вычисляем межквартильный размах (IQR)
# Определяем границы для выбросов
lower_bound = q1 - 1.5 * iqr # Нижняя граница
upper_bound = q3 + 1.5 * iqr # Верхняя граница
# Подсчитываем количество выбросов
outliers = data[(data[column] < lower_bound) | (data[column] > upper_bound)]
outlier_count = outliers.shape[0]
# Устраняем выбросы: заменяем значения ниже нижней границы на саму нижнюю границу, а выше верхней — на верхнюю
data[column] = data[column].apply(lambda x: lower_bound if x < lower_bound else upper_bound if x > upper_bound else x)
print(f"Колонка {column}:")
print(f" Есть выбросы: {'Да' if outlier_count > 0 else 'Нет'}")
if(outlier_count > 0) :
print(f" Количество выбросов: {outlier_count}")
print(f" Минимальное значение: {data[column].min()}")
print(f" Максимальное значение: {data[column].max()}")
print(f" 1-й квартиль (Q1): {q1}")
print(f" 3-й квартиль (Q3): {q3}\n")
так, теперь мы построим диаграммы, чтобы найти зависимость значения "опасен ли объект" от других колонок
import matplotlib.pyplot as plt
# Список числовых колонок, для которых мы будем строить графики
numeric_columns = ['est_diameter_min', 'est_diameter_max', 'relative_velocity', 'miss_distance', 'absolute_magnitude']
# Создание диаграмм зависимости
for column in numeric_columns:
plt.figure(figsize=(4, 8)) # Установка размера графика
plt.scatter(data['hazardous'], data[column], alpha=0.5) # Создаем диаграмму рассеяния
plt.title(f'Зависимость {column} от hazardous')
plt.xlabel('hazardous (0 = не опасно, 1 = опасно)')
plt.ylabel(column)
plt.xticks([0, 1]) # Установка меток по оси X
plt.grid() # Добавление сетки для удобства восприятия
plt.show() # Отображение графика