머신러닝 - 개념과 종류

dumbbelldore·2024년 12월 29일
0

zero-base 33기

목록 보기
47/97

1. 머신러닝(Machine Learning; ML)의 개념

  • 컴퓨터가 명시적으로 프로그래밍되지 않고도 데이터를 통해 학습하고 성능을 개선할 수 있도록 하는 인공지능(AI)의 한 분야
  • 컴퓨터는 ML을 통해 주어진 데이터를 기반으로 패턴을 발견하거나 예측을 수행할 수 있음

2. ML의 핵심 요소

  • 데이터: 모델을 훈련시키기 위한 학습 데이터
  • 알고리즘: 데이터를 분석하고 학습하는 데 사용되는 방법
  • 모델: 학습 결과로 생성된 예측 도구

3. ML의 종류

3-1. 지도 학습(Supervised Learning)

  • 입력 데이터(특징)와 해당하는 정답(레이블)을 기반으로 학습
  • 예시: 회귀분석, 분류 모델
  • 사용 사례: 이메일 스팸 필터링, 신용카드 부정 거래 탐지

3-2. 비지도 학습(Unsupervised Learning)**

  • 정답(레이블)이 없는 데이터를 분석하여 패턴을 찾음
  • 예시: 클러스터링, 차원 축소
  • 사용 사례: 고객 세분화, 데이터 시각화

3-3. 강화 학습(Reinforcement Learning)**

  • 에이전트가 환경과 상호작용하며 보상을 최대화하는 행동을 학습
  • 사용 사례: 게임 AI, 자율주행

4. 머신러닝의 특징

  • 데이터를 많이 활용할수록 성능이 향상되는 경향이 있음
  • 모델이 새로운 데이터를 잘 예측하려면 일반화(generalization)가 중요
  • 특징(feature) 선택 및 엔지니어링이 모델 성능에 큰 영향을 미침

5. ML 개발 환경

  • ML 기능을 제공하는 프로그래밍 언어의 종류는 다양하며, 그 중 Python, R이 가장 많이 활용됨

5-1. Python

  • 특징: 가장 널리 사용되며 통계분석, 시각화, ML, DL, Computer Vision에 이르기까지 풍부한 라이브러리가 제공됨
  • 장점: 쉬운 문법, 강력한 커뮤니티 지원
  • 단점: 복잡한 계산에서 속도가 느릴 수 있음
  • 주요 개발 환경
    • Google Colab: 클라우드 기반, 무료 GPU 제공
    • Jupyter Notebook: 데이터 분석과 실험용으로 최적
    • Anaconda: 환경 관리와 패키지 설치에 편리
    • VS Code: 빠르고 확장성 높은 코드 작성
    • PyCharm: Python 전용 IDE로 대규모 프로젝트에 적합

5-2. R

  • 특징: 통계와 데이터 시각화에 특화됨
  • 장점: 통계 분석 및 시각화 기능이 강력
  • 단점: 대규모 데이터 처리와 딥러닝에는 상대적으로 부적합
  • 주요 개발 환경:
    • RStudio: R 전용 IDE로 데이터 분석과 시각화에 최적
    • Jupyter Notebook: R 커널 설치 후 사용 가능

5-3. Julia

  • 특징: 수학적 계산과 대규모 데이터 처리에 최적화된 신생 프로그램이 언어
  • 장점: 빠른 실행 속도와 높은 성능
  • 단점: 라이브러리와 커뮤니티가 제한적임
  • 주요 개발 환경:
    • JuliaPro: Julia 기반의 통합 개발 환경
    • Jupyter Notebook: Julia 커널 설치 후 사용 가능
    • VS Code: Julia 전용 플러그인 제공

5-4. Java

  • 특징: 안정성과 속도가 중요한 환경에서 적합
  • 장점: 대규모 분산 시스템과 실시간 처리에 강점
  • 단점: 머신러닝 및 데이터 분석 라이브러리가 부족
  • 주요 개발 환경:
    • Eclipse: Java 전용 IDE로 확장성과 안정성 제공
    • IntelliJ IDEA: 대규모 애플리케이션 개발에 적합
    • Weka: GUI 기반으로 머신러닝 실험 가능

*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
데이터 분석, 데이터 사이언스 학습 저장소

0개의 댓글