일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 링크
- 어셈블
- zero-shot
- 컴파일
- sk네트웍스familyai캠프
- AWS
- Langchain
- C++
- 최종프로젝트
- 임베딩
- 주간회고
- 배포
- one-shot
- few-shot
- 회고록
- 12기
- 중복인클루드
- openai
- 소스코드
- sk네트웍스family
- #include
- Rag
- ai캠프
- Fine-tuning
- sk네트웍스ai캠프
- 전처리
- FastAPI
- Docker
- sk네트웍스familyai캠프12기
- 헤더가드
- Today
- Total
ansir 님의 블로그
SK 네트웍스 family AI 캠프 4주차 회고( 2025-03-17 ~ 2025-03-21 ) 본문
SK 네트웍스 family AI 캠프 4주차 회고( 2025-03-17 ~ 2025-03-21 )
ansir 2025. 3. 24. 21:04프로그래밍과 데이터 기초 커리큘럼이 끝나고 1차 프로젝트가 진행되었습니다. 최선을 다하는 동기분들의 모습이 너무 멋있습니다.
FACTS
1차 프로젝트: 지역별 자동차 등록 정보 조회 시스템
github: https://github.com/SKNETWORKS-FAMILY-AICAMP/SKN12-1ST-3TEAM
프로젝트의 주제는 " 전국차량등록현황과 FAQ 조회 "였습니다.
2일이라는 기간 동안 전국 자동차 등록 현황 데이터를 수집하고 데이터 간의 차이를 그래프로 표현하여 시각적으로 볼 수 있는 기능 개발하였습니다.
내부적으로는 다음과 같은 역할을 맡았습니다.
- 데이터 크롤링( 국토교통 통계누리>자동차등록현황보고(Total Registered Motor Vehicles) 2024년 1월 ~ 2025년 2월 )
- 데이터베이스에 데이터 삽입( 파이썬으로 csv파일을 MySQL에 삽입 )
- 지역별 차종별 비교 그래프 출력( streamlit과 altair를 활용한 그래프 생성 및 시각화 )
수업 진도
Pandas
pandas에 대한 기초 개념과 활용 방법에 대해 배웠습니다.
pandas는 데이터 분석을 쉽게하기 위해서 엑셀처럼 데이터를 다룰 수 있는 작은 프레임워크이며 구조는 엑셀과 유사한 2차원 배열의 데이터 프레임( DataFrame )과 그것을 구성하는 1차원 배열 시리즈( Series )로 이루어져 있습니다.
데이터 분석
pandas의 개념과 구조에 대해 배운 후에는 데이터를 분석하는 방법에 대해 배웠습니다. 데이터 프레임의 info()를 활용하여 데이터 타입과 값의 분포, 결측치 여부를 확인할 수 있으며, describe()로 수치형 데이터와 범주형 데이터의 데이터 정보를 볼 수 있습니다.
위 사진을 보면 데이터의 분석 정보가 제공 되지만 아직은 데이터를 보는 눈이 깜깜합니다. 각 정보가 어떤 것을 의미하는지 파악하는 법을 숙달해야할 것 같습니다.
결측치( Missing Values )
결측치는 값이 비어있는 데이터를 말합니다. 모든 데이터는 결측치가 있을 수 있고 이는 분석 결과에 영향을 줄 수 있습니다. 때문에 결측치가 있는지 여부를 확인하는 것은 중요합니다.
이상치( Outlier )
이상치는 일반적인 패턴과 크게 벗어난 값을 말합니다. 결측치와 마찬가지로 분석이나 모델 성능에 영향을 줍니다. 이상치 확인 방법에는 3가지가 있습니다.
- 사분위 범위( IQR ) 확인
- 표준 편차( Z-score ) 활용
- 시각적인 방법( matplotlib.pyplot.boxplot )으로 확인
이에 대해 배운 후 사용해봤을 때 그래프를 그려 시각적으로 이상치 여부를 확인하고 IQR 방식으로 이상치 처리하는 방식이 이상적인 것 같습니다.
시각화
import matplotlib.pyplot as plt
import seaborn as sns
위 라이브러리를 활용하여 데이터의 값이나 빈도를 시각적으로 확인할 수 있습니다. 표 형식으로 데이터 프레임으로 확인할 수도 있지만 그래프로 보는 것이 훨씬 직관적입니다. 그릴 수 있는 그래프의 종류도 다양하기 때문에 데이터 분석 보고서 작성에도 큰 도움을 줄 수 있습니다.
- count plot: 범주형 데이터의 개수를 시각화
- box plot: 데이터의 분포(최소, 최대, 중앙값, 사분위수)를 시각화하는 그래프. 데이터의 이상치를 확인하는 데 유용
- pair plot: 숫자형 변수간의 상관관계를 쌍으로 시각화하는 그래프
- heat map: 상관지수를 통해 시각화, 숫자형 변수간 상관계수
이러한 시각화는 데이터에 대한 이해를 높이기 위해 필요합니다. 데이터를 다루기 전에 결측치와 이상치가 있는지, 어떻게 분포해 있는지 각 변수간의 상관관계가 있는지 파악할 수 있어야 데이터를 정리하고 전처리 방향을 설정하며 모델링 전에 중요한 패턴을 발견할 수 있습니다.
상관관계 파악
각 변수간의 상관관계를 파악하는 방법은 변수가 수치형이냐 범주형이냐에 따라 다릅니다.
- 수치형 변수: 피어슨 상관계수
- 범주형 변수: 카이제곱 검정( Chi-Square )
결측치 보간
결측치는 값이 누락된 데이터( NaN, Null )라고 하였습니다. 결측치의 원인은 다양하고 결측치가 분포하는 유형에 따라 그 의미도 달라지기 때문에 처리하는 방법도 다양합니다.
결측치의 원인
입력 실수
- 데이터 수집 중단
- 센서 오류
패턴
- MCAR: 완전 무작위( 랜덤하게 발생하는 경우 )
- MAR: 다른 변수와 연관이 되어 있는 경우( 결측이 다른 변수와 연관이 있을 수 있습니다. )
- MNAR: 결측 자체에 의미가 있는 경우( 설문조사 응답 회피 )
대처 방법
- 평균/중앙값/최빈값으로 대체: 결측치가 적고 분포가 단순할 때
- 상수 대체: 고정값( 0, 1, 'unknown' ) -> 결측치가 별도 카테고리로 의미가 있을 때
- 그룹별 통계: 결측치가 그룹 패턴과 연관이 있을 때( MAR )
- 모델 기반( KNN, 회귀 모델 )
- 플래그 추가: 결측 여부를 이진변수로 추가 -> astype(int)
- 보간법( Interpolation ): 결측치를 주변 데이터로부터 추정, 연속성 유지에 초점( 시계열 데이터에 적합 )
FEELINGS
캠프에서 첫 프로젝트
팀 프로젝트는 항상 떨리고 재미있습니다. 팀원들과 같은 목표를 달성하기 위해 머리를 맞대고, 만들고, 고치는 과정이 그 자체로 너무 좋습니다.
항상 드는 생각이지만 실력은 실전에서 가장 많이 느는 것 같습니다. 실력을 키우고 싶다면 일을 벌리고 그 과정에서 문제가 생겼다면 일단 부딪혀보고 그 시도가 실패하더라도 계속 포기하지 않는 것이 가장 빠르게 성장할 수 있는 방법인 것 같습니다.
이번 프로젝트를 통해 제 실력의 현주소를 알게 되었습니다. 더 많이 공부하고 노력해야겠습니다.
데이터분석
pandas와 numpy. '파이썬' 하면 함께 따라 오던 것들을 직접 배우니 '이제야 본게임이 시작되는구나' 라는 생각이 들었습니다. 파이썬을 배울 때와는 달리 pandas는 내용이 바로 이해되지 않았습니다. 강사님의 수업을 따라가는 것도 바빠 추가적인 질문이 뻗어나올 틈이 없었습니다. 하지만 이정도로 배울 내용이 많다는 것은 각오하고 왔기 때문에 오히려 즐기는 마음입니다.
FINDINGS
파이썬
프로젝트를 통해 파이썬으로 만든 프로그램이 어떤 식으로 구성되어 있고 어떻게 실행하는 지 알 수 있었습니다. 항상 Colab이나 Jupyter Lab과 같은 노트북 환경에서만 코딩을 했었지만 이번 프로젝트를 하면서 자연스럽게 visual code로 코딩하는 법을 익혔습니다.
주객전도 NO
수업을 들을 때나 복습을 할 때 공부 내용을 전부 타이핑 하는 편인데 이렇게 하다보니 내용의 이해가 아니라 타이핑이 주가 되는 것 같아 공부 스타일이 바꾸었습니다. 수업같은 경우에는 일단 강사님이 코드를 작성하시는 걸 보고 그 흐름을 이해한 뒤 따라서 타이핑을 하였고, 복습을 할 때에도 보고 베끼는 것이 아니라 읽고, 이해를 먼저 한 후에 그걸 바탕으로 정리를 하는 식으로 방식을 바꾸었습니다. 이렇게 하는 편이 이해하는 데 더 도움이 되는 것 같습니다.
FUTURE
- 복습 꾸준히 하기
- 하루에 백준 문제 하나씩 풀기
- 자투리 시간에 부교재( python, pandas, 머신러닝 ) 보기
- 공모전 준비해보기
'SK 네트웍스 family AI 캠프 > 주간 회고' 카테고리의 다른 글
SK 네트웍스 family AI 캠프 6주차 회고( 2025-03-31 ~ 2025-04-04 ) (0) | 2025.04.08 |
---|---|
SK 네트웍스 family AI 캠프 5주차 회고( 2025-03-24 ~ 2025-03-28 ) (0) | 2025.03.31 |
SK 네트웍스 family AI 캠프 3주차 회고( 2025-03-10 ~ 2025-03-14 ) (0) | 2025.03.18 |
SK 네트웍스 family AI 캠프 2주차 회고( 2025-03-04 ~ 2025-03-07 ) (0) | 2025.03.09 |
SK 네트웍스 family AI 캠프 1주차 회고( 2025-02-26 ~ 2025-02-28 ) (0) | 2025.03.03 |