Skip to content

About

Data Normalization — نرمال‌سازی داده‌ها به روش Z-score (استانداردسازی).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Data Normalization

نرمال‌سازی داده‌ها به روش Z-score (استانداردسازی).

ساختار پروژه

.
├── Data_Normalization.py    # کد اصلی
└── Test.py                  # تست‌ها

توابع

loc(nums_list)

میانگین لیست را برمی‌گرداند.
اگر لیست خالی باشد، None برمی‌گرداند.

loc([1, 2, 3])   # 2.0
loc([])          # None

scale(nums_list)

انحراف معیار جمعیت را برمی‌گرداند (تقسیم بر n، نه n-1).
اگر لیست خالی باشد، None برمی‌گرداند.

scale([1, 4, 6, 9])   # ≈ 2.9155
scale([])             # None

norm(x_lst)

لیست استانداردشده را برمی‌گرداند:

z = (x - mean) / std

اگر لیست خالی باشد یا انحراف معیار صفر باشد، همان لیست ورودی برگردانده می‌شود.

norm([1, 4, 6, 9])
# [-1.3719..., -0.3429..., 0.3429..., 1.3719...]

norm([10])            # [10]         (s = 0)
norm([12, 12, 12])    # [12, 12, 12] (s = 0)
norm([])              # []

مثال

import Data_Normalization as dn

lst = [-10, 0, 25, 50, 75, 100, 110]
print(dn.loc(lst))     # 50.0
print(dn.scale(lst))   # ≈ 43.83
print(dn.norm(lst))

اجرای تست‌ها

python Test.py

اگر همهٔ assertها پاس شوند، پیام موفقیت چاپ می‌شود.

نکات

  • انحراف معیار به‌صورت جمعیت محاسبه می‌شود، نه نمونه.
  • در حالت std = 0 (همهٔ اعداد برابر)، نرمال‌سازی تعریف‌نشده است؛ به‌جای خطا، لیست اصلی برگردانده می‌شود.
  • در تست‌ها از math.isclose برای مقایسهٔ اعداد اعشاری استفاده شده است.
  • در تست‌ها از is None به‌جای == None استفاده شده (طبق PEP 8).

فرمول

mean = Σx / n
std  = √( Σ(x - mean)² / n )
z    = (x - mean) / std

About

Data Normalization — نرمال‌سازی داده‌ها به روش Z-score (استانداردسازی).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages