250305 TIL

수이·2025년 3월 6일

🟡 TIL

목록 보기
21/60

팀스터디

아티클스터디

사용자 데이터를 효과적으로 분석하는 법

  • 데이터 분석 방법
    • 기술 통계
      중심 경향 지표 구하기
      극단값이 포함될 경우 중앙값 활용
      데이터가 제한된 값을 가지고 있을 경우 최빈값 활용
      이상값의 경우 제거 후 분석하는 방법 고려
    • 추론 통계
      모집단 추론, 가설 검정이 목적
      표본으로 수집된 데이터의 정규성 확인
      → 분석 결과가 통계적으로 유의미한지 검증
      • t검정(t-test)
      • 분산분석(ANOVA) : 비교 대상 2개 초과 시
        → 변수들 간 관계 파악
      • 상관분석 : 2개 이상의 변수들의 선형성 분석
      • 회귀분석 : 종속변수와 독립변수간 인과관계 분석
  • 시각화 Excel SPSS SAS
    • 범주형 데이터 → 파이차트(원그래프), 누적 막대그래프 비율 직관적으로 확인 가능
    • 수치형 데이터 → 막대그래프, 선 그래프 평균 + 신뢰구간 활용 경향성 한눈에 파악 가능 연속적인 속성의 경우 선 그래프를 확인하는 게 효과
    • 방사형 그래프 여러 평가 항목들로 비교해 전체적인 경향 추측
    • 산점도 서로 다른 두 척도 비교 가능, 변수간 관계 확인
  • 주의점
    • 보는 사람이 쉽게 이해할 수 있도록 만들
    • 데이터가 수집된 환경 이외의 맥락적 상황 검토 → 객관성 + 직관이 모두 필요
  • 용어 정리 :
    • 평균 : 데이터 전체의 중심에 위치하는 값
    • 중앙값 : 데이터를 크기 순서대로 나열했을 때 가장 가운데 위치한 수치
    • 모집단 : 전체 사용자 집단
    • 표본 : 참가자
    • 정규 분포 : 평균을 중심으로 한 좌우대칭 종 모양의 분포
    • p-value : 유의수준 5% , 0.05 이하인 경우 유의
    • 상관계수: r값
      • r > 0 : 양의 상관관계
      • r < 0 : 음의 상관관계
      • r = 0 : 선형적 관계{ 없음
    • 회귀계수: beta값
      • 독립변수가 종속변수에 미치는 영향의 크기
  • 주요 포인트 :
    • 데이터를 검증하기 위해서 역시 방법론과 통계 개념을 잘 익혀두어야겠다는 생각을 했습니다. 아직까지 정확히 이해하지는 못해서, 세부 내용에 대해 더 공부해야겠습니다.

공통 인사이트

아티클이 지금까지 중에 제일 어려웠다. 주도적으로 추가적인 학습이 필요하겠다.

개인스터디

데이터 리터러시 1-2

문제정의

  • 분석하려는 특정 상황이나 현상에 대한 명확하고 구체적인 진술

문제정의 예제 ) 아래와 같은 상황에서 문제는 무엇일까?
🧐 상황: 3개월 전부터 자사 제품의 사용자 수가 감소하고 있다. 사용자 수를 늘리기 위한 포인트 이벤트를 하고 있지만,효과가 없어 보인다. 또한 자사 제품 내 서비스 중 A 보다 B가 더 안 좋은 상황이다. 사용자가 줄었기 때문에, 수입도 감소하고 있다.

  1. 수입이 감소하고 있다
  2. 포인트 이벤트의 효과가 없다
  3. 자사 제품 서비스 중 A보다 B가 안 좋은 상황이다

내가 문제로 생각한 건 이렇게 세 가지인데, 더 명확하고 깊게 들어가야하는 것 같다.

해설

  1. 궁극적인 문제의 관점에서 매우 중요. 다만 단어 정의에 있어 더 명확해야됨. ex) 수입 = 매출액 ? 순이익 ?

  2. 살펴볼 만 하지만, 근본적으로 해결해야할 문제인가?

  3. 분석 과정 중 확인해봐야 하나 근본적인 문제라고 하기엔 어려움

  4. 사용자 수가 감소하고있다
    결과적으로 풀고자 하는 것이 수입 감소라고 한다면 사용자 수는 문제가 아닌 원인

