Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- Dictionary
- matplotlib
- IN
- 최솟값
- 덴드로그램
- 분류 결과표
- append()
- 최댓값
- hierarchical_clustering
- sklearn
- string
- del
- numpy
- Machine Learning
- nan
- DataFrame
- DataAccess
- data
- list
- len()
- 반복문
- function
- wcss
- dendrogram
- Python
- elbow method
- insert()
- pandas
- count()
- analizer
Archives
- Today
- Total
개발공부
데이터 전처리 기초 #4 피처 스케일링 Feature Scaling(표준화, 정규화) 본문
Feature Scaling
- 서로 다른 별수의 값 범위를 일정한 수준으로 맞추는 작업이다.
- 변수 값의 범위 또는 담위가 달라서 발생 가능한 문제를 예방할 수 있다.
- 머신러닝 모델이 특정 데이터의 편향성을 가지는 것을 방지할 수 있다.
- 데이터 범위 크기에 따라 모델이 학습하는 데 있어서 bias가 달라질 수 있으므로
- 하나의 범위 크기로 통일해주는 작업(Feature Scaling)은 필요할 수 있다.
Feature Scaling의 2가지 방법

표준화(Standardisation)
- 평균을 기준으로 얼마나 떨어져 있느냐? 같은 기준으로 만드는 방법
- 음수도 존재, 데이터의 최대최소값 모를때 사용.
앞서 하던 데이터로 실습해보자.

위와 같이 df의 Age, Salary 컬럼의 값들은 같은 스케일링이 아니므로 이를 피처 스케일링해줘야 한다.

위의 X는 원핫 인코딩을 한 데이터다.
이를 표준화하려면 아래와같이 sklearn.preprocessing 라이브러리의 StandardScaler를 사용하면 된다.
>>> from sklearn.preprocessing import StandardScaler
>>> X = s_scaler.fit_transform(X)
>>> X
array([[ 1. , -0.57735027, -0.57735027, 0.69985807, 0.58989097],
[-1. , -0.57735027, 1.73205081, -1.51364653, -1.50749915],
[-1. , 1.73205081, -0.57735027, -1.12302807, -0.98315162],
[-1. , -0.57735027, 1.73205081, -0.08137885, -0.37141284],
[ 1. , -0.57735027, -0.57735027, -0.47199731, -0.6335866 ],
[ 1. , -0.57735027, -0.57735027, 1.22068269, 1.20162976],
[-1. , 1.73205081, -0.57735027, 1.48109499, 1.55119478],
[ 1. , -0.57735027, -0.57735027, -0.211585 , 0.1529347 ]])
정규화(Nomalisation)
- 0 ~ 1 사이로 맞추는 것.
- 데이터의 위치 비교가 가능
- 데이터의 최댓값, 최솟값을 알 때 사용
X를 표준화하려면 아래와같이 sklearn.preprocessing 라이브러리의 MinMaxScaler를 사용하면 된다.
>>> from sklearn.preprocessing import MinMaxScaler
>>> m_scaler = MinMaxScaler()
>>> X = m_scaler.fit_transform(X)
>>> X
array([[1. , 0. , 0. , 0.73913043, 0.68571429],
[0. , 0. , 1. , 0. , 0. ],
[0. , 1. , 0. , 0.13043478, 0.17142857],
[0. , 0. , 1. , 0.47826087, 0.37142857],
[1. , 0. , 0. , 0.34782609, 0.28571429],
[1. , 0. , 0. , 0.91304348, 0.88571429],
[0. , 1. , 0. , 1. , 1. ],
[1. , 0. , 0. , 0.43478261, 0.54285714]])
'Python > Machine Learning' 카테고리의 다른 글
| Linear Regression (0) | 2022.05.09 |
|---|---|
| 데이터 전처리 기초 #5 sklearn라이브러리를 이용해 Dataset 나누기 (Training,Test) (0) | 2022.05.09 |
| 데이터 전처리 기초 #3 sklearn(사이킷런) 라이브러리를 이용해 카테고리컬 데이터 처리하기 (레이블 인코딩, 원 핫 인코딩) (0) | 2022.05.06 |
| 데이터 전처리 기초 #2 데이터(X)와 레이블(y)로 나누기 (0) | 2022.05.06 |
| 데이터 전처리 기초 #1 Nan처리하기 (0) | 2022.05.06 |