싱싱미역상태

AICE 본문

AI

AICE

crossfit_wod 2025. 4. 22. 00:34

1) 탐색적 데이터 분석

라이브러리 로드

없으면 pip install <...>

  • Scikit-learn : import sklearn
  • Pandas : import pandas
  • Numpy : import numpy
  • Matplotlib : import matplotlib.pyplot as plt
  • Seaborn : pip install seaborn -> import seaborn as sns

데이터 로드 및 확인

데이터 로드(주어진 변수명에 맞게 pandas 패키지를 활용해 데이터 프레임을 로드합니다.)

  • df = pd.read_csv('파일경로’)
  • df = pd.read_excel(' 파일경로 ')
  • dj = pd.read_json(' 파일경로 ')
  • dx = pd.read_xml(' 파일경로 ')

데이터 확인(행, 열, 데이터 프레임 정보, 통계 정보 등을 확인합니다.)

  • .head() => 앞행 n개 확인 (default 5) => df.head(n)
  • .tail() => 뒷행 n개 확인 (default 5) => df.tail(n)
  • .columns => 데이터 프레임 열 이름 확인 => df.columns
  • .shape => 데이터 프레임 행, 열 개수 확인 => df.shape
  • .info() => 열 정보, Null 개수, 열 타입, 사이즈 등의 데이터 프레임 정보 확인 => df.info()
  • .describe() => 계산 가능한 값(수치형 변수)에 대한 통계 정보 확인 => df.describe()
  • .isnull() => Null인 데이터 확인 => 단순히 isnull()만 사용하기도 하지만 sum()과 함께 사용되어 행이나 열별로의 Null 개수를 세기 위해 주로 사용합니다. => df.isnull().sum()
  • .value_counts() => 범주형 변수에 대해 각 범주별 빈도수 확인 => normalize = True를 주면 정규화된 값으로 범주별 비율을 확인할 수 있습니다. => df[열 이름].value_counts(normalize = False/True)
  • .select_dtypes() => 원하는 데이터 타입에 해당하는 열만 데이터 프레임 형태로 확인 => df.select_dtypes(type)
    • type : int, float, str 등의 원하는 데이터 타입의 열만 추출
    • .colums 를 활용해 열 이름만 추출할 수 있다

2) 데이터 전처리

데이터 프레임 제거 및 변환

데이터 프레임 제거

  • .drop() => 선택 열 제거 => df.drop(axis = 0/1, inplace = False/True)
    • 리스트 형태로 여러 개의 열을 한 번에 제거할 수 있습니다.
    • axis : 행(0)과 열(1)을 주어 원하는 방향으로 제거할 수 있습니다.
    • inplace = True : 변수를 할당하지 않고 바로 적용할 수 있습니다.

데이터 프레임 변환

  • .replace() => 값 변경 => 원하는 값으로 변경하기 위해 사용하며 결측값 대체나 볌주형 변수를 라벨링할 때 사용
    • to_place : 주로 {'바꾸고자 하는 값' : '바뀌는 값'} 의 딕셔너리 형태로 주어집니다.
    • inplace = True : 변수를 할당하지 않고 바로 적용할 수 있습니다.
    • df.replace({'바꾸고자 하는 값' : '바뀌는 값'}, inplace = False/True)
  • .fillna() => 결측값 대체 => df['열이름'].fillna('바뀌는 값', inplace = False/True)
    • inplace = True : 변수를 할당하지 않고 바로 적용할 수 있습니다.
  • .astype() => 데이터 프레임 열 타입 변환 => astype은 바꾸고자 하는 열에 할당해주어야 변환 값이 적용된다.
    • type : int, float, str 등으로 원하는 타입으로 변환
    • df['열이름'] = df['열이름'].astype(type)

그룹집계

  • .groupby() => 그룹별 집계 함수 => 집계 함수에 맞게 그룹벼로 원하는 열을 집계할 수 있다.
    • by : 그룹의 기준이 되는 열로 여러 열을 기준으로도 할 수 있다.
    • as_index = bool : 그룹 기준 열을 인덱스화 할지 여부를 선택할 수 있다.
    • 집계함수 : sum, mean, count
    • df.groupby(by = ['그룹기준 열'])['집계 대상 열'].집계함수()

정규화/표준화(스케일링)

정규화/표준화는 각 변수 간의 측정단위 및 범위가 달라 값을 특정 값 사이로 변화해 비교가 가능할 수 있도록 하는 과정이다. 특히 거리를 기준으로 하는 모델에서는 꼭 필요한 과정이다.

정규화/표준화에는 다양한 방식이 있지만 Min Max Scale이 주로 시험에 출제

Min Max Scale은 sklearn의 MinMaxScaler를 사용하여 적용한다.

  • MinMaxScaler => MinMaxScaler를 사용하기 위해서는 로드하는 과정이 필요
    • fit : 기준이 되는 데이터를 기반으로 스케일러 값을 맞춘다.
    • transform : 기준 값을 기반으로 스케일링을 적용한다.
from sklearn.preprocessing import MinMaxScaler

# 객체 생성
mms = MinMaxScaler()

# 스케일링 적용
x_train = mms.fit_transform(X_train)
X_test = mms.fit_transform(X_test)

 

인코딩

인코딩은 문자열이나 범주형으로 된 변수를 수치화 하는 과정으로 문자열이 모델링 과정에서 해석되지 않기 때문에 필요한 과정

  • 라벨 인코딩 => LabelEncoder 를 사용하기 위해서는 로드하는 과정이 필요하다.
    • fit : 기준이 되는 데이터를 기반으로 인코더 값을 맞춘다.
    • transform : 기준 값을 기반으로 인코딩을 적용한다.
from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()

df['범주형 열'] = le.fit_transform(df['범주형 열'])
  • 원 핫 인코딩 => 원핫인코딩은 pandas 내의 메소드로 적용
    • colums : 원 핫 인코딩을 적용할 열 리스트
    • drop_first = True : 첫번째 범주는 제외하고 원핫 인코딩 적용
    • df = pd.get_dummies(df, columns = ['범주형 열'], drop_first = True)

'AI' 카테고리의 다른 글

구글과 네이버  (0) 2024.11.12
AI에서 LLM과 RAG의 관계  (1) 2024.11.12
OCR 성능을 위한 이미지 전처리 기술  (0) 2024.11.08
OpenAI Vision Token 개수 측정  (0) 2024.11.05