[IBM AI course #1] Machine Learning with Python
머신러닝이란 무엇인가
머신러닝(Machine Learning, ML)은 인공지능(AI)의 한 분야로,
데이터로부터 스스로 학습하여 판단을 내리는 알고리즘 기반의 기술이다.
기존에는 사람이 직접 규칙을 정의해야 했지만, 머신러닝은 데이터를 통해 패턴을 학습하고 스스로 의사결정을 수행한다.
머신러닝은 다음과 같은 다양한 학습 방식을 포함한다
- 지도학습(supervised learning): 레이블이 있는 데이터로 학습하여 새로운 데이터를 예측함
- 비지도학습(unsupervised learning): 레이블 없이 데이터 내 숨은 패턴을 발견함
- 준지도학습(semi-supervised learning): 일부 레이블만 가진 데이터를 활용해 점진적으로 학습을 확장함
- 강화학습(reinforcement learning): 에이전트가 환경과 상호작용하며 보상을 통해 최적의 전략을 학습함
머신러닝 기법
기법 선택 요인 : 해결하려는 문제, 보유한 데이터 유형, 사용 가능한 리소스, 원하는 결과 등
기법 | 설명 |
분류(Classification) | 사물이 속한 범주(예: 양성/악성 세포) 예측 |
회귀(Regression) | 연속적인 수치(예: 주택 가격) 예측 |
군집화(Clustering) | 유사한 데이터끼리 묶는 비지도 기법 (예: 은행 고객 세분화) |
연관 규칙(Association) | 함께 발생하는 항목 발견 (예: 장바구니 분석) |
이상 탐지(Anomaly Detection) | 이상치나 예외 상황 탐지 (예: 신용카드 사기 탐지) |
시퀀스 마이닝(Sequence Mining) | 다음 이벤트 예측 (예: 클릭 스트림* 분석) |
차원 축소(Dimensionality Reduction) | 불필요한 특성을 줄여 모델 성능 개선 |
추천 시스템(Recommendation) | 사용자 취향을 기반으로 새로운 항목 추천 (예: 책, 영화 추천) |
* Clickstream : 사용자가 웹 브라우저상에서 마우스를 클릭해 이뤄지는 행동에 대한 기록
머신러닝의 작동 원리
컴퓨터 비전(computer vision)의 예시로, 고양이와 개 사진을 분류하는 소프트웨어를 만든다고 가정해 보자.
- 전통적인 접근 : ‘규칙(rule)’을 정의 (눈이 몇 개 있는가? 귀가 있는가?)
→ 문제점 : 너무 많은 규칙이 필요함, 현재 데이터셋에만 과도하게 의존함, 새로운 유형(예: 처음 보는 개 종류)을 일반화하지 못함 > 결국 실패로 이어짐 - 머신러닝 기반 이미지 인식 : 알고리즘이 직접 데이터를 통해 특징(feature)을 학습. 각 동물의 구분 가능한 특징들(눈, 귀, 형태 등)을 학습하고, 새로운 이미지가 주어졌을 때 자동으로 분류한다.
머신러닝 모델 생애 주기
1. 문제 정의 (Problem Definition)
2. 데이터 수집 (Data Collection)
3. 데이터 준비 (Data Preparation)
4. 모델 개발 및 평가 (Model Development and Evaluation)
5. 모델 배포 (Model Deployment)
→ 머신러닝은 반복적(Iterative) 과정이다. 실제 업무에서는 이 생애 주기는 반복적이며, 각 단계를 한 번만 거치는 것이 아니라, 문제가 생기면 이전 단계로 돌아가 재조정해야 한다.
1. 문제 정의 (Problem Definition)
2. 데이터 수집 (Data Collection)
3. 데이터 준비 (Data Preparation)
4. 모델 개발 및 평가 (Model Development and Evaluation)
5. 모델 배포 (Model Deployment)
데이터 수집 (Data Collection) & 데이터 준비 (Data Preparation)
→ ETL 프로세스
ETL (Extract, Transform, Load) : 다양한 소스로부터 데이터를 추출(Extract)하고, 이를 정제하고 변환(Transform)한 다음, 하나의 통합된 장소에 저장(Load)하는 과정
1. 문제 정의 (Problem Definition)
2. 데이터 수집 (Data Collection)
3. 데이터 준비 (Data Preparation)
4. 모델 개발 및 평가 (Model Development and Evaluation)
5. 모델 배포 (Model Deployment)
문제 정의 (Problem Definition)
시간이 가장 많이 소요되는 단계이다.
머신러닝 솔루션이 고객의 실제 니즈와 일치하는지 확인해야 한다.
1. 문제 정의 (Problem Definition)
2. 데이터 수집 (Data Collection)
3. 데이터 준비 (Data Preparation)
4. 모델 개발 및 평가 (Model Development and Evaluation)
5. 모델 배포 (Model Deployment)
데이터 통합 및 전처리 준비
다양한 데이터를 wrangling, aggregation, join, merge, mapping을 통해 하나의 소스로 통합하면서, 매번 여러 데이터베이스에 접근할 필요를 제거한다.
1. 문제 정의 (Problem Definition)
2. 데이터 수집 (Data Collection)
3. 데이터 준비 (Data Preparation)
4. 모델 개발 및 평가 (Model Development and Evaluation)
5. 모델 배포 (Model Deployment)
데이터 준비(Data Preparation)
여러 소스의 데이터는 오류, 포맷 불일치, 데이터 누락 등 다양한 문제를 포함하고 있다.
해당 프로세스는 동시에 수행(데이터 준비와 수집)이 가능하며, 이 단계에서 데이터의 최종 버전이 준비되어야 한다.
이 단계에서는 불필요 데이터 제거, 이상치 제거, 결측값 제거 혹은 생성, 컬럼 형식 정리 (날짜/문자형 등), 그 외 새로운 특징 생성(Feature Engineering), EDA, 학습/테스트 분할 전략등의 작업이 진행된다.
→ 특성 엔지니어링 (Feature Engineering) : 사용자별 평균 구매 간격 계산, 사용자별 자주 구매하는 제품 정보, 제품이 타겟하는 피부 문제를 사용자와 매핑 등
탐색적 데이터 분석 (EDA (Exploratory Data Analysis))
데이터를 시각화하고 요약 통계를 통해서 패턴, 이상치, 관계 등을 파악하는 과정
학습/테스트 분할 전략
가장 최근 거래 데이터를 테스트 세트로 지정하면서, 해당 사용자의 이전 거래는 훈련 세트에 포함한다던지, 무작위로 분할할지 등의 전략
1. 문제 정의 (Problem Definition)
2. 데이터 수집 (Data Collection)
3. 데이터 준비 (Data Preparation)
4. 모델 개발 및 평가 (Model Development and Evaluation)
5. 모델 배포 (Model Deployment)
모델 개발(Model Development)
보통은 기존 프레임워크를 최대한 활용, 0부터 새로 만들지는 않음.
모델 평가(Model Evaluation)
모델 평가 초기에는 테스트 세트를 사용하여 모델을 튜닝하고 성능 확인하고 결과가 만족스럽다면,
실제 고객 테스트를 통해 모델 성능에 대한 추가 피드백을 수집을 할 수도 있고, 이 과정에서 새로운 데이터를 수집할 수도 있다.
1. 문제 정의 (Problem Definition)
2. 데이터 수집 (Data Collection)
3. 데이터 준비 (Data Preparation)
4. 모델 개발 및 평가 (Model Development and Evaluation)
5. 모델 배포 (Model Deployment)
모델 배포 (Model Deployment)
모델은 보통 앱 및 웹사이트에 통합되어 배포되며, 모델이 계속해서 요구된 성능을 유지하는지 모니터링해야 한다.
그리고 필요에 따라 재학습 및 개선을 반복하는 과정이 필수적이다.
'🥇 certification logbook' 카테고리의 다른 글
[Coursera/IBM course #1] Linear Regression & Logistic Regression (0) | 2025.05.04 |
---|---|
[Coursera/IBM course #1] Scikit-Learn Machine Learning Ecosystem (0) | 2025.05.03 |
[Coursera/IBM course #1] Tools for Machine Learning (1) | 2025.05.03 |
[Coursera/IBM course #1] 데이터 사이언티스트 (data scientist) vs AI 엔지니어 (AI engineer) (0) | 2025.05.03 |
[Coursera/IBM] IBM AI Engineering PC 및 Machine Learning with Python 코스 소개 (1) | 2025.04.30 |
빅데이터분석기사 (빅분기) 실기 총 정리 / 시험 시작 전 확인 (0) | 2023.12.19 |
[ADsP] 군집분석 (0) | 2023.06.18 |
[python 통계분석] 교차분석(카이제곱 검정) (0) | 2023.06.18 |