데이터 전처리란, 수집한 데이터를 분석에 적합한 형태로 가공하는 과정입니다.
1)결측치 및 2)이상치 처리, 3)중복값 제거, 4)범주형 변수 변환, 5)특성 스케일링 등의 작업이 포함됩니다.
● URL : https://colab.research.google.com/drive/1GT7HhE11T04-poSQKJnkIDd6FwzmIBHz#scrollTo=RopL7tUZSQkT
Step 1. Importing the libraries, 라이브러리 불러오기
- numpy : 행렬, 배열 등 대규모 데이터 연산 및 처리 라이브러리, Python
- pandas : 데이터 분석 라이브러리, Python
- matplotlib : 데이터 시각화 라이브러리, Python
Step 2. Importing the dataset, 데이터세트 불러오기
(Data.csv)
- X : 특성 행렬 (독립)
- y : 종속 변수
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
(1) .iloc[] : 추출하려는 행과 열의 인덱스를 받는 함수
(형식) '하한:상한'으로 범위 지정
단, 하한은 포함되지만 상한은 제외된다.
ex) .iloc[:, :-1] : 모든 행, 마지막 열 제외하고 모든 열
ex) .iloc[:, -1] : 모든 행, 마지막 열
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Step 3. Taking care of missing data, 결측값 처리
방법 1) 무시하고 삭제
방법 2) 평균 값으로 대체
- sklearn(사이킷런) : 데이터 마이닝 및 데이터 분석을 위한 라이브러리
- impute : 결측값 처리 위한 모듈
- SimpleImputer : 결측값 처리 위한 클래스
※ 평균(mean), 중앙값(median), 최빈값(most frequent), 또는 상수(constant)로 결측값을 대체
- imputer : 인스턴스
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
(1) missing_values=np.nan : 결측값 nan으로 표시
(2) strategy='mean' : 평균(mean)으로 결측값 대체
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
- fit : 인스턴스를 특성 행렬에 연결하는 함수
- transform : 대체 함수
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
(1) imputer.fit(X[:, 1:3]) : 각 열의 평균(mean) 계산하여 인스턴스에 저장
(2) X[:, 1:3] =imputer.transform(X[:, 1:3]): 결측값(nan)을 평균(mean)으로 대체한 값을 특성 행렬(X)에 저장
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Step 4. Encoding categorical data, 범주형 데이터 인코딩
방법 1) One-hot Encoding (원-핫 인코딩)
(1) Encoding the Independent Variable
- ct : 인스턴스
- fit_transform : 인스턴스를 특성 행렬에 연결 및 해당 값 대체 함수
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
(1) transformers=[('변환 유형', 클래스명, [변환할 열 인덱스])]
(2) remainder : 나머지 열 처리 방법 명시
(3) 'passthrough' : 나머지 열 변환 안함
(4) np.array() : numpy 배열 변환
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
(2) Encoding the Dependent Variable - yes/no
Step 5. Splitting the dataset into the Training set and Test set, 데이터 분할
- train_test_split : 데이터를 학습 세트와 테스트 세트로 나누는 클래스
(형식) train_test_split(특성 행렬, 종속 변수, 분할비, 옵션)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
(1) random_state = 1 : 동일하게 훈련 세트/테스트 세트 분할되도록 시드 고정
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
※ 데이터 분할 후, 특성 스케일링한다.
Step 6. Feature Scaling, 특성 스케일링
- StandardScaler : 데이터 표준화 클래스
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
(1) X_train = sc.fit_transform(X_train) : 특성 행렬 훈련 세트(X_train) 표준화하여 스케일러 생성 후, 모든 값의 스케일 적용
(2) X_test = sc.transform(X_test) : 기존 생성된 특성 행렬 훈련 세트(X_train)의 스케일러를 특성 행렬 테스트 세트(X_test)에 적용
※ 훈련 세트(X_train)에 사용한 스케일러를 테스트 세트(X_test)에 동일하게 사용해야한다.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
[참고] 특성 스케일링 종류
(ㄱ) 정규화
※ 정규분포 따른다면 정규화 사용한다.
(ㄴ) 표준화
※ 대부분의 경우 표준화 사용한다.
'여러가지 > Python' 카테고리의 다른 글
섹션 7. 다중 선형 회귀 (Multiple Linear Regression) (0) | 2024.07.15 |
---|---|
섹션 6. 단순 선형 회귀 (Simple Linear Regression) (0) | 2024.07.15 |
Day26 - List Comprehension (0) | 2024.05.14 |
Day25 - .csv 파일 및 pandas 라이브러리 (1) | 2024.05.02 |
Day24 - files, directories and paths (0) | 2024.05.01 |