CCCPaste

03df64c0e09ad

"""
=============================================================
  SKALOWANIE CECH – Standaryzacja StandardScaler (Z-score)
  Materiał dydaktyczny
=============================================================
"""

import numpy as np
from sklearn import preprocessing

# ── Przykładowa cecha ─────────────────────────────────────────────────────────
x = np.array([[-1000.1],
              [ -200.2],
              [  500.5],
              [  600.6],
              [ 9000.9]])

print("Oryginalna cecha:")
print(x)

# ── Utworzenie przelicznika StandardScaler ────────────────────────────────────
scaler = preprocessing.StandardScaler()

# ── Dopasowanie i transformacja cechy ────────────────────────────────────────
standardized = scaler.fit_transform(x)

print("\nPo standaryzacji (Z-score):")
print(standardized)

# ── Parametry wyznaczone przez scaler ────────────────────────────────────────
print(f"\nŚrednia (μ)               : {scaler.mean_[0]:.4f}")
print(f"Odchylenie standardowe (σ): {scaler.scale_[0]:.4f}")

# ── Weryfikacja: średnia i odchylenie po standaryzacji ────────────────────────
print(f"\nŚrednia po standaryzacji  : {standardized.mean():.10f}  (≈ 0)")
print(f"Odch. std po standaryzacji: {standardized.std():.10f}   (≈ 1)")

# ── Odwrotna transformacja – powrót do oryginalnych wartości ──────────────────
odwrocona = scaler.inverse_transform(standardized)
print("\nOdwrotna transformacja (powrót do oryginału):")
print(odwrocona)

# ── Porównanie w tabeli ───────────────────────────────────────────────────────
print("\n{:>12}  {:>22}".format("Oryginał", "Po standaryzacji (Z-score)"))
print("-" * 38)
for orig, std_val in zip(x.flatten(), standardized.flatten()):
    print(f"{orig:>12.1f}  {std_val:>22.4f}")