PYTHON

파이썬 합, 평균, 분산, 표준편차, Feature Scailing(표준화, 정규화)

Positive_Monster 2022. 4. 9. 17:03

 

더보기

▣ 주요 키워드

  1. 합, 평균, 분산, 표준편차
  2. Feature Scailing
    • 표준화
    • 정규화

★ 합, 평균, 분산, 표준편차

> 합 = 관측값의 합
> 평균 : 관측값의 합 / 관측값의 수
> 분산 : 편차제곱합 / 관측값의 수
	※ 편차제곱합 :  편차**2 + 편차**2 .... (편차제곱들의 합)
	※ 편차 : 관측값 - 평균
> 표준편차 : 루트(분산)


def sum(*arg):
    total = 0
    for i in arg:
        total += i
    return total

sum(1,2,3,4,5)

def mean(*arg):
    return sum(*arg)/len(arg)

mean(1,2,3,4,5)

def variance(*arg):
    total = 0
    for i in arg:
        total += (i - mean(*arg))**2
    return total/(len(arg))

variance(1,2,3,4,5)

import math
def stddev(*arg):
    return math.sqrt(variance(*arg))

stddev(1,2,3,4,5)

> numpy를 이용하여 간단히 계산할 수 있다
import numpy as np

x = 1,2,3,4,5
np.sum(x) # 합
np.mean(x) # 평균 
np.var(x) # 분산
np.std(x) # 표준편차

★ Feature Scailing

1. 표준화(standardization)

- z-score : (관측값 - 관측값의 평균) / 관측값의 표준편차

- 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업(feature들의 범위를 정규화)

data = 100,5,2,1,8,7,11,15,18,200

def standardization(*arg):
    data2 = []
    for i in arg:
        data2.append((i- mean(*arg))/stddev(*arg))
    return data2
    
standardization(*data)
# 각 값들을 표준화 한 값들

2. 정규화(nomalization)

- 서로 다른 피처의 크기를 동일한 크기로 변환해주는 개념

- 0~1 값으로 변환하는 방법

- (관측값 - 관측값의 최솟값) / (관측값의 최댓값 - 관측값의 최솟값)

※ 최대값 
def max_(*arg):
    temp = arg[0]
    for i in arg:
        if temp < i:
            temp = i
        else:
            continue
    return temp
    
max_(*data) # 만든 함수
max(data) # 내제되어있는 함수

※ 최소값
def min_(*arg):
    temp = arg[0]
    for i in arg:
        if temp > i:
            temp = i
        else:
            continue
    return temp
    
min_(*data)
min(data)
정규화

def nomalization(*arg):
    data2 = []
    for i in arg:
        data2.append((i-mean(*arg))/(max(data) - min(data)))
    return data2
    
nomalization(*data)