
Ch. 1과 Ch. 2는 인공지능과 구글 코랩 소개 및 생선 분류를 위한 머신러닝 모델을 만드는 과정을 다루었다.
개념 및 용어 정리
Ch 1. 나의 첫 머신러닝
01-1 인공지능과 머신러닝, 딥러닝
- 인공지능(Artificial Intelligence, AI): 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술.
- 강인공지능(인공일반지능): 사람의 지능과 유사한 AI로, 영화 속에서 많이 등장함. 예시로, 미션 임파서블 데드 레코닝·파이널 레코닝에 등장한 엔티티가 있음.

엔티티 - 약인공지능: 특정 분야에서 사람을 돕는 보조 AI로, 예시로 음성 비서, 자율 주행 자동차 등.
- 강인공지능(인공일반지능): 사람의 지능과 유사한 AI로, 영화 속에서 많이 등장함. 예시로, 미션 임파서블 데드 레코닝·파이널 레코닝에 등장한 엔티티가 있음.
- 머신러닝(Machine Learning): 인공지능의 하위 분야로, 데이터에서 스스로 규칙을 학습하는 알고리즘을 연구하는 분야
- 머신러닝의 대표 라이브러리는 사이킷런으로 사이킷런은 파이썬 API 사용함.
어떤 머신러닝 알고리즘이 유용성이 증명되고 널리 사용되면 사이킷런 라이브러리에 추가됨
- 머신러닝의 대표 라이브러리는 사이킷런으로 사이킷런은 파이썬 API 사용함.
- 딥러닝(Deep Learning): 딥러닝은 인공신경망을 기반으로 한 머신러닝 분야를 일컬음
- 대표 라이브러리는 텐서플로와 파이토치가 있음
01-2 코랩과 주피터 노트북
- 구글 코랩(Colab): 클라우드 기반의 주피터 노트북 개발 환경으로, 웹 브라우저에서 텍스트와 프로그램 코드를 자유롭게 작성 할 수 있는 온라인 에디터.
구글 계정만 잇으면 누구나 무료로 코랩을 사용할 수 있으며, 노트북은 구글 클라우드의 가상 서버에 연결되어 있음.
코랩 노트북 화면 상단 오른쪽의 RAM, 디스크 아이콘에 마우스를 올리면 가상 서버 정보를 알 수 있음(아래 사진)