문제정의 방법론

MECE(Mutually Exclusive, Collectively Exhaustive)

  • 문제 해결과 분석에서 널리 사용되는 접근 방식
  • 문제를 상호배타적이면서, 전체적으로 포괄적인 구성요소로 나누는 것

로직트리(Logic Tree)

  • MECE 원칙을 기반으로 복잡한 문제를 더 작고 관리하기 쉬운 하위 문제로 분해하는 데 사용
    • 상위 문제 → 하위문제로 계층적 접근
    • 인과 관계의 순서는 작은가지 → 큰가지
  • 정해진 답이 없음 / 기준에 따라 깊이와 넓이가 달라짐

로직트리 예제 ) 수익성 개선 방법에 대한 로직트리 그려보기!

  • 수익성 개선 방법은?

    • 매출 증가

      • 신규 고객 유입
        • 마케팅
      • 기존 고객 관리
        • 이탈 방지
    • 비용 감소

      • 비용 관리 최적화
        • 자동화
        • 인원 감축

해설

데이터 분석 파이썬 종합반 3주차✅

조건문

  • 특정 조건이 참(True)인 경우에만 특정 코드 블록을 실행
  • if, elif (else if), else 사용
    • elif는 하나가 아니라 여러개일 수 있음
    • else는 위의 모든 조건을 다 제외하고 '나머지'로 생각
    • if문끼리의 중첩도 가능
  • 비교연산자 사용 가능 > < >= <= == !=
  • 논리연산자 사용 가능 and or not
  • 조건의 순서는 상관 없음 / 논리에 맞기만 하면 됨
if 조건:
    # 조건이 참일 때 실행될 코드
elif 다른조건:
    # 다른 조건이 참일 때 실행될 코드
else:
    # 위의 조건이 모두 거짓일 때 실행될 코드

들여쓰기 / 띄어쓰기

  • 잘못된 예시
    • print문이 각각 블록 안에 있음
      오류 발생
x = 10

if x > 5:
print("x는 5보다 큽니다.")
else:
print("x는 5보다 작거나 같습니다.")
  • 수정
x = 10

if x > 5:
    print("x는 5보다 큽니다.")
else:
    print("x는 5보다 작거나 같습니다.")

짧은 표현

  • 한 줄로 간략하게 표현 가능
    • 자주 사용하지는 않음!

예시

x = 10

if x > 0 and x % 2 == 0 :
    print("양의 짝수")
else :
    print("음수 또는 0")

# 한 줄로 표현 시
result = "양의 짝수" if x > 0 and x % 2 == 0 else "음수 또는 0"
print(result)

반복문(for)

  • 일정 규칙에 따라 반복
  • 각 반복마다 변수에 값을 담음
    현재 값이 계속 변경된다고 생각하면 됨
  • 반복 가능한(iterable) 데이터 타입과 함께 사용
    • 리스트, 문자열, range() 함수, 딕셔너리
  • 데이터 정제 및 전처리, 통계 계산, 데이터 탐색, 모델 평가 등에 활용 가능
for 변수 in 반복할_데이터:
    코드_블록

조건문과 함께 사용하기

  • 짝수만 출력하기
for i in range(1, 11) :
    if i % 2 == 0 :
        print(i)
        
# range를 사용하면
for i in range(2, 11, 2) :
    print(i)
  • 리스트에서 특정 값 걸러내기
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [] # 빈 리스트 - for문을 통해 채워질 것
for num in numbers:
    if num % 2 == 0:
        even_numbers.append(num)
print(even_numbers)
  • 구구단 출력하기

for i in range(2, 10):
    print(f"{i}단:")
    for j in range(1, 10):
        print(i, "x", j, " = ", i * j)
  • 별표로 직각 삼각형 그리기
size = 10 # 삼각형의 크기를 입력

for i in range(1, size + 1): #내가 원하는 사이즈만큼 출력하기 위해 size + 1 하는 거 
    print("*" * i)

