[혼공머신]

[혼공머신] 1주차

해야지11 2025. 7. 6. 16:29

혼공학습단이라는 프로그램이 진도와 숙제를 통해 꾸준히 공부하게 하여 나에게 큰 도움을 줄 수 있을 것 같아 신청하게 되었다.

앞으로 열심히 머신러닝과 딥러닝을 공부하여 기반을 튼튼하게 다질 것이다.


01- 3

k-최근접 이웃 알고리즘을 이용하여 도미와 빙어를 분류하는 머신러닝 모델 훈련

도미 데이터 와 도미 데이터를 산점도로 표현
빙어 데이터와 빙어 데이터를 산점도로 표현
도미와 빙어 데이터를 하나의 객체에 산점도로 표현, zip()함수를 이용해 2차원 리스트 만듦, 정답데이터 생성

 

k-최근접 이웃 알고리즘 구현

함수:

zip() - 나열된 리스트 각각에서 하나씩 원소를 꺼내 반환

scikit-learn

  • fit() - 사이킷런 모델을 훈련할 때 사용하는 메서드
  • predict() - 사이킷런 모델을 훈련하고 예측할 때 사용하는 메서드
  • score() - 훈련된 사이킷런 모델의 성능을 측정

02- 1

머신러닝 알고리즘의 성능을 평가하려면 훈련 데이터와 평가에 사용할 데이터가 각각 달라야 한다.

zip()함수 이용, 슬라이싱
넘파이 변환, 넘파이 배열 크기 확인
랜덤으로 추출, 배열 인덱싱 이용, 시각화
정확도 확인, 테스트 세트의 예측결과와 실제 타깃을 확인

용어:

훈련데이터 - 입력(데이터), 타킷(정답)

지도 학습 - 타깃(정답)이 있어 알고리즘이 정답을 맞히는 것을 학습

비지도 학습 - 타깃 없이 입력 데이터만 사용, 데이터를 잘 파악하거나 변형하는데 도움을 줌

테스트 세트 - 평가에 사용하는 데이터, 전체 데-이터에서 에서 20~30% 정도 사용

훈련 세트 - 훈련에 사용되는 데이터

샘플링 편향 - 훈련 세트와 테스트 세트에 샘플이 골고루 섞여 있지 않으면 샘플링이 한쪽으로 치우쳤다는 의미

 

함수:

numpy

  •  seed() - 넘파이에서 난수를 생성하기 위한 정수 초깃값을 지정, 초깃값이 같은면 동일한 난수 추출 가능
  • arange() - 일정한 간격의 정수 또는 실수 배열을 만듦
  • shuffle() - 주어진 배열을 랜덤하게 섞음, 다차원 배열일 경우 첫 번째 축(행)에 대해서만 섞음

02- 2

데이터의 스케일이 다르다면 전처리를 해야 함

훈련데이터 설정
훈련 세트, 데이터 세트 크기 확인 및 train_test_split() 함수 이용
새로운 샘플 구분 및 확인
kn.kneighbors()를 통해 가까운 5개의 샘플 확인
기준(범위)를 동일하게 맞춤
표준점수 방법으로 전처리 (새로운 샘플에는 적용 안함)
새로운 샘플에도 동일한 전처리 방법 사용하여 시각화 후 모델 평가 및 새로운 샘플에 대한 모델의 예측 출력
특성을 표준점수 방법을 전처리 후 kneighbors() 함수로 가장 가까운 샘플 5개 확인

용어:

스케일 - 두 특성의 값이 놓인 범위가 매우 다를 때 두 특성의 스케일이 다르다고 함

데이터 전처리 - 샘플 간의 거리에 영향을 많이 받으므로 특성값을 일정한 기준으로 맞춰주는 작업(예: 표준점수)

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

함수:

numpy

  • column_stack() - 전달받은 리스트를 일렬로 세운 다음 차례대로 나란히 연결

scikit-learn

  • train_test_split() - 훈련 데이터를 훈련 세트와 테스트 세트로 나누는 함수
  • kneighbors() - k-최근접 이웃 객체의 메서드, 입력한 데이터에 가장 가까운 이웃을 찾아 거리와 이웃 샘플의 인덱스를 반환

'[혼공머신]' 카테고리의 다른 글

[혼공머신] 5주차  (8) 2025.08.10
[혼공머신] 4주차  (5) 2025.07.27
[혼공머신] 3주차  (3) 2025.07.20
[혼공머신] 2주차  (1) 2025.07.13