- 노트북: 코랩의 프로그램 작성 단위이며 코랩 노트북이라고도 부름. 노트북에는 코드, 코드의 실행 결과, 문서를 모두 저장하여 보관할 수 있음
- 셀(cell): 코랩의 최소 실행 단위로, 코드 셀과 텍스트 셀이 있음
01-3 마켓과 머신러닝
- 분류(classification) : 머신러닝에서 여러 개의 종류(혹은 클래스) 중 하나를 구별해 내는 문제
- 이진 분류(binary classification): 2개의 종류(클래스) 중 하나를 고르는 문제를 이진 분류라 함
- k-최근접 이웃 알고리즘(k-Nearest Neighbors Algorithm, KNN): 가장 간단한 머신러닝 알고리즘 중 하나로 어떤 규칙을 찾기보다는 인접한 샘플을 기반으로 예측을 수행함
k-최근접 이웃 알고리즘이 정답을 판단하는 원리
어떤 데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용함(기본값 5개)
즉, 주위의 데이터로 현재의 데이터를 판단함
Ch 2. 데이터 다루기
02-1 훈련 세트와 테스트 세트
- 지도학습(supervised learning): 지도 학습은 입력(데이터)과 타깃(정답)으로 이뤄진 훈련 데이터가 필요하며 새로운 데이터를 예측하는 데 활용함. 1장에서 사용한 k-최근접 이웃이 지도 학습 알고리즘임
- 비지도학습(unsupervised learning): 타깃 데이터 없이 입력 데이터만 있을 때 사용. 이런 종류의 알고리즘은 정답을 사용하지 않으므로 무언가를 맞힐 수가 없는 대신 데이터를 잘 파악하거나 변형하는 데 도움을 줌
- 훈련 데이터(training data): 지도 학습의 경우 필요한 입력(데이터)과 타깃(정답)을 합쳐 놓은 것
- 훈련 세트와 테스트 세트(train set와 test set): 모델을 훈련할 때는 훈련 세트를 사용하고 평가는 테스트 세트로 함. 테스트 세트는 전체 데이터에서 20~30%의 비중을 둠
- 특성: 데이터를 표현하는 하나의 성질
- 샘플링 편향(sampling bias): 훈련 세트와 테스트 세트에 샘플이 고르게 섞여 있지 않을 때 나타나는 현상
- 넘파이(Numpy): 파이썬의 대표적인 배열(array) 라이브러리로 고차원의 배열을 손쉽게 만들고 조작할 수 있는 간편한 도구를 많이 제공함.
02-2 데이터 전처리
- 데이터 전처리(data preprocessing): 머신러닝 모델에 훈련 데이터를 주입하기 전 가공하는 단계로 특성값을 일정한 기준으로 맞추어 주는 작업. 데이터를 표현하는 기준이 다르면 알고리즘을 올바르게 예측할 수 없음
- 표준점수: 가장 널리 사용하는 전처리 방법 중 하나로, 각 특성값이 평균에서 표준편차의 몇 배만큼이나 떨어져 있는지 나타냄. 이를 통해 실제 특성값의 크기와 상관없이 동일한 조건에서 비교할 수 있음
- 브로드캐스팅(broadcasting): 조건을 만족하면 모양이 다른 배열 간의 연산을 가능하게 해 주는 기능.
생선 분류를 위한 모델 만들기
Ch 1과 Ch 2에 나온 머신러닝 문제 해결과정을 요약 정리하였다. 책에서는 차근차근 시행착오를 거쳐서 모델을 완성해낸다.
길이와 무게가 측정된 도미와 빙어를 분류할 수 있는 머신러닝 모델을 만들기
사용한 머신러닝 모델은 인접한 샘플을 기반으로 예측을 수행하는 k-최근접 이웃 알고리즘(KNN)이다.
모델 생성에 앞서, 데이터를 나눌 때 일어날 수 있는 데이터 편향 문제를 고려해야 한다.
이를 위해서 사이킷런 패키지의 train_test_split() 함수를 사용해서 생선 데이터를 훈련 세트와 테스트 세트로 랜덤하게 섞은 후 나누어 데이터 편향 문제를 해결하였다. 만약, 랜덤하게 섞지 않으면 한쪽에만 특정 생선 데이터가 쏠려 모델이 분류를 제대로 수행할 수 없게 된다.

훈련 및 테스트에 사용한 생선 데이터는 무게와 길이라는 두 개의 특성을 가지고 있는데, 산점도를 그려 확인해보았다.

산점도에서 x축은 생선 길이, y축은 생선 무게이다. x축의 범위가 10~45(cm) 정도라면 y축은 범위가 0~1000(g)정도까지 되는데 x축과 y축의 값의 범위가 다름을 알 수 있다. 이것을 스케일이 다르다라고 말하며, 이웃한 주변의 샘플 중에서 다수인 클래스를 예측으로 사용 하는 k-최근접 이웃 알고리즘이 올바르게 작동하지 않을 수 있다.
따라서, 데이터 속성의 스케일을 비슷하게 바꾸는 데이터 전처리를 수행하여야 한다.
데이터 전처리 방식은 흔한 방식으로, 데이터를 표준 점수로 변환하는 표준화 방법으로 수행되었다.
표준 점수는 각 특성값이 평균에서 표준편차의 몇 배만큼 떨어져있는지를 나타낸다. 표준 점수를 이용하면 실제 특성값의 크기와 상관없이 동일한 조건으로 값들을 비교할 수 있다.

테스트를 진행할 새로운 샘플도 표준 점수로 변환해야 k-최근접 이웃 알고리즘이 올바르게 작동할 수 있다.

