Advertisement
mirosh111000

Лабораторна робота 1

Sep 16th, 2023
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.30 KB | None | 0 0
  1. from sklearn.datasets import load_iris
  2. import numpy as np
  3. import pandas as pd
  4. import matplotlib.pyplot as plt
  5. import seaborn as sns
  6.  
  7.  
  8. def print_hist(values, title=''):
  9.     plt.hist(values, bins=10)
  10.     plt.title(f'Діаграма розподілу {title}')
  11.     plt.xlabel('Значення')
  12.     plt.ylabel('Частота')
  13.     plt.show()
  14.  
  15. def info(df):
  16.     info_df = pd.DataFrame({'MIN': [df['sepal_length'].min(),
  17.                                     df['sepal_width'].min(),
  18.                                     df['petal_length'].min(),
  19.                                     df['petal_width'].min()],
  20.                             'MAX': [df['sepal_length'].max(),
  21.                                     df['sepal_width'].max(),
  22.                                     df['petal_length'].max(),
  23.                                     df['petal_width'].max()],
  24.                             'MEAN': [df['sepal_length'].mean(),
  25.                                      df['sepal_width'].mean(),
  26.                                      df['petal_length'].mean(),
  27.                                      df['petal_width'].mean()],
  28.                             'VARIANCE': [df['sepal_length'].var(),
  29.                                          df['sepal_width'].var(),
  30.                                          df['petal_length'].var(),
  31.                                          df['petal_width'].var()]}, index=df.columns[:-1])
  32.     return info_df
  33.  
  34. def normalization(df):
  35.     for i in range(len(df.columns) - 1):
  36.         df.iloc[:, i] = (df.iloc[:, i] - df[df.columns[i]].mean()) / df[df.columns[i]].var()
  37.  
  38.     return df
  39.  
  40.  
  41.  
  42. iris = pd.read_csv('iris.csv')
  43. sns.pairplot(iris, hue='species')
  44. plt.show()
  45.  
  46. info_iris = info(iris)
  47. print(info_iris)
  48.  
  49. for i in range(len(iris.columns) - 1):
  50.     print_hist(iris.iloc[:, i], iris.columns[i])
  51.  
  52. iris_log = iris.copy()
  53.  
  54. iris_log.iloc[:, :-1] = np.log(iris_log.iloc[:, :-1])
  55. info_iris_log = info(iris_log)
  56. print(info_iris_log)
  57.  
  58. for i in range(len(iris.columns) - 1):
  59.     print_hist(iris_log.iloc[:, i], f'log {iris.columns[i]}')
  60.  
  61. iris_log_norm = iris_log.copy()
  62. iris_log_norm = normalization(iris_log_norm)
  63. info_iris_log_norm = info(iris_log_norm)
  64. print(info_iris_log_norm)
  65.  
  66. for i in range(len(iris.columns) - 1):
  67.     print_hist(iris_log_norm.iloc[:, i], f'log-norm {iris.columns[i]}')
  68.  
  69.  
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement