|
|
@ -2,15 +2,59 @@ import numpy as np
|
|
|
|
from sklearn.datasets import load_iris
|
|
|
|
from sklearn.datasets import load_iris
|
|
|
|
import pandas as pd
|
|
|
|
import pandas as pd
|
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
|
|
import seaborn as sb
|
|
|
|
|
|
|
|
import pingouin as pg
|
|
|
|
|
|
|
|
from scipy import stats
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Датасет Ирисы Фишера
|
|
|
|
iris = load_iris()
|
|
|
|
iris = load_iris()
|
|
|
|
iris_pd=pd.DataFrame(data=np.c_[iris['data'], iris['target']], columns=iris['feature_names'] + ['target'])
|
|
|
|
iris_pd=pd.DataFrame(data=np.c_[iris['data'], iris['target']], columns=iris['feature_names'] + ['target'])
|
|
|
|
|
|
|
|
|
|
|
|
x1 = np.array(iris_pd['sepal length (cm)'])
|
|
|
|
# Формирование выборок по признакам
|
|
|
|
x2 = np.array(iris_pd['sepal width (cm)'])
|
|
|
|
x1 = np.array(iris_pd['sepal length (cm)']) # первый признак - длина чашелистика
|
|
|
|
x3 = np.array(iris_pd['petal length (cm)'])
|
|
|
|
x2 = np.array(iris_pd['sepal width (cm)']) # второй признак - ширина чашелистика
|
|
|
|
x4 = np.array(iris_pd['petal length (cm)'])
|
|
|
|
x3 = np.array(iris_pd['petal length (cm)']) # третий признак - длина лепестка
|
|
|
|
|
|
|
|
x4 = np.array(iris_pd['petal length (cm)']) # четвертый признак - ширина лепестка
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Проверка на нормальность по критерию К-С
|
|
|
|
|
|
|
|
print('Тест Колмогорова-Смирнова')
|
|
|
|
|
|
|
|
print('Для X1: \n', stats.kstest(x1, stats.norm.cdf))
|
|
|
|
|
|
|
|
print('Для X2: \n', stats.kstest(x2, stats.norm.cdf))
|
|
|
|
|
|
|
|
print('Для X3: \n', stats.kstest(x3, stats.norm.cdf))
|
|
|
|
|
|
|
|
print('Для X4: \n', stats.kstest(x4, stats.norm.cdf))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Построение диаграммы Тьюки
|
|
|
|
|
|
|
|
fig1, axes = plt.subplots(1, 3, figsize=(20, 4))
|
|
|
|
|
|
|
|
axes[0].boxplot([x1,x2,x3,x4], tick_labels = ['Sepal Length', 'Sepal Width', 'Petal Length', 'Petal Width'])
|
|
|
|
|
|
|
|
axes[0].set_title('Диаграмма Тьюки')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Построение тепловой карты парных коэффициентов корреляции
|
|
|
|
|
|
|
|
corrMatrix = iris_pd.corr()
|
|
|
|
|
|
|
|
axes[1].set_title('Тепловая карта парных коэфф. корреляции')
|
|
|
|
|
|
|
|
sb.heatmap(corrMatrix, annot=True, linewidths=0.5, xticklabels = False, yticklabels = False, ax = axes[1])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Построение тепловой карты частных коэффициентов корреляции
|
|
|
|
|
|
|
|
pCorrMatrix = iris_pd.pcorr()
|
|
|
|
|
|
|
|
axes[2].set_title('Тепловая карта частных коэфф. корреляции')
|
|
|
|
|
|
|
|
sb.heatmap(pCorrMatrix, annot=True, linewidths=0.5, xticklabels = False, yticklabels = False, ax = axes[2])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Построение гистограмм по выборкам
|
|
|
|
|
|
|
|
fig2, axes = plt.subplots(2, 2, figsize=(10, 7))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
axes[0,0].hist(x1)
|
|
|
|
|
|
|
|
axes[0,0].set_title('Гисотграмма по значениям X1')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
axes[0,1].hist(x2)
|
|
|
|
|
|
|
|
axes[0,1].set_title('Гисотграмма по значениям X2')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
axes[1,0].hist(x3)
|
|
|
|
|
|
|
|
axes[1,0].set_title('Гисотграмма по значениям X3')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
axes[1,1].hist(x4)
|
|
|
|
|
|
|
|
axes[1,1].set_title('Гисотграмма по значениям X4')
|
|
|
|
|
|
|
|
|
|
|
|
plt.boxplot([x1,x2,x3,x4], tick_labels = ['Sepal Length', 'Sepal Width', 'Petal Length', 'Petal Width'])
|
|
|
|
|
|
|
|
#plt.set_ylabel('')
|
|
|
|
|
|
|
|
plt.show()
|
|
|
|
plt.show()
|