본문 바로가기

728x90

Data Science/Pandas

(14)
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를 활용한 결측치 변수를 처리해 보도록 하겠습니다. 그림과 같이 결측치가 존재하고, 결측치가 존재하는 데이터는 수치형 데이터인 것을 확인할 수 있습니다. 이제 이 결측치를 채워보도록 하겠습니다. 먼저 수치형 변수만 추출하여 데이터프레임을 재구성하고..
Confusion Matrix - 혼동행렬 분류분석을 수행할 때 예측기가 얼마나 정확한지 알고리즘 성능을 평가하기 위한 지표로는 accuracy(정확도)가 있습니다. 하지만 정확도 수치 하나만으로 분류기를 평가하기에는 부족한 경우가 많은데요. 이 경우에 분류분석에서 Confusion Matrix라는 행렬을 이용하여 다양한 평가 지표를 사용합니다. 그럼 Confusion Matrix에 대해서 알아보겠습니다. Confusion Matrix 이진 분류의 예측오류가 얼마이고, 어떠한 유형의 예측 오류가 발생하고 있는지 나타내는 지표 python 코드로는 아래와 같이 sklearn 라이브러리의 confusion_matrix 모듈을 활용합니다. from sklearn.metrics import confusion_matrix cm = confusion_mat..
PCA - 차원 축소 데이터 분석을 수행할 때 설명변수의 수가 많으면 오히려 과적합이 발생하여 알고리즘 성능이 저하되는 경우가 많습니다. 즉, 데이터의 수에 비해 데이터의 차원이 크면 알고리즘 성능이 떨어지는 '차원의 저주(Curse of Dimensionality)'가 발생하는데 그렇기 때문에 분석을 수행할 때 데이터의 크기와 설명변수의 수를 잘 따져보고 데이터를 잘 설명할 수 있는 변수를 선택 및 추출하여 모델 생성에 사용해야 합니다. 이번 포스팅에는 데이터의 차원을 축소하는 방법 중 하나인 PCA에 대해서 알아보겠습니다. PCA Principle Component Analysis: 주성분 분석 주성분 분석은 여러 변수 간에 존재하는 상관관계를 이용하는 차원 축소 방법입니다. 즉, 데이터를 축에 사영했을 때 분산이 가장 ..

728x90
반응형