diff --git a/ИАД/lr1/main.py b/ИАД/lr1/main.py index 09f45d5..e79d077 100644 --- a/ИАД/lr1/main.py +++ b/ИАД/lr1/main.py @@ -2,15 +2,59 @@ 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)']) +# Формирование выборок по признакам +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.boxplot([x1,x2,x3,x4], tick_labels = ['Sepal Length', 'Sepal Width', 'Petal Length', 'Petal Width']) -#plt.set_ylabel('') plt.show() \ No newline at end of file