def find_minimums(data): print('\nMinimum dla kolumny sepal length: ' + str(find_min(find_column_elements(data, 0)))) print('Minimum dla kolumny sepal width: ' + str(find_min(find_column_elements(data, 1)))) print('Minimum dla kolumny petal length: ' + str(find_min(find_column_elements(data, 2)))) print('Minimum dla kolumny petal width: ' + str(find_min(find_column_elements(data, 3))))
def find_medians(data): print('\nMediana dla kolumny sepal length: ' + str(find_median(find_column_elements(data, 0)))) print('Mediana dla kolumny sepal width: ' + str(find_median(find_column_elements(data, 1)))) print('Mediana dla kolumny petal length: ' + str(find_median(find_column_elements(data, 2)))) print('Mediana dla kolumny petal width: ' + str(find_median(find_column_elements(data, 3))))
def draw_histograms(data, col1, col2): attribute1 = find_column_elements(data, col1) normalized_attribute_1 = (attribute1 - np.min(attribute1)) / ( np.amax(attribute1) - np.amin(attribute1)) plt.hist(normalized_attribute_1, bins=50, label=data.dtype.names[col1]) attribute2 = find_column_elements(data, col2) normalized_attribute_2 = (attribute2 - np.amin(attribute2)) / ( np.amax(attribute2) - np.amin(attribute2)) plt.hist(normalized_attribute_2, bins=50, label=data.dtype.names[col2]) plt.legend() plt.ylabel('Liczba wystąpień') plt.xlabel('Znormalizowany rozkład wystąpień') plt.show()
def main(): data = load_irys_data() find_medians(data) find_maximums(data) find_minimums(data) find_dominant(find_column_elements(data, 4)) correlated_column_1, correlated_column_2 = find_most_correlated_columns( data) draw_histograms(data, correlated_column_1, correlated_column_2)
def test_hypothesis(data): print( 'Badam hipoteze czy można użyć parametru "sepal width" do rozróżnienia klas kwiatów Iris Versicolour oraz Iris Virginica z poziom istotności statystycznej 5%' ) versicolour = extract_one_species(data, 'Iris-versicolor') virginica = extract_one_species(data, 'Iris-virginica') value, pvalue = stats.ttest_ind(find_column_elements(versicolour, 1), find_column_elements(virginica, 1)) print(value, pvalue) # Hipoteza zerowa: nie można można rozróżnić zbiorów na podstawie parametru "sepal width", hipoteza alternatywna: można rozróżnić zbiory na podstawie parametru "sepal width" if pvalue < 0.05: print( 'Odrzucamy hipotezę zerową - można rozróżnić zbiory na podstawie parametru "sepal width"' ) else: print( 'Nie ma podstaw do odrzucenia hipotezy zerowej - nie można można rozróżnić zbiorów na podstawie parametru "sepal width"' )
def draw_histogram(data, mean): births = find_column_elements(data, 2) plt.hist(births, bins=100) plt.ylabel('Number of days') plt.xlabel('Number of births') plt.axvline(mean, color='k', linestyle='dashed', linewidth=1) real_mean = np.mean(births) variance = np.var(births) sigma = np.sqrt(variance) x = np.linspace(min(births), max(births), 100) plt.plot(x, mlab.normpdf(x, real_mean, sigma) * 400000, color='red') plt.show()
def draw_histogram(data): versicolour = extract_one_species(data, 'Iris-versicolor') virginica = extract_one_species(data, 'Iris-virginica') by_sepal_width = [ find_column_elements(versicolour, 1), find_column_elements(virginica, 1), ] labels = ['Versicolor', 'Virginica'] colors = ['red', 'blue'] for arr in by_sepal_width: mean = np.mean(arr) variance = np.var(arr) sigma = np.sqrt(variance) x = np.linspace(min(arr), max(arr), 100) plt.plot(x, mlab.normpdf(x, mean, sigma) * 5, color=colors[by_sepal_width.index(arr)]) plt.hist(by_sepal_width, bins=25, color=colors, label=labels) plt.legend() plt.xlabel('Sepal width [cm]') plt.show()
def test_hypothesis(data, size): hypothesis_value = 10000 print( 'Badam hipoteze czy dzienna srednia urodzen wynosi 10000 na losowej probie ' + str(size) + ' krotek z poziom istotności statystycznej 5%') births = find_column_elements(data, 2) np.random.shuffle(births) mean = np.mean(births[1:size]) print('Dzienna srednia urodzin wynosi ' + str(mean) + '.') std = np.std(births) z = (mean - hypothesis_value) / (std / np.sqrt(size)) print('Wartosc z-testu: ' + str(z)) if z > -1.96 and z < 1.96: print('Hipoteza potwierdzona.') else: print('Hipoteza obalona.') return mean