강의일자: 12월 1주차
강사님: 김용담
Computational Thinking
정의
컴퓨터(사람이나 기계)가 효과적으로 수행할 수 있도록 문제를 정의하고 그에 대한 답을 기술하는 것이 포함된 사고 과정 일체를 일컫는다.^1
과정
과정은 4단계로 이루어진다.
1. Decomposition (문제 분해)
복잡한 문제를 작고 관리하기 쉬운 단위로 나누는 과정.
2. Pattern Recognition (패턴 인식)
여러문제나 데이터에서 유사한 패턴이나 규칙을 찾아내는 과정. 문제해결에 필요한 일반적인 원칙을 도출 할 수 있다.
3. Abstraction (추상화)
문제의 본질적인 요소를 추려내고 불필요한 세부 사항을 제거하는 과정. 이를 통해 문제를 단순화하고 핵심에 집중 할 수 있다.
4.Algorithmic Thinking (알고리즘)
문제를 해결하기 위해 단계별 절차나 규칙을 만드는 과정.
문제
"Designing a recommendation system for an online commerce platform"
- Decomposition
- 추천 알고리즘은 무엇으로 할 것인가? : 협업 필터링, 콘텐츠 기반 필터링
- 필요한 데이터: 사용자 데이터, 상품 데이터
- 데이터는 어디에 있는가: 내부 데이터 베이스
- 데이터 전처리 방법: 결측치 처리, 정규화, 데이터 통합
- Pattern Recognition
- 사용자 구매 패턴 분석
- 상품 간 연관성 파악
- 유사 사용자 및 상품 그룹화
- Abstraction (추상화)
- 유저 기반 협업 필터링 알고리즘 선정
- 유저 ID와 상품 카테고리 ID를 주요 피처로 활용
- 데이터 의 주요 특징을 추출하여 모델링
- Algorithmic Thinking(알고리즘)
- 데이터 수집: 상품 DB와 유저 DB에서 데이터 추출
- 데이터 통합: 각각 데이터를 하나의 데이터셋으로 통합
- 유사도 계산: 코사인 유사도 사용
- 추천 생성: 유저의 선호도를 기반으로 상품 추천
- 모델 학습, 평가: 평가지표 활용
- 배포 방식: 실시간 추천 or 배치 처리 방식 선택
마무리
컴퓨터적 사고는 꼭 프로그래밍에서만 사용되는 방법론은 아니다. 문제를 세분화해서 이해하기 쉬운단계로 나누고,
일반화된 문제들을 통해 알고리즘을 도출해내는 과정은 문제해결에 큰 도움이 된다고 생각한다.
'프로그래밍 > AI' 카테고리의 다른 글
Python List (0) | 2024.12.11 |
---|---|
해시 함수 와 해시충돌 (1) | 2024.12.11 |
통계학(6) 공분산 행렬 (0) | 2024.12.02 |
통계학(5) 대푯값 분산도 가설검정 회귀분석 (0) | 2024.12.02 |
통계학(4) 변수와 척도(Variables & Scales) (1) | 2024.12.02 |