[TIL] 2022.09.22

문종현·2022년 9월 22일
0

TIL

목록 보기
2/119
post-custom-banner

TIL 첫 작성이다. 이전에 공부한 내용들부터 적을까 했는데 그건 조금 더 생각해보기로 하고 오늘자 TIL부터 정리해보려고 한다.

👉 오늘 한 일

  • 팀별 주간 키워드 복습 자료 만들기
    • 우리의 키워드 : EDA(Exploratory Data Analysis)
      • 구글독스와 구글 슬라이드를 사용해 2시간만에 뚝딱 만들었다.
  • Python 1주차 기초 과제
  • Python 자료형 복습

키워드 복습 자료

  1. 탐색적 데이터 분석(EDA : Exploratory Data Analysis): 주어진 데이터를 다각도에서 관찰하고 이해하는 과정
  • 선입견, 인지 오류가 개입되지 않도록 객관적이면서도 유연하게 데이터 탐색 가능
  • 기술통계(descriptive statistics)를 사용하여 데이터 분포, 이상치 등을 탐색하고 시각화
  1. EDA의 유형
한 번에 하나의 변수 확인한 번에 여러 개의 변수 확인
그래픽화 X단변량 비그래픽다변량 비그래픽
그래픽화 O단변량 그래픽다변량 그래픽
  1. EDA 분석 수단

1) 원본 데이터의 관찰 : 각 항목과 속성값 을 자세히 관찰할 수 있지만 큰 그림을 놓치기 쉬움
2) 요약 통계량 : 숲은 볼 수 있지만 나무는 보지 못할 수 있음
3) 적절한 시각화 사용 : 시각화를 통해 단점 보완

→ 탐색적 데이터 분석을 위해 원본 데이터, 요약 통계량, 시각화를 상호보완적, 순환적으로 사용하는 것이 중요!

  1. 분석 절차

1) 전체적인 데이터 분석

  • 분석의 목적과 목적에 맞는 변수가 무엇인지
  • 데이터형 확인/ 데이터의 오류나 누락이 없는지
  • 데이터를 구성하는 각 속성값이 예측한 범위와 분포를 갖는지 → 아니라면 그 이유가 무엇인지 확인
  • 이상치, 결측치 처리

2) 데이터의 개별 속성값 관찰

  • 개별 데이터를 관찰하며 전체적인 추세와 특이사항 관찰
  • 적절한 요약통계 지표 사용 (평균, 중앙값, 분산 등)
  • 시각화를 통해 데이터의 개별 속성에 어떤 통계 지표가 적절한지 결정

