Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 티스토리챌린지
- 웹훅
- clova
- certbot
- supabase
- 데이터베이스 #백엔드 #데이터
- OpenCV
- 코딩
- sw
- 깃허브
- 간편결제
- 결제
- 카카오페이
- Ai
- SQL
- 코딩테스트
- 백준
- 정렬
- 입점심사
- 토스
- 릿코드
- 네이버
- OCR
- 포트원
- openai
- 토스페이
- it #응집도 #결합도 #소프트웨어
- ETF
- 프로그래머스
- 오블완
Archives
- Today
- Total
싱싱미역상태
AICE 본문
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 |