Untitled

 avatar
unknown
python
10 days ago
1.7 kB
4
Indexable
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