Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

60 строки
2.6 KiB
Python

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()