Skip to content

POW FOR DATA SCALING AND NORMALIZATION

Python
#!/usr/bin/env python3
"""
POW FOR DATA SCALING AND NORMALIZATION
Power transformations in data science
"""

print("=== Power Transformation (Box-Cox style) ===")
data = [1, 4, 9, 16, 25]
powers = [0.5, 1, 2, 3]

print("Original data:", data)
for p in powers:
    transformed = [pow(x, p) for x in data]
    print(f"Power {p}: {transformed}")

print("\n=== Normalize to 0-1 Range with Powers ===")
values = [10, 20, 30, 40, 50]
min_val = min(values)
max_val = max(values)

# Linear normalization
normalized = [(x - min_val) / (max_val - min_val) for x in values]
print(f"Linear normalized: {[f'{x:.2f}' for x in normalized]}")

# Squared normalization (emphasizes larger values)
squared_norm = [pow((x - min_val) / (max_val - min_val), 2) for x in values]
print(f"Squared normalized: {[f'{x:.2f}' for x in squared_norm]}")

# Square root normalization (compresses larger values)
sqrt_norm = [pow((x - min_val) / (max_val - min_val), 0.5) for x in values]
print(f"Sqrt normalized: {[f'{x:.2f}' for x in sqrt_norm]}")

print("\n=== Euclidean Distance (L2 norm) ===")
point1 = [1, 2, 3]
point2 = [4, 6, 8]

# distance = sqrt(sum((a-b)^2))
squared_diffs = [pow(a - b, 2) for a, b in zip(point1, point2)]
distance = pow(sum(squared_diffs), 0.5)
print(f"Point 1: {point1}")
print(f"Point 2: {point2}")
print(f"Euclidean distance: {distance:.2f}")

print("\n=== Polynomial Features ===")
x_values = [1, 2, 3, 4, 5]

print("Features for x:", x_values)
print("x^1:", [pow(x, 1) for x in x_values])
print("x^2:", [pow(x, 2) for x in x_values])
print("x^3:", [pow(x, 3) for x in x_values])

print("\n=== Weight Decay in Learning Rate ===")
initial_lr = 0.1
epochs = [1, 5, 10, 20, 50]

for epoch in epochs:
    # lr = lr0 * (0.95)^epoch
    current_lr = initial_lr * pow(0.95, epoch)
    print(f"Epoch {epoch:2d}: learning rate = {current_lr:.6f}")