혼공단 13기 머신러닝+딥러닝

[혼공머신] 1주차_시작이 반이다!!!!

짐꾸러기 2025. 1. 6. 16:48

 

 

 

오늘부터 시작하는 혼공단 13기.

 

열심히 하겠슴다

 

 

내가 공부 해야하는 책은

바로바로~

 

이것이다.

 

혼자 공부하는 머신러닝+딥러닝

 

 

진도표를 봐 보겠다.

 

 

1주차에는 Chapter 01~02 부분의 분량을 공부 해야한다.

목차부터 살펴보겠다.

 

 

 


 

 

 

Chapter 01 나의 첫 머신러닝

 

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

 

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

 

01-3 마켓과 머신러닝

 

Chapter 02 데이터 다루기

 

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

 

02-2 데이터 전처

 

 

 


Chapter 1

 

 

챕터 1에서는

인공지능, 머신러닝, 딥러닝에 대한 용어 설명

개발 환경에 대한 설명, k-최근접 이웃 알고리즘에 대한 내용이 들어있다.

 

 

 

이 책에서는 주로 구글 코랩을 이용한다.

설치가 따로 필요 없어서 매우매우 편리하다.

(노트북 저장 공간이 간당간당 하다..)

 

 

 

컴퓨터 성능과 상관없이 프로그램을 실습해 볼 수 있다.

 

머신러닝을 만들 때 사용되는 패키지 또한

원래는 패키지를 다 따로 설치해야 하지만,

 

코랩에서는 이미 다 설치되어 있기 때문에

따로 설치하지 않아도 바로바로 사용할 수 있다고 한다!

 

 

또 이 책에서 주로 사용할 머신러닝 라이브러리는 사이킷런이다.

 

파이썬 API를 사용하는 라이브러리이다.

 

 

 

학교에서 배운 파이썬을 사용할 때가 왔다!!

 

사실 이 책을 선택한 이유가 뭐였냐면,

 

문법을 배우긴 배웠는데 이걸 어떻게 써먹는거지

 

 

...라는 의문이 들었기 때문이다.

 

이제 써먹을 수 있게 되었다!

야호!

 

 

 

그럼 이제 k-최근접 이웃 알고리즘에 대해 알아보자~~

 

책에서는 도미와 빙어를 구분하는 프로그램을 작성하는 과제가 주어지게 되는데!

과연 해낼 수 있을지!

 

 

 

용어 정리부터 들어가겠다.

 


 

 

k-최근접 이웃 알고리즘: 가장 간단한 머신러닝 알고리즘. 전체 데이터를 메모리에 가지고 있는 것이 전부이다.

특성: 데이터를 표현하는 하나의 성질

훈련: 데이터에서 규칙을 찾는 과정. 사이킷런에서는 fit() 메서드가 하는 역할이다.

모델: 알고리즘이 구현된 객체.

정확도: 정확한 답을 몇 개 맞혔는지 백분율로 나타낸 값.

 

matplotlib

  • scatter() : 산점도를 그리는 맷플롯립 함수.

scikit-learn

  • KNeighborsClassifier() : k-최근접 이웃 분류 모델을 만드는 사이킷런 클래스.
  • fit() : 사이킷런 모델을 훈련할 때 사용하는 메서드. 처음 두 매개변수로 훈련에 사용할 특성과 정답 데이터를 전달한다.
  • predict() : 사이킷런 모델을 훈련하고 예측할 때 사용하는 메서드. 특성 데이터 하나만 매개변수로 받음.
  • score() : 훈련된 사이킷런 모델의 성능을 측정한다. 처음 두 매개변수로 특성과 정답 데이터를 전달. predict() 메서드로 예측을 수행한 다음 분류 모델일 경우 정답과 비교하여 올바르게 예측한 개수의 비율을 반환.

 


 

 

역시 1장에 나오는 알고리즘이라 그런가 상대적으로 이해하기 쉬웠다.

그냥 그래프만 그릴 줄 알면 된다.

 

 

코랩을 켜서 실습을 시작했다.

 

 

 

좀 있어 보이는 듯

 

 

 

올ㅋㅋ 그래프가 뭔가 있어보인다.

(죄송해요 이런거 처음 해봐서 그래요)

 

 

 

 

정확도까지 계산 끝!

 

 

그. 러. 나.

1장만 봤을 땐 전혀 이해가 안갔지만

저 머신러닝에는 큰 문제가 있다..

 

바로 훈련 세트와 테스트 세트를 분리하지 않은 것이다..

 

 

그에 대한 내용이 2장에서 나온다.

 

 

2장에서는 훈련 세트와 테스트 세트, 데이터 전처리에 대한 내용이 나온다.

 

용어 정리를 해보겠다.

 


 

 

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

 

비지도 학습: 타깃 데이터가 없음. 입력 데이터에서 어떤 특징을 찾는 데 주로 활용

 

훈련 세트: 모델을 훈련할 때 사용하는 데이터. 훈련 세트가 클수록 보통 좋음.

 

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

 

데이터 전처리: 데이터를 가공하는 단계

 

표준점수: 훈련 세트의 스케일을 바꾸는 대표적인 방법 중하나. 특성의 평균을 빼고 표준편차로 나눈다.

 

브로드캐스팅: 크기가 다른 넘파이 배열에서 자동으로 사칙 연산을 모든 행이나 열로 확장하여 수행하는 기능

 

 


 

여기선 numpy라는 패키지를 불러와 행과 열로 가지런히 샘플 데이터를 정리했다.

 

인덱스를 사용해 테스트 세트와 훈련 세트를 나누도록 프로그램을 수정한다.

 

 

 

예쁘게 정리된 데이터들.

 

 

 

그러나, 인덱스를 통해 훈련 세트와 테스트 세트를 나누는 것은 귀찮다.

사이킷런의 train_test_split() 함수를 이용하면

더욱 편리하다.

 

 

 

 

또한, 그래프를 그려 보았을 때

데이터의 두 특성의 스케일이 다르면,

알고리즘이 예측하는 데에 방해가 된다.

 

두 특성의 스케일을 맞추는 것이

'데이터 전처리'라고 하는 것이다.

 

이 책에서는

특성을 평균과 표준편차로 바꾸어

표준 점수를 구하는 방식으로 데이터 전처리를 했다.

 

 

 


 

 

흠..

뭔가 알듯 말듯 하면서 알쏭 달쏭..

 

 

 

복습을 열심히 해야겠다..

 

 

 

나도 인공지능 짱짱이 될거야.