본문 바로가기

파이썬 & 머신러닝과 딥러닝

파이썬 분석 도구 및 주요 함수의 이해, 데이터 수집 및 정제 (데이터 선택)

 

파이썬 분석 도구 및 주요 함수의 이해

 

상수와 변수

 

상수

: 값이 변하지 않는 숫자, 문자, 문자열 같은 고정된 값

데이터 분석에서 사용하지 않는다

 

변수

: 변화된 값으로 들어있는게 데이터분석 대상

매개변수 : 수치를 인수로 던지는 것

 


 

기본자료형

 

숫자형

: 숫자로 이루어진 자료형

정수, 실수, 8진수, 16진수 (색상 지정시 사용)

 

문자형

문자열 포맷팅 % : 문자열 안에 어떤 값을 삽입하는 방법

color = '파랑'
s = '나는 %s를 좋아합니다.' % color
# %s에 color값을 대입

 

 


 

자유도

 

 

  • 식의 구성:
    • yy: 종속 변수 (Dependent variable)
    • β0: 상수항 (Intercept)
    • β1: xx에 대한 기울기 (Slope of xx)
    • β2: x^2에 대한 계수 (Coefficient of x^2)
    • x: 독립 변수 (Independent variable)
  • 회귀식과 계수 해석:
    • β0, β1, 는 각각 회귀모형의 계수(coefficient)입니다.
    • β1x에 대한 기울기를 나타내며, β2\beta_2x2x^2에 대한 기울기를 나타냅니다.
  • 자유도 (Degrees of Freedom):
    •  모집단 또는 샘플에서 자유롭게 변화할 수 있는 독립적인 데이터의 수를 의미
    • 자유도는 n−k−1로 표현
      • n: 샘플의 크기 (데이터 포인트의 수)
      • : 회귀식에 포함된 독립 변수의 수 (여기서는 xx^2이므로 k=2)
  • 회귀식의 특성:
    • 주어진 회귀식은 이차 다항식으로, x의 제곱에 대한 영향을 포함
    • β0가 없을 경우 회귀식은 축을 원점을 지나게 됨
    • β0, β1, β2의 값에 따라 회귀식의 모양이 결정됨

 

 


 

복합 자료형

 

리스트 (List)

  • 가변자료형
  • 머신러닝에서 파라미터값들을 리스트 구조로 넣고 사용

( 머신러닝 모델에서 사용할 하이퍼파라미터들을 리스트에 담아 모델에 전달하고,

모델 학습 시 이들 값을 활용하여 모델을 설정하거나 조정할 수 있다.

또한, 모델의 학습이나 예측 결과를 리스트 형태로 반환할 때도 사용됨 )

 

 

튜플 (Tuple)

  • 리턴되는 값 2개 이상일시 튜플로 반환
  • 하이퍼파라미터를 보호할 때 사용 (하이퍼파라미터 : 사람이 지정한 파라미터, 수식 내 값이 변하지 X)
  • 변경 불가능한(immutable) 시퀀스 형태의 자료형으로, 각 요소는 순서대로 저장되어 있음

 

딕셔너리 (Dictionary)

  • 데이터프레임 구조를 쉽게 만든다
  • .json → pd.DataFrame(딕셔너리구조로 바꿀 수 있음
  • 그리드 서치 할 때 사용

( 그리드 서치(Grid Search) : 머신러닝 모델에서 하이퍼파라미터를 최적화하는 기법 중 하나 )

 

 

집합 (Set)

중복을 허용하지 않음, 순서 없음 -> 인덱싱으로 값 얻기 불가능

  • & (intersection) : 교집합
  • | (union) : 합집합 (or)
  • - (difference) : 차집합

 

익명함수 (lambda 키워드)

함수 이름 지정 X

자동 리턴 기능 존재

 


 

데이터 수집 및 정제

 

  • 메크로 데이터 : 한 번 가공된 데이터
  • 마이크로 데이터 : 발생되는 원시 데이터

 

불균형 데이터

: 목표변수 y에 범주형 데이터만 발생

-> 특정 클래스(범주)가 다른 클래스에 비해 현저히 적게 발생하는 상황

 

  • under sampling : 데이터 줄이는 거
  • over sampling : 데이터 늘리는 거, 조심하게 다뤄야한

 

SMOTE(Synthetic Minority Over - sampling Technique)

: 오버샘플링 기법으로 불균형 데이터 문제를 해결하기 위해 사용

-> 적은 데이터 세트에 있는 개별 데이터들의 K 최근접 이웃을 찾아서

이 데이터와 K개의 이웃들의 차이를 일정값으로 만들어서

기존 데이터와 약간의 차이가 나는 새로운 데이터들을 생성

설치 : pip install imbalanced-learn

 

 


 

pandas 패키지

시리즈 : 1차원 배열구조

데이터프레임 : spreadsheet(m * n 행렬구조) 형식

 

 

데이터 읽어보기

-> sheet_name='Sheet1': 읽어올 시트의 이름을 'Sheet1' 로 지정

 

 

 

데이터 저장하기

-> euc-kr 인코딩을 사용하여 한글이 깨지지 않도록 함 (최신 버전에서 엑셀은 X)

-> index=False : 데이터프레임의 인덱스(행 번호)를 파일에 포함하지 않도록 

 

 

데이터 내용 미리보기

-> 앞부분 미리보기 : 데이터프레임객체.head(n)

-> 뒷부분 미리보기 : 데이터프레임객체.tail(n)

 

 

 

요약정보 확인하기

 

  • 데이터프레임 크기 확인 : 객체.shape()
  • 데이터프레임 기본 정보 : 객체.info()
  • 기술통계량 정보 요약 : 객체.describe() -> inclue = 'all'을 추가하면 문자열에 대한 unique, top, freq 정보 추가

 

 

-> dtypes : 각 열의 데이터 타입을 확인

 

  • mpg 열의 데이터 타입은 float64
  • cyl 열의 데이터 타입은 int64
  • disp 열의 데이터 타입은 float64

-> df.mpg.dtypes : df 데이터프레임의 mpg 열의 데이터 타입을 보여줌

 

 

 

 

데이터 선택

slice : 이름 또는 인덱스를 이용한 선택

loc : 이름을 이용한 선택

iloc : 위치를 이용한 선택

 

 

데이터 선택 연습

 

slice를 이용한 선택

 

 

loc를 이용한 선택

 

iloc를 이용 선택

 

 

 

query를 이용한 선택

 

 

query를 이용한 선택 - 복수 조건

 

 

filter로 데이터 선택 연습

  • axis = 0 : 행단위로 처리
  • axis = 1 : 컬럼 단위로 처리

컬럼 이름 직접 입력
regrex 이용, '1' 포함
regex 이용, '1'로 시작하는 컬럼

 

조건 입력 및 mask 적용

 

 


 

데이터 결합

 

연결(concantenate) / 추가(append)

  • 기존 열을 사용하지 않고 단순히 데이터를 연결 (concantenate) -> 데이터 자료 수 증가
  • 기본적으로는 위/아래로 데이터 행 추가, 단순히 두개의 Series 또는 DataFrame 형테를 연결하여 index값 중복 발생
  • A와 B를 붙일 때 -> concat(A, B, axis = 0)
  • A에 B를 붙일 때 -> A.append(B)

 

데이터 결합 연습

 

concat을 이용

ignore_index = True : 기존 index가 아닌 새로운 index로 재설정