분류 전체보기 27

Data Processing (3) 불균형 데이터 처리

출처: https://www.youtube.com/watch?v=Vhwz228VrIk&list=PLpIPLT0Pf7IoTxTCi2MEQ94MZnHaxrP0j&index=7 안녕하세요! 이전에 신용카드 사기 검출 실습에서 불균형 데이터를 다뤘었는데 불균형 데이터를 처리하는 다른 방법들은 무엇이 있을까 궁금하여 찾아보다 제가 강의를 자주 듣던 김성범 교수님 채널에서 불균형 데이터 분석을 위한 샘플링 기법 강의를 보고 공부하여 포스팅하게 되었습니다. 그럼 불균형 데이터를 처리하는 여러 샘플링 기법들에 대해서 알아보겠습니다. 불균형 데이터란? 1-1. 개념 1-2. 문제점 데이터를 조정해서 불균형 데이터를 해결하는 샘플링 기법들 2-1. 언더 샘플링 2-1-1. Random Sampling 2-1-2. Tome..

Data Processing (2) Feature Scaling

Feature Scaling이란? 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업이다. Feature Scaling을 하는 이유는? 변수 값의 범위 또는 단위가 달라서 발생 가능한 문제를 예방할 수 있다. 머신러닝 모델이 특정 데이터의 편향성을 갖는 걸 방지할 수 있다. 데이터 범위 크기에 따라 모델이 학습하는 데 있어서 bias가 달라질 수 있으므로 하나의 범위 크기로 통일해주는 작업이 필요할 수 있다. 연속형 변수를 가진 피쳐들의 단위가 대부분 비슷하지만, 다른 단위가 섞여 있으므로 정규화를 진행하고, 범주형 변수를 가진 피쳐들은 label encoding을 진행해 주었다. Scaling Code 작성 categorical_features = ['COMPONENT_ARBITRARY', 'YE..

Data Processing (1) 결측치 처리

Isolation Forest 모델을 import해서 clf라는 변수로 지정해주고, for문과 연속형 변수를 갖는 컬럼명만 모아놓은 numerical_features 리스트를 이용하여 컬럼 하나씩 모델에 학습시켜준다. train_list = train.columns.to_list() for i in train_list: a = train[i].isnull().sum()/len(train)*100 print(i, '결측치:', a, '%') percent70UP = list(train_info[train_info['nullPCT'] >= 70.0]['dataFeatures']) train = train.drop(percent70UP,axis=1) print(train.shape) 결측치 비율이 70% 이상..

EDA (4) 데이터 시각화

target값 분포 시각화 plt.subplots(figsize = (8,8)) plt.pie(train['Y_LABEL'].value_counts(), labels = train['Y_LABEL'].value_counts().index, autopct="%.2f%%", shadow = True, startangle = 90) plt.title('Anomaly Ratio', size=20) plt.show() 이진분류에서 1값의 비율이 8.53%, 즉 target값은 불균형 데이터인 것을 알 수 있다. Feature 시각화 categorical 변수인 feature가 target값(anomaly)과 어떤 관계가 있는지 seaborn 라이브러리의 countplot을 이용하여 나타내 보았다. countplo..

EDA (3) 결측치, 이상치 확인

결측치 확인 test.csv와 train.csv의 결측치를 확인하였다. Train 데이터의 Feature 중 Test 데이터에 존재하지 않는 Feature(진단 환경이 아닌 Feature)는 대부분 결측치인 것을 확인할 수 있다. 이상치 확인 boxplot을 그려 이상치를 확인하는 방법 column 특성에 따라 정의 # 범주형, 연속형 변수의 특징으로 분할해 정의함. categorical_features = ['ID','COMPONENT_ARBITRARY', 'YEAR', 'Y_LABEL'] numerical_features = [i for i in train.columns if i not in categorical_features] test_features = [i for i in test.column..

EDA (2) 데이터프레임으로 정리

DACON 에서 TeamBALAB이 공유한 EDA코드를 바탕으로 EDA를 진행하였다. train = pd.read_csv('/content/drive/MyDrive/train.csv') test = pd.read_csv('/content/drive/MyDrive/test.csv') # show dataframe for each features that we have dataFeatures = [] dataType = [] null = [] nullPCT = [] unique = [] minValue = [] maxValue = [] uniqueSample = [] for item in list(train): dataFeatures.append(item) for item in dataFeatures: da..

EDA (1) 도메인 지식, Column 정의

1.EDA란? 1) 정의 수집한 데이터가 들어왔을 때, 이를 다양한 각도에서 관찰하고 이해하는 과정입니다. 한마디로 데이터를 분석하기 전에 그래프나 통계적인 방법으로 자료를 직관적으로 바라보는 과정입니다. 2) 필요한 이유 데이터의 분포 및 값을 검토함으로써 데이터가 표현하는 현상을 더 잘 이해하고, 데이터에 대한 잠재적인 문제를 발견할 수 있습니다. 이를 통해, 본격적인 분석에 들어가기에 앞서 데이터의 수집을 결정할 수 있습니다. 다양한 각도에서 살펴보는 과정을 통해 문제 정의 단계에서 미쳐 발생하지 못했을 다양한 패턴을 발견하고, 이를 바탕으로 기존의 가설을 수정하거나 새로운 가설을 세울 수 있습니다. 3) 과정 기본적인 출발점은 문제 정의 단계에서 세웠던 연구 질문과 가설을 바탕으로 분석 계획을 세..