Академический Документы
Профессиональный Документы
Культура Документы
Разведочный анализ
Подключитесь к базе данных PostgreSQL и выгрузите таблицу exploratory , сохранив ее в датафрейм.
Параметры для подключения следующие: хост – dsstudents.skillbox.ru , порт – 5432 , имя базы
данных – db_ds_students , пользователь – readonly , пароль – 6hajV34RTQfmxhS .
В [1]:
import sqlalchemy
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
В [2]:
conn = 'postgresql+psycopg2://readonly:6hajV34RTQfmxhS@dsstudents.skillbox.ru:5432/db_ds_st
engine = sqlalchemy.create_engine(conn)
connect = engine.connect()
В [3]:
inspector = sqlalchemy.inspect(engine)
inspector.get_table_names()
Out[3]:
В [4]:
localhost:8890/notebooks/ML_EDA_hw.ipynb# 1/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [5]:
plt.figure(figsize=(10,6))
plt.title("Распределение для feature_1", fontsize=16)
plt.tick_params(labelsize=14)
sns.histplot(data=exploratory, x="feature_1", bins=10)
plt.show()
Примерно 90% всех данных лежит в диапазоне от -2 до 2. По краям выборки от -3 до -2 и от 2-2.5 данных
меньше всего, а также существует небольшая просадка по количеству данных значения которых близки к
0.
localhost:8890/notebooks/ML_EDA_hw.ipynb# 2/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [6]:
plt.figure(figsize=(10,6))
plt.title("Распределение для feature_2", fontsize=16)
plt.tick_params(labelsize=14)
sns.histplot(data=exploratory, x="feature_2", bins=30)
plt.show()
95% процентов всех значений находятся в диапазоне от -2.3 до 2.5 От -3.5 до -2.3 расположено всего
около 5 процентов значений выборки.
localhost:8890/notebooks/ML_EDA_hw.ipynb# 3/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [7]:
plt.figure(figsize=(10,6))
plt.title("Распределение для feature_3", fontsize=16)
plt.tick_params(labelsize=14)
sns.histplot(data=exploratory, x="feature_3", bins=20)
plt.show()
Это самая интересная выборка, 90% которой лежат в районе от -2.7 до 2.2. Остальные значения
являются явно каким-то выбросами, которые требуют особого внимания и расположены в диапазоне от
30 до 62.
localhost:8890/notebooks/ML_EDA_hw.ipynb# 4/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [8]:
plt.figure(figsize=(10,6))
plt.title("Распределение для feature_4", fontsize=16)
plt.tick_params(labelsize=14)
sns.histplot(data=exploratory, x="feature_4", bins=30)
plt.show()
Это одно из наиболее равномерных распределений данных, на мой взгляд ближе всего к нормальному
из представленных в фрейме. 99% данных находится в диапазоне от -2.2 до 2.1
localhost:8890/notebooks/ML_EDA_hw.ipynb# 5/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [9]:
plt.figure(figsize=(10,6))
plt.title("Распределение для feature_5", fontsize=16)
plt.tick_params(labelsize=14)
sns.histplot(data=exploratory, x="feature_5", bins=20)
plt.show()
Постройте ящик с усами для каждой переменной. Опишите распределение данных. Прокомментируйте
наличие или отсутствие выбросов.
В [10]:
plt.figure(figsize=(18,5))
plt.title("Боксплот для feature_1", fontsize=18)
plt.xticks(np.arange(min(exploratory["feature_1"]), max(exploratory["feature_1"]+0.5),0.5))
plt.tick_params(labelsize=14)
ax = sns.boxplot(x=exploratory["feature_1"])
plt.show()
localhost:8890/notebooks/ML_EDA_hw.ipynb# 6/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [11]:
plt.figure(figsize=(18,5))
plt.title("Боксплот для feature_1", fontsize=18)
plt.xticks(np.arange(min(exploratory["feature_1"]), max(exploratory["feature_1"]+0.5),0.5))
plt.tick_params(labelsize=14)
ax = sns.boxplot(x=exploratory["feature_1"])
plt.show()
В [12]:
plt.figure(figsize=(18,5))
plt.title("Боксплот для feature_2", fontsize=18)
plt.xticks(np.arange(min(exploratory["feature_2"]), max(exploratory["feature_2"]+0.5),0.5))
plt.tick_params(labelsize=14)
ax = sns.boxplot(x=exploratory["feature_2"])
plt.show()
localhost:8890/notebooks/ML_EDA_hw.ipynb# 7/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [13]:
plt.figure(figsize=(18,5))
plt.title("Боксплот для feature_3", fontsize=18)
plt.xticks(np.arange(min(exploratory["feature_3"]), max(exploratory["feature_3"]+5),5))
plt.tick_params(labelsize=14)
ax = sns.boxplot(x=exploratory["feature_3"])
plt.show()
В [14]:
plt.figure(figsize=(18,5))
plt.title("Боксплот для feature_4", fontsize=18)
plt.xticks(np.arange(min(exploratory["feature_4"]), max(exploratory["feature_4"]+0.5),0.5))
plt.tick_params(labelsize=14)
ax = sns.boxplot(x=exploratory["feature_4"])
plt.show()
localhost:8890/notebooks/ML_EDA_hw.ipynb# 8/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [15]:
plt.figure(figsize=(18,5))
plt.title("Боксплот для feature_5", fontsize=18)
plt.xticks(np.arange(min(exploratory["feature_5"]), max(exploratory["feature_5"]+1),1))
plt.tick_params(labelsize=14)
ax = sns.boxplot(x=exploratory["feature_5"])
plt.show()
В [16]:
plt.figure(figsize=(15,7))
plt.title("Диаграмма рассеивания между 4 и 1 параметром", fontsize=18)
sns.scatterplot(x="feature_4", y="feature_1", data=(exploratory))
plt.show()
localhost:8890/notebooks/ML_EDA_hw.ipynb# 9/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [17]:
plt.figure(figsize=(15,7))
plt.title("Диаграмма рассеивания между 2 и 4 параметром", fontsize=18)
sns.scatterplot(x="feature_4", y="feature_2", data=(exploratory))
plt.show()
В [18]:
plt.figure(figsize=(15,7))
plt.title("Диаграмма рассеивания между 3 и 4 параметром", fontsize=18)
sns.scatterplot(x="feature_4", y="feature_3", data=(exploratory))
plt.show()
localhost:8890/notebooks/ML_EDA_hw.ipynb# 10/11
31.03.2021 ML_EDA_hw - Jupyter Notebook
В [19]:
plt.figure(figsize=(15,7))
plt.title("Диаграмма рассеивания между 5 и 4 параметром", fontsize=18)
sns.scatterplot(x="feature_4", y="feature_5", data=(exploratory))
plt.show()
Второй и третий параметр (feature_2, feature_3), лучше всего подходят для модели регрессии, т.к.
между ними и 4 параметром прослеживается выраженная линейная зависимость.
localhost:8890/notebooks/ML_EDA_hw.ipynb# 11/11