혼자 공부하는 머신러닝+딥러닝 1, 2장
1️⃣장
인공지능
인공지능(Artificial intelligence)은 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술
✍🏻 컴퓨터의 서능 한계로 AI 겨울을 거치기도 함
머신러닝
머신러닝(Machine learning)은 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야,
인공지능의 하위 분야 중에서 지능을 구현하기 위한 소프트웨어를 담당하는 핵심 분야
머신러닝은 통계학에서 유래된 알고리즘이 많으며 상호 작용하며 발전 중
딥러닝
머신러닝 알고리즘 중에 인공 신경망(Artificial neural network)을 기반으로 한 방법들을 통칭하여 딥러닝(Deep learning)이라 함
딥러닝 기술은 복잡한 알고리즘을 훈련할 수 있는 풍부한 데이터, 컴퓨터 성능의 향상, 알고리즘의 발전을 통해 뛰어난 성능을 보이게 됨
구글 코랩
웹에서 파이썬 프로그램을 테스트하고 저장할 수 있는 서비스, 클라우드 기반의 주피터 노트북 개발 환경
https://colab.research.google.com/
Google Colaboratory
colab.research.google.com
✍🏻 여기서 노트북은 코랩의 프로그램 작성 단위이며 일반 프로그램 파일과 달리 대화식으로 프로그램을 만들 수 있기 때문에 데이터 분석이나 교육에 매우 적합
생선의 길이와 무게 데이터를 특성(feature)라 하며 특성을 이용하여 산점도를 그릴 수 있다.
✍🏻 머신러닝에서 여러 개의 종류 혹은 클래스(class)라고 부르는 것 중 하나를 구별해 내는 문제를 분류(classification)이라고 함
✍🏻 특정 데이터를 도미와 빙어라는 2개의 클래스 중 하나로 분류하는 문제는 이진 분류(binary classification)이라고 함
🐟머신러닝을 사용해 도미와 빙어를 구분 짓고자 한다.
각 생선의 특성을 그래프로 표현하면 데이터를 잘 이해할 수 있고 작업에 대한 힌트를 얻을 수도 있다.
✍🏻 산점도 : x축과 y축의 그래프에 데이터를 점으로 표시하는 그래프
파이썬에서 과학계산용 그래프를 그리는 대표적인 패키지 맷플롭립(matplotlib)을 이용하여 산점도를 구한다.
k-최근접 이웃 (k-Nearest Neighbors) 알고리즘을 사용한 이진 분류
✍🏻 k-최근접 이웃 알고리즘 : 어떤 데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용(주변 값)
도미와 빙어 데이터를 2차원 배열로 준비하여 사이킷런(scikit-learn) 패키지를 이용하여 이진 분류를 수행한다.
fish_data 와 fish_target을 사용하여 훈련을 수행하여 모델 kn을 평가한다.
kn 모델은 훈련시에 전달한 모든 데이터를 가지고 있다가 새로운 데이터가 등장하면 가장 가까운 데이터를 참고하여 도미인지 빙어인지 구분한다.
가까운 데이터의 참고갯수는 n_neighbors 매개변수로 변경 가능 (기본값은 5이다.)
2️⃣장
넘파이 라이브러리를 활용하여 랜덤하게 샘플을 선택해 훈련 세트와 테스트 세트를 만든다.