이중 for문

  • 별표로 직각 삼각형 그리기
    위 구문과 비교해볼 것
size = 10 # 삼각형의 크기를 입력

for i in range(1, size + 1):
    print("*" * i)
  • 역삼각형 만들기
size = 5
for i in range(size, 0, -1):
    for j in range(i):
        print("*", end="")
    print()

반복문(while)

  • 조건을 만족하는 동안 코드 블록을 반복적으로 실행
    • 특정 조건이 참(True)일때만 실행, 조건이 거짓(False)이 될 때까지 반복
while 조건:
    코드_블록
  • 사용자 입력 받기
user_input = ''
while user_input != 'quit':
    user_input = input("Type 'quit' to exit: ")
    print("You typed:", user_input)

break, pass, continue

  • passcontinue의 차이

    • pass
      • 아무것도 하지 않고 넘어감
      • 여기 코드 있어야 되는데, 지금은 안해
      • 코드 블록을 채울 때 사용
    • continue
      • 반복을 건너뛰고 다음 반복으로
      • 이번 반복은 중단하고, 다음 반복 시작하자
      • 현재 루프의 나머지 코드를 실행하지 않고 다음 반복으로 이동
  • break 예시

# 사용자가 'quit'을 입력할 때까지 반복하여 숫자를 입력받고 합을 출력
total = 0
while True:
    num = input("숫자를 입력하세요 (종료하려면 'quit' 입력): ")
    if num == 'quit':
        break
    total += int(num)

print("합:", total)
  • pass 예시
# 홀수를 출력하는 코드에서 짝수일 경우에는 아무 작업도 수행하지 않고 넘어감
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num % 2 == 0:
        pass
    else:
        print(num, "은 홀수입니다.")
  • continue 예시
# 1부터 10까지의 숫자 중 짝수를 출력
num = 0
while num < 10:
    num += 1
    if num % 2 == 1:
        continue
    print(num)

퀴즈

임의의 수를 변수에 넣고 그 변수에 입력된 수가 양수인지 음수인지 판별하여 결과를 출력하는 파이썬 코드를 작성해보세요. (0은 양수로 간주합니다)

# 임의의 수 판별
number = 1
if number > 0 :
    print("양수")
elif number < 0 :
    print("음수")
else :
    print("0")

1부터 10까지의 정수 중에서 홀수만을 포함하는 리스트를 생성하는 파이썬 코드를 작성해보세요.

# 홀수만 포함하는 리스트 생성
odd_number = []
for i in range(1,11):
    if i % 2 != 0:
        odd_number.append(i)

1부터 100까지의 정수 중에서 3의 배수일 때 "Fizz", 5의 배수일 때 "Buzz"를 출력하세요. (나머지 경우에는 그냥 숫자를 출력합니다)

for i in range(1, 101):
    if i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
         print("Buzz")
    else:
         print(i)

데일리퀘스트

SQL - 12세 이하인 여자 환자 목록 출력하기
SQL - 인기있는 아이스크림
SQL - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
SQL - 오랜 기간 보호한 동물(1)
SQL - 카테고리 별 도서 판매량 집계하기


일기

  • SQL 코드카타 28-32✅
    SQL - 오랜 기간 보호한 동물(1) 은 지난 라이브세션 과제로 제출했던 건데 그냥 순서 맞추고 싶어서 이제 올린다!
  • Python 종합반 3주차✅
    올 것이 왔다 반복문🥲 개념은 물론 이해가 되는데 아직까지 활용할때 바로바로 생각나지가 않아서 어려움
  • 데이터리터러시 1-2강 복습✅ 1-3강✅

조원불들이랑 조금 얘기를 나눴는데, 오늘이 유독 힘드셨다고들 한다. 나만 그런 게 아니었다니 위안이 되었다. 다들 냉정(?)한 표정으로 척척 하고 계시다 생각했는데 비슷했던 거야...! 🤣

어제 벨로그 접속이 안 되어서 미처 올리지 못했다 일기는 내일 써야지 했더니 어제 힘들었다는 거 말고 생각이 안 남 .. 킥..

아무튼 오늘도 파이팅 🍀

0개의 댓글