사이킷런(scikit-learn) 이란 파이썬에서 제공하는 머신러닝 분석 라이브러리입니다
사이킷런에서는 머신러닝에 필요한 다양한 도구들을 모듈로 구분하여 제공합니다
오늘은 전처리 (preprocessiong) 모듈에서 제공하는 Min-Max Scaling 메소드를 사용해
정규화를 진행해보도록 하겠습니다
정규화란 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업으로
모든 값을 0과 1 사이로 조정하여 다양한 변수들간의 비교가 용이하도록 합니다
활용하고자 하는 데이터셋에서 변수들이 서로 다른 단위나 값 범위를 가질경우, 특히 한 변수의 값이 다른 변수들보다 훨씬 클때 정규화가 필요합니다.
예를 들어, 거리(m), 시간(시,분,초), 온도(°C) 등, 여러 단위의 변수를 한꺼번에 사용할때 단위 차이가 모델에 영향을 줄 수 있습니다
사용할 데이터셋의 일부입니다
서울시 도로 데이터로, 도로 위 20m 간격으로 찍힌 노드의 위치 데이터입니다
security_distance1,2,3 은 각 노드와 가장 가까운 보안등, 두번째로 가까운 보안등, 세번째로 가까운 보안등과의 거리를 나타냅니다 (m 단위)
위 3개의 필드에 대해 정규화를 진행하도록 하겠습니다
작게는 10m, 크게는 100m 까지 커지는 숫자를 0과 1사이로 조정합니다
아래는 파이썬 코드입니다.
# 데이터프레임 예시
# df = pd.read_csv('your_data.csv')
df = pd.read_csv('../data/정규화전.csv', encoding='cp949', low_memory=False)
print(df.columns)
# 정규화할 컬럼들
columns_to_normalize = ['security_distance1', 'security_distance2', 'security_distance3']
# Min-Max 스케일러 사용
scaler = MinMaxScaler()
# 정규화 적용
df[columns_to_normalize] = scaler.fit_transform(df[columns_to_normalize])
# 결과 출력
print(df.head())
결과 내용입니다
정규화된 자료를 활용하여 다른 데이터셋과 비교하거나, 혹은 다른 변수 또한 정규화를 진행해
동일한 조건에서 비교, 분석을 할 수 있습니다
감사힙니다
'Python' 카테고리의 다른 글
[Python] 판다스 (Pandas) 라이브러리 사용하여 데이터의 합계, 최대값, 평균, 비율 계산하기 (0) | 2024.11.01 |
---|---|
[Python] 판다스 (Pandas) 라이브러리 사용해서 csv 데이터 특정 칼럼에 문자열 추가하기 (0) | 2024.10.20 |
[Python] 카카오 API 사용해서 도로명 주소를 위도, 경도 좌표로 반환하기 (Geocoding) (2) | 2024.10.14 |
[Python] random 모듈의 다양한 기능 (0) | 2024.08.25 |
[Python] 다양한 문자열 연결(포매팅) 방법 (0) | 2024.08.19 |