Untitled
import numpy as np import matplotlib.pyplot as plt # Krok 1: Wczytanie danych z pliku filename = 'wino.txt' data = np.loadtxt(filename, delimiter=',', dtype=float) # Krok 2: Przygotowanie zbioru cech i etykiet x = data[:, 1:].T # Wszystkie kolumny oprócz pierwszej (klasa), transponujemy y_t = data[:, 0] # Pierwsza kolumna (identyfikator klasy) # Zmiana y_t na jednowierszową tablicę y_t = y_t.reshape(1, y_t.shape[0]) # Krok 3: Wypisanie wartości minimalnych i maksymalnych przed normalizacją print("Wartości minimalne i maksymalne dla poszczególnych cech przed normalizacją:") for i in range(x.shape[0]): print(f"Cecha {i + 1}: min = {x[i].min()}, max = {x[i].max()}") # Krok 4: Normalizacja danych do przedziału <-1, 1> x_min = x.min(axis=1) x_max = x.max(axis=1) x_norm_max = 1 x_norm_min = -1 x_norm = np.zeros(x.shape) for i in range(x.shape[0]): x_norm[i, :] = (x_norm_max - x_norm_min) / (x_max[i] - x_min[i]) * (x[i, :] - x_min[i]) + x_norm_min # Krok 5: Wypisanie znormalizowanych wartości minimalnych i maksymalnych print("\nWartości minimalne i maksymalne dla poszczególnych cech po normalizacji:") for i in range(x_norm.shape[0]): print(f"Cecha {i + 1}: znormalizowane min = {x_norm[i].min()}, max = {x_norm[i].max()}") # Krok 6: Rysowanie wykresu y_t plt.figure(figsize=(12, 6)) plt.plot(y_t.flatten(), label='y_t (Klasy)', marker='o') plt.title('Wykres y_t (Klasy)') plt.xlabel('Indeks Instancji') plt.ylabel('Identifikator Klasy') plt.xticks(np.arange(0, len(y_t.flatten()), step=10)) # Ustawienie odstępu dla czytelności plt.legend() plt.grid() plt.show()
Leave a Comment