본문 바로가기

728x90

Data Science

(16)
Feature Selection Feature Extraction: 데이터의 feature를 어떻게 유용하게 만들 것인가 Feature Selection: 데이터에서 유용한 피처를 어떻게 선택할 것인가 feature selection 방법론 1. Filter method: feature 간 관련성 측정 (correlation) 2. Wrapper method: Feature subset의 유용성 측정 3. Embedded method: Feature subset의 유용성 측정하지만 내장 metric 사용 1. Filter Method - 가장 많이 사용 - 통계적 측정 방법 사용: feature 간 상관관계 파악 - 높은 상관계수(영향력)을 가지는 feature 사용 information gain, chi-square test, fis..
Sampling 기법 불균형 데이터 클래스 분포를 예측해야 하는 분류문제에서 예측 라벨 값의 분포수가 현저히 차이나는 데이터로, 불균형한 분포를 가진 데이터로 학습하면 성능에 문제가 발생할 수 있습니다. 불균형한 데이터 셋은 이상 데이터를 정확히 찾아내지 못할 수 있다는 문제점이 존재합니다. 해결방법 소수 클래스에 속하는 데이터들을 추가로 수집합니다. 불균형 데이터 분류 모델에 적합한 성능평가의 지표를 선정합니다. 모델 학습 전, 데이터를 적절한 방식으로 Sampling 합니다. 아래와 같은 샘플링의 종류가 있습니다. UnderSampling: Random Sampling, Tomek Links 등 OverSampling: Resampling, SMOTE, Borderline SMOTE, ADASYN 등 비용 또는 가중치를 ..
Sort 커스터마이징 (범주형 변수) import pandas as pd import numpy as np from pandas.api.types import CategoricalDtype df = pd.DataFrame({ 'cloth_id': [1001, 1002, 1003, 1004, 1005, 1006], 'size': ['S', 'XL', 'M', 'XS', 'L', 'S'], }) df cat_size_order = CategoricalDtype( ['XS', 'S', 'M', 'L', 'XL'], ordered=True ) df['size'] = df['size'].astype(cat_size_order) # 형 변환 필수 df.sort_values('size') df['size'].cat.codes # 결과 ``` 0 1 1 ..
pandas의 transform 함수 (apply 함수와의 차이) 판다스에서 제공하는 transform() 함수에 대해서 알아보겠습니다. 그리고 apply 함수와의 차이점도 알아보겠습니다. transform()과 apply() 함수는 보통 아래와 같은 경우에 사용하면 유용합니다. Transforming values (값 변환) Combining groupby() results (groupby를 사용하여 집계 함수 적용 시) Filtering data (데이터 필터링) Handling missing value at the group level (그룹별 특정 값으로 null 값 채울 때) 하나씩 코드로 살펴보겠습니다. Transform 1. Transforming values: 값 변환 아래와 같은 데이터프레임으로 실습해 보겠습니다. import pandas as pd i..
Pandas로 datetime 다루기 이번 포스팅은 시계열 데이터나 시간을 속성으로 가지는 데이터를 다루기 위해 pandas에서 제공하는 datetime 모듈을 사용하여 데이터를 다루어 보도록 하겠습니다. String을 datetime으로 먼저, string으로 되어 있는 데이터 타입을 datetime 데이터 타입으로 여러 가지 방법으로 변환해 보겠습니다. 기본 방법 dayfirst = True 인자 to_datetime 함수에 dayfirst = True 를 넣으면, day(일)가 month(월)보다 앞으로 나와서 date 형으로 변환됩니다. Custom format으로 변환하기 string형으로 되어 있는 데이터를 datetime 형으로 바꿀 때, string 형 데이터의 날짜 순서가 뒤죽박죽 섞여 있거나 다른 형식으로 되어 있을 때, ..
데이터 분석 및 학습 (전체 과정) 이번 포스팅에서는 실제로 데이터를 이용하여 데이터 전처리부터 특정 머신러닝 모델을 활용하여 학습을 하는 과정까지를 정리해 보았습니다. 1. 데이터 준비 아래와 같이 diabetes 데이터를 불러옵니다. 이 데이터를 통해 우리는 Outcome 변수를 예측해야 합니다. import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns df = pd.read_csv("diabetes.csv") df.head() 2. EDA a. 시각화 1 먼저 종속변수 Outcome의 평균이 컬럼별로 어떤지 시각화해 보겠습니다. diabetes = df.groupby('Outcome').mean() fig, axes = plt..
GridSearch를 이용한 model training 이번 포스팅에는 GridSearch 모듈을 사용하여 3가지의 모델을 학습해 보겠습니다. 먼저, 아래와 같은 데이터를 활용하여 간단한 데이터 전처리 후, 모델에 SVR, RandomforestRegressor, XGBoostRegressor 모델에 GridSearchCV를 적용해 보겠습니다. 1. One-Hot Encoding 범주형 변수들을 더미 변수를 이용하여 적절하게 변환하였습니다. 2. GridSearchCV 적용 파라미터 후보들을 리스트로 넣어서 아래와 같은 결과를 얻었습니다. grid_svm의 속성 중, cv_results_를 출력해보니 아래와 같은 딕셔너리 형 데이터가 나오는 것을 확인할 수 있습니다. 이 데이터를 이용하여 점수가 제일 좋은 파라미터를 확인해 보도록 하겠습니다. cv_resul..
결측치 처리 - KNNImputer 결측 데이터를 처리하는 방법으로는 크게 2가지 방법이 있습니다. 단순 대치법: 수치형 변수라면, 각 컬럼의 평균이나 중앙값을 사용하여 결측치를 채울 수 있습니다. 만약 범주형 변수라면, 최빈값을 사용하여 대치할 수 있습니다. KNN을 이용한 결측치 대체: 보간법 중 결측치가 없는 컬럼들의 최근접 이웃 알고리즘을 통해 결측치가 있는 변수를 채울 수 있습니다. 단, 이 방법은 거리 계산이 가능한 수치형 변수만 가능합니다. 아래의 데이터를 활용하여 KNNImputer를 활용한 결측치 변수를 처리해 보도록 하겠습니다. 그림과 같이 결측치가 존재하고, 결측치가 존재하는 데이터는 수치형 데이터인 것을 확인할 수 있습니다. 이제 이 결측치를 채워보도록 하겠습니다. 먼저 수치형 변수만 추출하여 데이터프레임을 재구성하고..

728x90
반응형