2024-10-17 03:04:08 +03:00
from sklearn . datasets import load_iris
import numpy as np
import matplotlib . pyplot as plt
class lab3 :
def __init__ ( self ) :
pass
def main ( self ) :
data = load_iris ( )
X = data . data
print ( ' В с е данные' , data . data )
Y = data . target
print ( data . target )
Y_str = data . target_names
print ( Y_str )
setosa_inds = Y == np . where ( Y_str == ' setosa ' )
setosa_data = X [ np . ravel ( setosa_inds ) , : ]
print ( ' Индексы setosa ' , setosa_inds )
print ( ' Признаки setosa: ' , setosa_data )
versicolor_inds = Y == np . where ( Y_str == ' versicolor ' )
versicolor_data = X [ np . ravel ( versicolor_inds ) , : ]
virginica_inds = Y == np . where ( Y_str == ' virginica ' )
virginica_data = X [ np . ravel ( virginica_inds ) , : ]
plt . scatter ( setosa_data [ : , 0 ] , setosa_data [ : , 1 ] )
plt . title ( ' Скаттерограмма setosa по признакам 1 и 2 ' )
plt . xlabel ( ' Длина чашелистика ' )
plt . ylabel ( ' Ширина чашелистика ' )
plt . show ( )
plt . scatter ( versicolor_data [ : , 0 ] , versicolor_data [ : , 1 ] )
plt . title ( ' Скаттерограмма versicolor по признакам 1 и 2 ' )
plt . xlabel ( ' Длина чашелистика ' )
plt . ylabel ( ' Ширина чашелистика ' )
plt . show ( )
plt . scatter ( virginica_data [ : , 0 ] , virginica_data [ : , 1 ] )
plt . title ( ' Скаттерограмма virginica по признакам 1 и 2 ' )
plt . xlabel ( ' Длина чашелистика ' )
plt . ylabel ( ' Ширина чашелистика ' )
plt . show ( )
# расчет статистических характеристик коэф. корреляции для признаков
setosa_sl_mean = np . mean ( setosa_data [ : , 0 ] )
setosa_sl_std = np . std ( setosa_data [ : , 0 ] )
setosa_sw_mean = np . mean ( setosa_data [ : , 1 ] )
setosa_sw_std = np . std ( setosa_data [ : , 1 ] )
setosa_cor = np . corrcoef ( setosa_data [ : , 0 ] , setosa_data [ : , 1 ] ) [ 0 , 1 ]
versicolor_sl_mean = np . mean ( versicolor_data [ : , 0 ] )
versicolor_sl_std = np . std ( versicolor_data [ : , 0 ] )
versicolor_sw_mean = np . mean ( versicolor_data [ : , 1 ] )
versicolor_sw_std = np . std ( versicolor_data [ : , 1 ] )
versicolor_cor = np . corrcoef ( versicolor_data [ : , 0 ] , versicolor_data [ : , 1 ] ) [ 0 , 1 ]
virginica_sl_mean = np . mean ( virginica_data [ : , 0 ] )
virginica_sl_std = np . std ( virginica_data [ : , 0 ] )
virginica_sw_mean = np . mean ( virginica_data [ : , 1 ] )
virginica_sw_std = np . std ( virginica_data [ : , 1 ] )
virginica_cor = np . corrcoef ( virginica_data [ : , 0 ] , virginica_data [ : , 1 ] ) [ 0 , 1 ]
print ( ' Setosa: Среднее значение длины чашелистика: ' , setosa_sl_mean , ' С К О длины чашелистика:' , setosa_sl_std , ' Среднее значение ширины чашелистика: ' , setosa_sw_mean , ' С К О ширины чашелистика:' , setosa_sw_std )
print ( ' Коэффициент корреляции: ' , setosa_cor )
print ( ' Versicolor: Среднее значение длины чашелистика: ' , versicolor_sl_mean , ' С К О длины чашелистика:' , versicolor_sl_std , ' Среднее значение ширины чашелистика: ' , versicolor_sw_mean , ' С К О ширины чашелистика:' , versicolor_sw_std )
print ( ' Коэффициент корреляции: ' , versicolor_cor )
print ( ' Virginica: Среднее значение длины чашелистика: ' , virginica_sl_mean , ' С К О длины чашелистика:' , virginica_sl_std , ' Среднее значение ширины чашелистика: ' , virginica_sw_mean , ' С К О ширины чашелистика:' , virginica_sw_std )
print ( ' Коэффициент корреляции: ' , virginica_cor )
# построение гистограммы и коробочковой диаграммы для setosa по признакам 1 и 2
hist_data = np . vstack ( ( setosa_data [ : , 0 ] , setosa_data [ : , 1 ] ) )
plt . hist ( hist_data . T , label = [ ' Длина чашелистика ' , ' Ширина чашелистика ' ] )
# Настройка графика
plt . title ( ' Гистограмма setosa по признакам 1 и 2 ' )
plt . xlabel ( ' Значение ' )
plt . ylabel ( ' Частота ' )
plt . legend ( )
plt . show ( )
plt . boxplot ( ( setosa_data [ : , 0 ] . ravel ( ) , setosa_data [ : , 1 ] . ravel ( ) ) , notch = False , labels = [ ' Длина чашелистика ' , ' Ширина чашелистика ' ] )
plt . title ( ' Коробочковая диаграмма setosa по признакам 1 и 2 ' )
plt . ylabel ( ' Значение ' )
plt . show ( )
if __name__ == " __main__ " :
l3 = lab3 ( )
l3 . main ( )