머신러닝의 데이터 수집 방법을 설명드리겠습니다:
- 데이터 수집 방법:
-
공개 데이터셋 사용
- Kaggle
- UCI Machine Learning Repository
- Google Dataset Search
# 예: MNIST 데이터셋 (손글씨 숫자)
from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
- 웹 스크래핑
import requests
from bs4 import BeautifulSoup
# 웹사이트에서 데이터 수집
response = requests.get('https://example.com')
soup = BeautifulSoup(response.text, 'html.parser')
- API 사용
# 예: 날씨 API
import requests
api_key = "your_api_key"
url = f"https://api.weatherapi.com/v1/current.json?key={api_key}&q=Seoul"
response = requests.get(url)
- 데이터 종류:
-
구조화된 데이터
- CSV 파일
- Excel 파일
- 데이터베이스
import pandas as pd
# CSV 파일 읽기
df = pd.read_csv('data.csv')
-
비구조화된 데이터
- 이미지
- 텍스트
- 음성
from PIL import Image
# 이미지 데이터 로드
image = Image.open('image.jpg')
- 데이터 수집 시 고려사항:
-
품질
- 정확성
- 완전성
- 일관성
-
수량
- 충분한 데이터
- 균형 잡힌 데이터
-
법적/윤리적 고려
- 개인정보 보호
- 저작권
- 데이터 사용 권한
- 실제 예시:
# 예: 고양이 이미지 분류를 위한 데이터 수집
import os
import requests
from PIL import Image
def collect_cat_images(num_images=100):
# 이미지 저장 디렉토리 생성
os.makedirs('cat_images', exist_ok=True)
# API를 통해 고양이 이미지 다운로드
for i in range(num_images):
response = requests.get('https://api.thecatapi.com/v1/images/search')
image_url = response.json()[0]['url']
# 이미지 다운로드 및 저장
img_response = requests.get(image_url)
with open(f'cat_images/cat_{i}.jpg', 'wb') as f:
f.write(img_response.content)
- 데이터 전처리:
import pandas as pd
import numpy as np
def preprocess_data(data):
# 결측치 처리
data = data.fillna(0)
# 데이터 정규화
data = (data - data.mean()) / data.std()
return data
이러한 데이터 수집과 전처리 과정을 통해 머신러닝 모델이 학습할 수 있는 데이터를 준비할 수 있습니다.
Top comments (0)