3) 속성 간의 관계분석

  • 개별 속성 관찰에서 찾아내지 못했던 속성들의 조합, 패턴 발견
  • 그래프를 통해 시각화하여 속성 간의 관계 분석
  • 상관계수를 통한 상관관계 확인
  1. 이상치, 결측치 처리
  • 이상치 : 관측된 데이터의 범위에서 많이 벗어난 아주 작은 값이나 큰 값

  • 결측치 : 관측되어야 할 값을 얻지 못한 데이터(e.g. N/A, NAN)

  • 이상치 기준 정하기

    • 표준편차 : 데이터의 분포가 정규분포를 이룰 때, 표준편차 범위를 벗어난 값을 이상치로 처리(z-score)
    • IQR : 데이터의 분포가 정규분포를 이루지 않을 때 사용, (Q1 - 1.5 IQR)보다 작거나 (Q3 + 1.5 IQR)보다 큰 데이터를 이상치로 처리
      보통 상수로 1.5와 3을 사용하지만 그 이상의 값을 곱하기도 하며, 값이 클수록 더욱 최극단의 이상치를 처리할 수 있음
  • 이상치 제거 방법

  1. 삭제 : 데이터가 아주 적은 경우 사용
  2. 대치 : 다른 값으로 변경
    1) 범주별 mean, median, mode 등으로 대치
    2) 회귀 분석을 사용한 대치
    3) 구간화.binning (숫자의 분포를 범주로 매핑)
  3. 스케일링 : log나 제곱근
    -> 자료의 분포가 오른쪽으로 꼬리가 길 때(왼쪽으로 치우쳤을 때) 사용
  4. 정규화 : MinMax, Z-score 등으로 정규화
  • 결측치 유형
  1. 완전 무작위 결측(MCAR) :결측치가 다른 변수들과 아무런 상관관계가 없는 경우
    e.g.)설문조사 시 단순히 응답하지 않았거나 응답이 누락된 경우 → 완전 무작위 결측에 해당
  1. 무작위 결측(MAR) : 특정 변수와 관련되어 누락됐지만, 변수들의 상관관계를 알 수 없는 경우
    e.g.) 만약 다수의 여성이 체중을 설문조사에서 응답하지 않았다고 했을 때, 성별의 영향으로 체중에 대해 응답을 하지 않았지만 성별과 체중은 아무런 관련이 없기 때문에 → 무작위 결측에 해당

  2. 비무작위 결측(NMAR) : 누락된 변수의 값이 누락된 이유와 관련이 있는 경우
    e.g.) 만약 체중이 무거운 사람들이 자신의 체중을 설문조사에 응답하지 않았다고 했을 때, 체중에 대한 응답이 누락된 것이 체중 자체에 영향을 받았기 때문에 → 비무작위 결측에 해당

  • 결측치 제거 방법
  1. 삭제
    1) 목록 삭제 : 결측치가 존재하는 열 전체 삭제
    2) 단일값 삭제 : 결측치가 존재하는 행만 삭제
  2. 대치
    1) Mean, median, mode 등으로 대치
    2) 조건부 대치(e.g. 결측치 이전, 이후값으로 채우기)
    3) 회귀 분석을 사용한 대치
  3. 예측 모델 사용

Python 1주차 기초 과제

  • 과제 일부 발췌
  1. for과 if를 사용하여 369게임을 만들어보세요.
for i in range(1, 21):
    if int(str(i)[-1]) in [3,6,9]:
        print("짝")
    else:
        print(i)
  1. 반복문(for) 두 개로 구구단을 출력해보세요.
for i in range(2, 10):
    print(f'{i}단 시작!')
    for j in range(1, 10):
        print(f'{i} X {j} = {i*j}')

Python 자료형 복습

type()을 사용하면 자료형 쉽게 확인 가능

  1. 숫자
    숫자를 나타내는 자료형으로는 정수(int), 부동소수점수(float), 복소수(complex)가 있음
>>> type(100000000)              # 정수
<class 'int'>
>>> type(2.8)                    # 부동소수점수
<type 'float'>
>>> type(3+4j)                   # 복소수
<type 'complex'>
  1. 시퀀스
    시퀀스 자료형에는 문자열(str), 리스트(list), 튜플(tuple), 사용자 정의 클래스가 있음
  • for문에서 사용 가능한 것이 시퀀스
>>> type("Love your Enemies, for they tell you your Faults.")
<class 'str'>
>>> type(['love', 'enemy', 'fault'])
<class 'list'>
>>> type(('love', 'enemy', 'fault'))
<class 'tuple'>
  1. 매핑
    딕셔너리(dict)와 같이 키(key)와 값(value)의 짝으로 이뤄진 것을 매핑이라고 함
>>> type({'one': 1, 'two': 2, 'three': 3})
<class 'dict'>
  1. 불리안(boolean)
    불(bool)은 참, 거짓을 표현함
>>> type(False)
<class 'bool'>
>>> type(3 >= 1)
<class 'bool'>
>>> type(True == 'True')
<class 'bool'>
  1. 세트
    세트(set)는 집합을 표현함
  • 세트는 원소의 순서가 유지되지 않고 중복 원소를 갖지 않는 ‘집합’으로서의 특징이 있으며, 집합 연산을 사용할 수 있음
>>> fruits = {'apple', 'banana', 'orange'}

이상 첫 TIL을 마친다.

profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글