I can do it!!

He can do! She can do! why cannot me? i can do it!

개발/sk infosec cloud ai 전문가 양성과정

[파이썬 라이브러리를 활용한 머신러닝 #1]

gogoriver 2020. 9. 13. 15:04

해당 게시글은 안드레이스 뭘러의 [Introduction to machine learning with python]을 정리한 내용입니다.

 

1. 소개

이 장에서는 왜 머신러닝이 등장하고, 머신러닝의 종류와 필수 라이브러리, 붓꽃 품종 분류를 통한 scikit-learn이해에 대한 내용을 담고 있다.

지도학습(교사학습) 비지도학습(비교사학습) 강화학습
이미 알려진 사례를 바탕으로 일반화된 모델을 만들어 의사결정 프로세스를 자동화하는 것
(입력과 출력 有)
알고리즘에 입력은 주어지지만 출력은 제공되지 않는다. 어떤 임의의 존재 (Agent) 가 주어진 환경 내에서 어떻게 행동해야 하는지에 대해 학습하는 것
ex)
1. 편지봉투에 손으로 쓴 우편번호 숫자 판별
2. 의료 영상 이미지에 기반한 종양 판단
3. 의심되는 신용카드 거래 감지
ex)
1. 블로그 글의 주제 구분
2. 고객들을 취향이 비슷한 그룹으로 묶기
3. 비정상적인 웹사이트 접근 탐지
ex)
1. 쿠키런
2. 알파고

 

  • sample(샘플) or data point : 하나의 개체 혹은 행
  • 특성 : 샘플의 속성, 즉 열
  • scikit-learn:
    • 오픈소스인 사이킷런은 자유롭게 사용하거나 배포 ok
    • 매우 인기가 높고 독보적인 파이썬 머신러닝 라이브러리
    • 딥러닝은 제공하지 않는다.
  • numpy 
    • 기본 데이터 구조
    • 사이킷런은 numpy를 기본적 데이터 구조로  받는다
    • 핵심은 다차원 ndarray 클래스를 생성한다는 것이다
    • 모든 원소는 동일하다!
  • 성과측정
    • 훈련데이터(set) : train
    • 테스트데이터(set) : test
    • train_test_split 함수를 사용한다.
    • 기본 비율은 train 75%, test = 25%이다.
  • 유사 난수 생성기[random_state=n]
    • 데이터 셋을 무작위로 섞는다.
  • 데이터 살펴보기 : 산점도 그래프를 이용하면 좋다
  • k-최근접 알고리즘 (k-NN)
    • 유유상종! => 새로운 데이터를 입력 받았을 때 가장 가까이 있는 것이 무엇이냐를 중심으로 새로운 데이터의 종류를 정해주는 알고리즘 
    • 분류나 회귀에 사용되는 비모수 방식이다
    • 두 경우 모두 입력이 특정 공간 내 k개의 가장 가까운 훈련 데이터로 구성되어 있다
    • k=n 여기서 n은 본인이 지정할 수 있다.
    • 분류와 회귀 모두 더 가까운 이웃일수록 더 먼 이웃보다 평균에 더 많이 기여하도록 이웃의 기여에 가중치를 주는 것이 유용할 수 있다. 예를 들어, 가장 흔한 가중치 스키마는 d가 이웃까지의 거리일 때 각각의 이웃에게 1/d의 가중치를 주는 것이다(wiki)
요약  
훈련 세트(학습) 모델 구축에 사용
테스트 세트(검증) 모델이 새로운 데이터에 얼마나 잘 적용될 수 있을지 평가
k-최근접 이웃 분류 알고리즘 새 데이터 포인트를 예측하기 위해 훈련 데이터에서 가장 가까운 이웃을 선택
  모델을 만드는 것(fit)은 물론, 예측(predict)도 가능
  score 메서드로 모델 평가