IT

Max-Min Scaling: 정의 및 Python에서 구현하는 방법

rimicode 2023. 4. 26. 14:20
728x90
반응형
SMALL

 

데이터로 작업할 때 특정 범위로 확장해야 하는 경우가 많습니다. 널리 사용되는 조정 방법 중 하나는 최대-최소 스케일링입니다. 이 기술은 데이터를 0과 1 사이의 범위로 조정하여 비교 분석을 더 쉽게 만듭니다. 이 글에서는 Max-Min Scaling이 무엇인지, 왜 유용한지, Python에서 어떻게 구현하는지 살펴보겠습니다.

 

 

 

 

최대-최소 스케일링이란 무엇일까요?

 

최대-최소 스케일링은 데이터를 특정 범위로 다시 스케일링하는 데이터 스케일링 기술입니다. 특히 데이터의 크기를 0과 1 사이의 범위로 조정합니다. 여기서 데이터의 최소값은 0으로, 최대값은 1로 조정됩니다. 다른 모든 값은 이 두 값 사이에서 비례적으로 조정됩니다.

 

 

 

 

Max-Min 스케일링을 사용하는 이유는 무엇일까요?

 

Max-Min Scaling을 사용하려는 몇 가지 이유가 있습니다.

 

 

  • 비교: 데이터를 특정 범위로 확장하면 서로 다른 데이터 세트의 값을 더 쉽게 비교할 수 있습니다. 이는 데이터 시각화 및 기계 학습에 특히 유용할 수 있습니다.

 

  • 정규화(Normalization): Max-Min Scaling은 정규화의 일종으로, 데이터가 특정 범위에 속하도록 변환하는 데 사용되는 기술입니다. 정규화는 일부 기계 학습 알고리즘의 정확도를 개선하는 데 도움이 될 수 있습니다.

 

  • 해석: 스케일링된 데이터는 스케일링되지 않은 데이터보다 해석하기 쉬울 수 있습니다. 특히 값이 다른 스케일에 있는 경우 더욱 그렇습니다.

 

 

 

 

Python에서 최대-최소 스케일링을 구현하는 방법

 

이제 우리는 Max-Min Scaling이 무엇이고 왜 그것을 사용해야 하는지 알게 되었으니 Python에서 구현하는 방법을 살펴보겠습니다. scikit-learn 라이브러리를 사용하여 스케일링을 수행합니다.

 

 

먼저 확장하려는 몇 가지 예제 데이터를 생성해 보겠습니다.

import numpy as np

data = np.random.randint(0, 100, size=(10, 3))
 

 

이렇게 하면 0에서 100 사이의 임의 정수로 구성된 10x3 배열이 생성됩니다. 원래 데이터를 출력하여 어떻게 보이는지 확인할 수 있습니다.

print(data)
 

 

결과는 다음과 같습니다.

[[41 65 10]
 [16 11 61]
 [33  1 71]
 [51 97 22]
 [36 16 30]
 [92 47 44]
 [15 75 20]
 [93 83 33]
 [58 40 68]
 [ 6  7 63]]
 

 

이제 Max-Min Scaling을 사용하여 데이터의 크기를 조정해 보겠습니다.

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(data)
 

 

이렇게 하면 Max-Min Scaling을 사용하여 크기가 조정된 새 배열 'scaled_data'가 생성됩니다. 스케일링된 데이터를 출력하여 어떻게 보이는지 확인할 수 있습니다.

print(scaled_data)
 

 

결과는 다음과 같습니다.

[[0.40229885 0.66666667 0.        ]
 [0.11494253 0.10416667 0.83606557]
 [0.31034483 0.         1.        ]
 [0.51724138 1.         0.19672131]
 [0.34482759 0.15625    0.32786885]
 [0.98850575 0.47916667 0.55737705]
 [0.10344828 0.77083333 0.16393443]
 [1.         0.85416667 0.37704918]
 [0.59770115 0.40625    0.95081967]
 [0.         0.0625     0.86885246]]
 
 

 

보시다시피 데이터는 0에서 1 사이의 범위로 스케일링되었으며, 최소값은 0으로, 최대값은 1로 스케일링되었습니다.

 

 

 

 

최대-최소 스케일링은 데이터를 특정 범위로 재조정하는 널리 사용되는 스케일링 방법입니다. 스케일이 다른 데이터를 비교하고 분석하는 데 유용하며, 일부 머신 러닝 알고리즘의 정확도를 향상시키는 데 도움이 될 수 있습니다. Python에서는 scikit-learn 라이브러리를 사용하여 최대-최소 스케일링을 쉽게 구현할 수 있습니다. 최대-최소 스케일링 사용법을 이해하면 분석에 적합한 데이터 스케일링을 할 수 있습니다.

 

728x90
반응형
LIST