[TIL]데이터 분석 부트캠프(4기) 10일차

Data_Student·2024년 10월 22일
0

TIL

목록 보기
10/34

[TIL]데이터 분석 부트캠프(4기) 10일차

0. 들어가며

  • TIL 작성 방법 및 구성에 대해 다시 고민하고 새롭게 정리할 예정
  • 기존에 작성했던 TIL들에 대해서는 글 목록에 추가 예정
  • 이번 주까지 대략적인 정리법에 대해 생각하고 구성하기!
  • 이러한 생각을 하게 된 이유는 다른 사람들의 블로그를 들어가면 너무 깔끔하기 때문에
    나도 그렇게 하고 싶다는 생각과 나중에 편하게 보고 싶기 때문에 바꾸기로 결심!

1. 오전 일과

  • 1-1 코드카타

       # 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
        # 오늘 코드카타 시간 중 가장 많은 시간을 사용
        # max 함수를 사용하여 풀었으나 왜 그런지에 대한 이해가 필요
        # if 대신 case when 문을 사용할 수 있음
      SELECT car_id, 
             if(max('2022-10-16' between start_date and end_date) = 1, "대여중", "대여 가능") AVAILABILITY
      from CAR_RENTAL_COMPANY_RENTAL_HISTORY
      group by 1
      ORDER BY CAR_ID desc ; 
      # 년, 월, 성별 별 상품 구매 회원 수 구하기
       # year, month 함수 사용 가능 
       # 1 YEAR(sales_date) YEAR
       # 2 MONTH(sales_date) MONTH
    select substr(sales_date,1,4) YEAR,  # 1로 대체 가능
           substr(sales_date,6,2) MONTH, # 2로 대체 가능
           GENDER, 
           count(distinct u.user_id) USER
    from user_info u join online_sale o on u.user_id = o.user_id
    where gender is not null
    group by 1,2,3
    order by 1,2,3 ; 
      # 서울에 위치한 식당 목록 출력하기
       # 1 sum(review_score)/count(review_score) 대신 avg(review_score)로 작성 가능
       # 2 SUBSTR(ADDRESS,1,2) = '서울' 대신 address like '서울%' 사용 가능
    SELECT i.rest_id, 
            rest_name, 
            food_type, 
            favorites, 
            address, 
            round(sum(review_score)/count(review_score),2) score # 1로 대체 가능
    from rest_info i join rest_review r on i.rest_id = r.rest_id
    where SUBSTR(ADDRESS,1,2) = '서울' # 2로 대체 가능
    group by 1
    order by 6 desc, 4 desc ;
  • 1-2 파이썬 숙제

    • 파이썬 숙제 총 8번까지 중 6번까지 문제 해결
    • 특정 조건을 수행할 수 있는 파이썬 코드에 대해 구글링 후 해결
    • 구글링은 정답을 찾는게 아닌 문제를 해결할 수 있는 방법을 찾는 걸 중심으로 진행!
    • 아직 이해가 안되는 부분이 있기 때문에 내일 오전 중에 추가 풀이 예정

