[혼공학습단 11기] 혼공머신 1주차 : 코랩 그리고 데이터 다루기

2024. 1. 5. 17:14혼공머신

혼공학습단 11기 

 

 

 

1주차 진도 

Chapter 01 나의 첫 머신러닝

 01-1 인공지능과 머신러닝, 딥러닝

 01-2 코랩과 주피터 노트북

 01-3 마켓과 머신러닝 

 

학습 내용 

인공지능은 사람처럼 학습하고 추론할 수 있는 지능을 가진 시스템을 만드는 기술입니다. 인공지능은 강인공지능과 약인공지능으로 나눌 수 있습니다. 

 

머신러닝은 규칙을 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야입니다. 사이킷런이 대표적인 라이브러리입니다. 

 

딥러닝은 인공 신경망이라고도 하며, 텐서플로파이토치가 대표적인 라이브러리입니다. 

 

코랩은 구글 계정이 있으면 누구나 사용할 수 있는 웹 브라우저 기반의 파이썬 코드 실행 환경 입니다.

(코랩은 프로그램 설치 없이 web 상에서 google log in 만으로도 파이썬을 사용할 수 있고 gpu 까지 사용할 수 있는 장점이 있습니다. 그리고 학교에서나 회사에서 많은 사람들과 함께 코딩을 하는 교육을 하거나 공동 과제를 할 때 서로 PC설정이 달라서 발생하는 소모적인 설정 맞추는 작업을 하지 않아도 되는 점이 참 좋습니다.) 

 

이제 어느정도 환경설정 및 간단한 정의를 마치고 본격적으로 머신러닝을 시작해 보겠습니다. 

 

이번 혼공머신 책에서는 생선을 분류하는 문제를 머신러닝으로 풀어보았습니다. 

 

데이터 준비 : 생선 데이터 (https://www.kaggle.com/aungpyaeap/fish-market) 에서 다운로드 

위 데이터를 받아서 구글 드라이브에 넣은 다음 구글 드라이브의 위치를 colab 에 연결해 줘야 합니다. 

 

이번 장에서 할 작업은 이진 분류 이네요. 이진 분류의 정의에 대해 알아 보겠습니다. 

* 이진분류 (binary classification) : 2개의 클래스 중 하나를 고르는 문제. 

 True or False, 사과인지 포도인지, 이번 책에서는 도미인지 빙어인지와 같이 두개의 클래스 중 하나를 고르는 문제 

그럼 여러개 중 하나를 고르는 문제는 

* 다중분류 (multiclass classification) : 여러개의 클래스 중 하나를 고르는 문제.

사과인지 포도인지 수박인지, 도미인지 빙어인지 연어인지... 와 같이 여러개의 클래스 중 하나를 고르는 문제 

라고 합니다. 

 

그럼 위의 분류 (classification) 작업을 하는 첫 번째 머신러닝 프로그램을 만나볼까요?

 

k- 최근접 이웃 (k-Nearest Neighbors) 

  그림과 같이 파랑네모와 빨강삼각이가 있는 공간에 어떤 한 점이 있습니다. (녹색동그라미) 이 녹색동그라미는 파랑네모일까요? 빨강삼각일까요? 를 구별하고 싶습니다. 

그래서 우선 녹색동그라미 주변에 제일 가까운 점 3개를 확인 해 보았습니다. 

그랬더니 파랑네모가 1개, 빨강세모가 2개가 있네요. 다수결로 1 대 2 니깐 너는 빨강세모다 라고 판단하였습니다. 이렇게 분류하는 방법이 k 최근접 이웃 입니다. 이렇게 분류 (classification) 도 가능하고, 파랑네모의 무게가 50g, 빨강세모가 각각 30g, 10g 이라고 하면 녹색동그라미의 무게는 50g + 30g +10g / 3 하여 30g 이라고 평균을 내어 30g 일 것이다라고 예측할 수 있습니다. 즉 회귀 (regression) 도 가능합니다.

 

 

 

 

Chapter 02 데이터 다루기

 02-1 훈련 세트와 테스트 세트 

 02-2 데이터 전처리 

 

학습 내용 

지도학습 입력과 타깃을 전달하여 모델을 훈련한 다음 새로운 데이터를 예측하는데 활용

비지도학습 타깃 데이터가 없음. 따라서 무엇을 에측하는 것이 아니라 입력 데이터에서 어떤 특징을 찾는데 활용

훈련세트 모델을 훈련할 때 사용하는 데이터. 보통 훈련세트가 클수록 좋습니다. 따라서 테스트 세트를 제외한 모든 데이터를 사용

테스트세트 전체 데이터에서 20~30%를 테스트 세트로 사용하는 경우가 많습니다. 

 

 

 

 

 

선택미션 

02-1 확인문제 풀이

1. 머신러닝 알고리즘의 한 종류로서 샘플의 입력과 타깃 (정답) 을 알고 있을 때 사용할 수 있는 학습 방법은 무엇인가요?

 1) 지도학습   2) 비지도학습   3) 차원축소   4) 강화학습 

정답) 1) 지도학습 입니다. 비지도학습은 타깃이 없는 경우로 어떤 특징을 찾는 활동이고, 차원축소는 여러개의 특성 중에 중요한 특성만을 고르는 작업, 그리고 강화학습은 행동을 수행하는 학습자가 어떤 행동을 해야 하는지 알지 못하는 상태에서 행동에 대한 보상을 극대화하기 위해 어떻게 행동해야 할 지 방향을 찾는 학습 방법 입니다.

 

2. 훈련 세트와 테스트 세트가 잘못 만들어져 전체 데이터를 대표하지 못하는 현상을 무엇이라고 부르나요? 

1) 샘플링 오류  2) 샘플링 실수  3) 샘플링 편차  4) 샘플링 편향 

정답) 4) 샘플링 편향 : 훈련 세트와 테스트 세트에 샘플이 골고루 섞여 있지 않으면 샘플링이 한쪽으로 치우친 현상 

 

3. 사이킷런은 입력 데이터 (배열) 가 어떻게 구성되어 있을 것으로 기대하나요? 

1) 행: 특성, 열: 샘플  2) 행: 샘플, 열: 특성  3) 행: 특성,  열 타깃  4) 행: 타깃, 열: 특성 

정답) 2) 행: 샘플, 열: 특성