import numpy as np from sklearn.datasets import load_iris import pandas as pd import matplotlib.pyplot as plt import seaborn as sb import pingouin as pg from scipy import stats # Датасет Ирисы Фишера iris = load_iris() 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)']) # второй признак - ширина чашелистика 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.show()