2. 오후 일과

  • 2-1 파이썬 종합반 강의 완강

    • 내용 정리(5주차)
      • 파일 불러 오기 및 저장하기
      • pandas를 활용하여 pd.read.확장자명(파일명)으로 작성하여 불러오기
        • 확장자 - .csv, .excel, .json, .csv('file.text') 등
      • csv와 excel은 평범하나 json과 text형 자료로 저장은 복잡한편
      • 패키지 - 여러 개의 모듈을 포함하는 디렉토리
        맨 위에 라이브러리를 한번에 작성 후 불러오기
        • numpy, pandas, seaborn, scipy, tensorflow 등
      • 포맷팅 사용하기 - 변수와 문자가 다양하게 많이 출력할 때 사용
        • f-string 추천 (파이썬 3.6ver 이상 사용 가능)
        • .format(x) 활용방법 비추천
        • %d, %s 활용방법 비추천
      • 리스트 캄프리헨션(한줄쓰기) - 가독성을 위해 사용할 수 있는 문법
        • 기본구조 - [ 표현식 for 항목 in iterable if 조건문 ]
      • lambda 함수 - 한주로 표현되는 함수식(간결성, 익명성, 가독성 등)
        • 기본구조 - add = lambda x, y : x + y
        • 일반적으로는 lambda 함수는 지양하나 데이터 분석에서는 유용하게 활용
      • glob 함수 - 파일 시스템에서 파일을 찾을 때 사용하는 함수
      • OS 함수 - 운영 체제와 상호 작용하기 위한 함수
      • split(), join(), strip() 메소드
      • 클래스 - 함수가 많아지게 되면 클래스로 묶어서 사용
      • 불리언 인덱싱 - 조건에 따라 요소를 선택하는 방법 중 하나
        • pandas 에서 활용
      • 데코레이션 - 기존의 함수를 수정하지 않고 추가 기능을 넣을 때 사용
      • 파이썬 에러 대처법
        • SyntaxError (구문 오류)
        • IndentationError (들여쓰기 오류)
        • NameError (이름 오류)
        • TypeError (타입 오류)
        • IndexError (인덱스 오류)
        • KeyError (키 오류)
        • FileNotFoundError (파일을 찾을 수 없음 오류)
        • 문제 해결 방법은 구글링으로 검색해서 해결하기!
  • 2-2 파이썬 과제 팀 정리

    • 파이썬 숙제를 진행하면서 모르는 부분에 대한 추가 학습
    • 파이썬 경험이 있던 조장을 중심으로 실시
    • 조장이 작성한 코딩을 보면서 같은 결과를 출력하더라도 다양한 방법이 있다는 걸 배움
      특히, 한줄로 코드 작성하는 방법 등!
  • 2-3 아티클 스터디 후 내용 정리

    1. A/B 테스트 제대로 이해하기 : ③ A/B 테스트 계산기의 세팅과 해석
    • 요약 : A/B 테스트 해석은 툴, 코드, 웹사이트 등을 활용해서 가능하다.
    • 주요 포인트 : A/B 테스트 툴을 활용해서 세팅과 해석할 수 있으며,
      이 외에도 코드를 SPSS나 Python을 통해 코드를 짜서 할 수도 있다.
      또한, AB Testguide와 같은 웹사이트(https://abtestguide.com/calc/)를 통해서도 가능하다.
      • Test Data - 각 그룹의 표본 크기와 그룹별 최종 전환 숫자
      • Settings-Hypthesis - 단측 검정과 양측 검정을 확인하기 위한 세팅
      • Settings-Confidence - 신뢰 수준 세팅(보통 95%로도 충분)
      • 결과를 보고 단순히 큰 차이가 없다고 생각할 것이 아닌 ‘왜 이러한 차이가 났는가?’에 대한 추가적인 고민 필요
    1. 사용자 데이터를 효과적으로 분석하는 법
    • 요약 : 정략적 경험 데이터를 기술 통계와 추론 통계를 통해 분석하고 시각화 하는 법

    • 주요 포인트 : 수집된 데이터의 특성을 파악하기 위해 기술 통계를 활용하고, 샘플을 통해 모집단을 추론하거나 가설을 검정하기 위해 추론 통계를 활용한다.
      1) 기술 통계는 범주형, 수치형, 방사형 등의 데이터 종류가 있으며,

      • 범주형 데이터의 경우 ‘파이 차트와 누적 막대 그래프’를 통해 시각화한다.
        - 파이 차트 : 전체 참가자의 특정한 행동이 차지하는 비율을 직관적으로 표현
        - 누적 막대 그래프 : 전체 참가자의 특정 행동이 차지하는 비율 + 연속된 데이터
      • 수치형 데이터의 경우 ‘막대 그래프와 선 그래프’를 통해 시각화한다.
        - 막대 그래프 : 분리된 카테고리에 대한 연속적인 값을 표현할 때 효과적
        - 선그래프 : 카테고리가 연속적인 속성을 가진다면 효과적
      • 방사형 그래프와 산점도
        - 방사형 그래프 : 특정 대상에 대해 여러 평가 항목들로 비교하여 전체적인 경향 유추
        - 산점도 : 서로 다른 두 척도를 비교 + 두 변수 간의 관계를 확인

      2) 추론 통계에는 t 검정과 분산분석, 상관 분석과 회귀 분석을 할 수 있다.

      • t 검정과 분산 분석
        - t 검정 : 두 집단의 평균 차이를 비교
        - 분산 분석 : 비교 대상이 2개를 초과할 경우 분석 방법
      • 상관 분석과 회귀 분석
        - 상관 분석 : 2개 이상의 변수들의 선형적인 관계를 살펴보기 위한 분석 방법
        - 회귀 분석 : 하나의 종속 변수가 다수의 독립변수들이 어떻게 영향을 미치는지에 대한 인과 관계 분석

      3) 현업에서 활용하는 법

      • 분석하기 vs 해석하기
        - 정량 데이터를 직접 분석하고 시각화하거나 절달 받은 보고서를 해석해서 인사이트 도출
      • 그래프 그릴 때 주의점
        - 보는 사람이 쉽게 이해할 수 있도록 직관적으로 표현
        (수직 축 구분으로 인한 극적 표현 주의)
      • 통계적 유의성과 디자인 의사 결정
        - 데이터가 미묘한 차이가 날 경우 해석하는 사람의 직관이 함께 요구
  • 2-4 ADsP 3강

    • 내용 정리
      2 - 데이터 분석 기획
      1장 데이터 분석 기획의 이해
      01 분석 기획과 분석 방법론
    1. 분석 기획
      1) 분석 기획의 정의와 특징
      (1) 분석 기획의 정의

      • 실제 분석을 수행하기 전 분석을 수행할 과제의 정의 및 의도했던 결과를 도출할 수 있도록 관리하는 방안을 사전에 계획하는 작업
      • 어떠한 목표(What)를 달성하기 위하여 어떠한 데이터를 가지고 어떠한 방식(How)으로 수행할지에 대한 일련의 계획을 수립하는 중요한 사전작업
        (2) 분석 기획의 특징
      • 수학/통계학적 지식, 분석 도구인 데이터 및 프로그래밍 기술, 해당 비즈니스에 대한 이해와 전문성에 대한 고른 역량과 시각 등이 요구
        (3) 분석 대상과 그 방법에 따른 4가지 분석 주제★★★
      • 대상이 무엇인지 알고 분석 방법도 알고 있다면 '최적화' (OO)
      • 대상이 무엇인지 알지만 분석 방법을 모른다면 '솔루면' (OX)
      • 대상이 무엇인지 모르지만 분석 방법을 안다면 '통찰' (XO)
      • 대상이 무엇인지 모르고 분석 방법도 모른다면 '발견' (XX)
        (4) 목표 시점별 분석 기획
      • 과제 중심적 접근 방식 - 빠르게 문제 해결 중심
      • 장기적인 마스터플랜 방식 - 정확한 문제 정의 중심
        2) 분석 기획 시 고려사항★★
        (1) 가용 데이터 고려
        (2) 적절한 활용 방안과 유스케이스의 탐색
        (3) 장애요소에 대한 사전 계획 수립
    2. 분석 방법론 개요
      1) 분석 방법론 개요
      (1) 분석 방법론이란?

      • 주어진 과제를 해결하기 위해 조직이 어떤 절차로 작업해 나갈 건지 일련의 절차
        (2) 분석 방법론의 필요성
      • 상세한 절차, 방법, 도구와 기법, 템플릿과 산출물로 구성
        참고 : 기업의 합리적 의사결정 방해요소
      • 고정 관념
      • 편향된 생각
      • 프레이밍 효과
        (3) 분석 방법론의 생성 과정★
        암묵지 -(형식화)-> 형식지 -(체계화)-> 방법론 -(내재화)-> 암묵지
        2) 분석 방법론이 적용되는 업무 특성에 따른 모델★★
        (1) 폭포수 모델
      • 단계를 거쳐 순차적으로 진행하는 방법으로 이전 단계로의 피드백 가능
        (2) 프로토타입 모델
      • 일부분을 먼저 개발하고 점진적으로 시스템을 개발해 나가는 접근 방식
        (3) 나선형 모델
      • 사용자의 요구에 초점을 맞추기보다 위험요소를 사전에 제거한다는 것에 초점
        (4) 계층적 프로세스 모델★
      • 몇 개의 단계, 하나의 단계에 여러 개의 태스크, 하나의 태스크에 여러 개의 스텝으로 구성
      • WBS의 워크패키지에 해당, '입력 - 처리 및 도구 - 출력'으로 구성된 프로세스
    3. 전통적인 분석 방법론 두 가지 ★
      1) KDD 분석 방법론
      (1) KDD 분석 방법론(5단계)★

      • 데이터로부터 통계적 패턴이나 지식을 찾기 위해 체계적으로 정리한 데이터 마이닝 프로세스
      • 데이터셋 선택 → 데이터 전처리 → 데이터 변환 → 데이터 마이닝 → 해석과 평가
        2) CRISP-DM 분석 방법론
        (1) CRISP-DM 분석 방법론(6단계)★★
      • KDD 분석 방법론과 비슷하나 약간 더 세분되어 있다는 점
      • 업무 이해 → 데이터 이해 → 데이터 준비 → 모델링 → 평가 → 전개
    4. 빅데이터 분석 방법론
      1) 빅데이터 분석 방법론 개요
      (1) 빅데이터 분석 방법론
      - 계층적 프로세스 모델로 단계, 태스크, 스텝의 3계층 레벨과 5단계로 구성
      (2) 빅데이터 분석 방법론의 계층적 프로세스
      - 분석 기획 → 데이터 준비 → 데이터 분석 → 시스템 구현 → 평가 및 전개
      참고 : 빅데이터 분석 방법론 플로우 및 단계별 수행 프로세서 꼭 읽어보기★★

      02 분석 과제 발굴

    5. 분석 과제 발굴 개요
      1) 분석 과제 '발굴'의 개념과 '탐색' 방법
      (1) 분석 과제 발굴

      • 분석 발굴 - 해결해야 할 다양한 기업의 문제를 '데이터 분석 문제'로 변환 하는 것
      • 하향식 접근법과 상향식 접근법으로 나뉜다
        (2) 분석 과제 탐색 방법★★
      • 하향식 접근법 : 문제가 주어졌을 때 해결해야 할 과제를 찾는 Top-Down 수행방법
      • 상향식 접근법 : 다양한 데이터의 조합 속에서 인사이트를 찾아내는 Bottom-Up 방식
    6. 하향식 접근법★★★
      1) 1단계 - 문제 탐색 단계
      (1) 비즈니스 모델 탐색 기법 ★★

      • 업무, 제품, 고객 단위로 문제를 발굴 / 규제와 감사, 지원 인프라의 두 가지 영역에 대한 기회를 추가로 도출
        (2) 분석 기회 발굴 범위의 확장 ★★
      • 거시적 관점 - 사회, 기술, 경제, 환경, 정치
      • 경쟁자 확대 관점 - 대체제, 경쟁자, 신규 진입자
      • 시장의 니즈 탐색 - 고객, 채널, 영향자들
      • 역량의 재해석 - 내부 역량, 파트너와 네트워크
        (3) 외부 참조 모델 기반 문제 탐색 및 분석 유스케이스 정의
      • 가장 빠르고 쉬운 방식으로 분석 기회가 무엇인지 아이디어를 얻는 브레인스토밍 활용
      • 분석 유스케이스 - 분석을 적용했을 때 업무 흐름을 개념적으로 설명한 것으로 프로세스 혁신 수단으로 활용
        2) 2단계 - 문제 정의 단계
        (1) 문제 정의
      • 식별된 비즈니스 문제를 데이터의 문제로 변환하여 정의하는 단계
        3) 3단계 - 해결 방안 탐색 단계
        (1) 해결 방안 탐색
      • 데이터 분석 문제를 해결하기 위한 방안을 모색하는 단계
        (2) 해결 방안 탐색 단계 프로세스
      • 기존 시스템 가능 여부 / 분석 역량 여부 등의 과정을 거쳐 해결방안 선정
        4) 4단계 - 타당성 검토 단계
        (1) 타당성 검토
        (2) 타당성 검토의 두 가지 유형
      • 경제적 타당성
      • 데이터 및 기술적 타당성
    7. 상향식 접근법
      1) 상향식 접근법 개요
      (1) 상향식 접근법 개념
      - 원천 데이터로부터 통찰과 지식을 얻는 접근 방법
      (2) 상향식 접근법의 특징
      - 분석부터 시작하고 그 결과로부터 가치가 있는 문제를 도출하는 방법
      2) 지도학습과 비지도학습★★
      (1) 지도학습
      - 정답이 있는 데이터를 활용하여 분석 모델을 학습시키는 것
      (2) 비지도학습
      - 정답을 알려주지 않고 학습하는 것
      - 데이터 자체의 결합, 연관성, 유사성 등을 중심으로 데이터의 상태를 표현
      - 일반적으로 상향식 접근방식의 데이터 분석은 비지도학습에 의해 수행
      3) 시행착오를 통한 문제 해결(프로토타이핑 접근법)
      (1) 개념
      - 상향식 접근법 중 하나로 시행착오 해결법, 먼저 분석 후 그 결과를 조금씩 개선하는 방법
      (2) 프로세스
      - 가설의 생성 → 디자인에 대한 실험 → 실제 환경에서의 테스트 → 인사이트 도출 및 가설 확인

      03 분석 프로젝트 관리 방안

    8. 분석 프로젝트 관리 개요
      1) 분석 프로젝트의 특성
      2) 분석 과제를 관리할 때 고려해야 할 5가지 속성
      (1) 데이터의 양
      (2) 데이터 복잡도
      (3) 분석의 속도
      (4) 분석 복잡도
      (5) 정확도 & 정밀도 - 값의 차이가 적은 '정확도' / 편차 수준을 나타내는 '정밀도'

    9. 분석 과제 관리 방안

    • 통합, 이해관계자, 범위, 자원, 시간, 원가, 리스크, 품질, 조달, 의사소통 10의 주제 그룹으로 구성

3. 마치며

  • 시간이 많이 부족하다..!
  • 강의는 따라갈 수 있지만 이해는 또 다른 문제이기 때문에 복습은 필수!
  • 그리고 다양한 코드를 봐야 '왜 그렇게 작성하는지', '같은 결과이더라도 다양한 방식으로 작성할 수 있다는 걸 배울 수 있다.'
  • 최대한 집중하고 시간을 최대한 활용하자!
  • 가급적 공부하면서 메모장이든 블로그에든 정리하면서 공부하는 습관을 갖자!
    그래야 TIL를 바로바로 작성할 수 있기에...!(TIL 작성하는데 너무 오래 걸려...)

0개의 댓글