데이터 전처리를 수행한 후, k-최근접 이웃 모델을 훈련시키고 평가하였다.
모델을 평가하기에 앞서, 훈련 세트를 변환한 방식 그대로 테스트 세트도 변환했다.
이는 모델에 학습 및 테스트 시킬 데이터를 표현하는 기준이 다르면 알고리즘이 올바르게 예측할 수 없기 때문이다.
만약, 변환하지 않는 다면 특성값이 엉뚱하게 변환되어 훈련 세트로 훈련된 모델이 제대로 동작하지 않을 수 있다.

score() 메서드로 모델의 정확도를 평가하였을 때, 정확도가 100%로 나왔고, 김 팀장의 새로운 샘플로 모델의 예측을 출력하였을 때 정답인 도미로 나왔다(모델에서 도미가 1이다).
kneighbors() 함수로 김 팀장의 새로운 샘플의 k-최근접 이웃을 산점도를 통해 확인해보았다.

삼각형이 김 팀장의 새로운 생선 데이터이고, 마름모가 새로운 생선 데이터에 이웃한 5 개의 클래스이다. 이웃한 5개의 클래스가 모두 도미 샘플이기 때문에, 모델은 새로운 생선 데이터가 도미라고 예측하였다.
기본 숙제
코랩 실습 화면 캡쳐하기

추가 숙제
Ch.02(02-1) 확인 문제 풀고, 설명하기
1. 머신러닝 알고리즘의 한 종류로서 샘플의 입력과 타깃(정답)을 알고 있을 때 사용할 수 있는 학습 방법은 무엇인가요?
정답은 1번 지도학습으로, 샘플의 입력과 정답이 준비되어 있고 샘플의 양이 많지 않을때 사용할 수 있다.
2. 훈련 세트와 테스트 세트가 잘못 만들어져 전체 데이터를 대표하지 못하는 현상을 무엇이라고 부르나요?
정답은 4번 샘플링 편향이다. 훈련 세트와 테스트 세트에 샘플이 고르게 섞여 있지 않을 때 나타나는 현상을 샘플링 편향이라 부르며 샘플링 편향이 발생한 경우 제대로 된 지도 학습 모델을 만들 수 없다.
3. 사이킷런은 입력 데이터(배열)가 어떻게 구성되어 있을 것으로 기대하나요?
정답은 2번, 사이킷런은 입력 데이터가 2차원의 리스트로 구성되어 있어야 합니다.
가로인 행은 샘플, 세로인 열은 특성이 위치한다고 가정합니다.

4. 다음 중 배열 arr에서 두 번째 원소에서부터 다섯 번째 원소까지 선택하기 위해 올바르게 슬라이싱 연산자를 사용한 것은 무엇인가요?
정답은 3번 arr[1:5]이다. 슬라이싱 연산자를 사용해서 원소를 선택할 때에는 헷갈리지 않게 주의해야 한다. 배열에서 첫 번째 인자로는 선택할 첫 원소의 인덱스를 입력해야 한다. 인덱스는 0부터 시작하므로 두 번째 원소면 인덱스는 1이 된다. 그리고 두번째 인자로는 선택할 마지막 N 번째 원소의 다음 원소(N+1 번째 원소)의 인덱스를 입력해야 한다. 인덱스는 0부터 시작하므로 다섯 번째 원소의 인덱스는 4가 된다. N+1 번째 원소의 인덱스를 입력해야 하므로 두 번째 인자에 들어갈 인덱스는 5가 된다. 따라서 두 번째 원소에서부터 다섯 번째 원소까지 선택하기 위해서는 arr[1:5]을 입력해야 한다.
'혼공학습단-혼공머신' 카테고리의 다른 글
| [혼공머신] 6주차 Ch 7. 딥러닝을 시작합니다 (상) (3) | 2025.08.17 |
|---|---|
| [혼공머신] 5주차 Ch 6. 비지도 학습 (7) | 2025.08.11 |
| [혼공 머신] 4주차 Ch 05. 트리 알고리즘 (2) | 2025.07.27 |
| [3주차] 혼공머신 Ch 4. 다양한 분류 알고리즘 (1) | 2025.07.20 |
| [혼공머신] 2주차 공부 인증 Ch 03 (0) | 2025.07.13 |