혼자공부하는 머신러닝 딥러닝 1주차 후기 및 미션 완료
혼자공부하는 머신러닝 딥러닝 온라인 스터디를 시작하는 첫주로 이번주에 학습한 부분은 챕터, 1, 2 부분 이였습니다.
학습을 하기 위해서 따로 주피너노트북을 설치해서 해도 되지만, 따로 설치할 필요 없이 구글에서 무료로 제공하는 코랩을 이용해서 브라우져에서 바로 접속을 해서 사용할수 있어서, 학습하는데 상당히 편리했습니다.
처음 시작은 k-최근접 이웃(K-Nearest Neighbors) 알고리즘을 사용해서 시작을 했고, 처음 학습하는 데 좀 교재만으로 조금 어려운 부분이 있어서, 유튜브에 올려져 있는 저자분의 무료 강의를 참고해서 이해하는데 많은 도움이 되었습니다.
- 챕터 1 나의 첫 머신러닝
인공지능과 머신러닝, 딥러닝이 무엇인지를 알아보고, 실습을 위해 주피터 노트북을 따로 설치할 필요 없이 구글에서 무료로 이용할수 있는 코랩(Colab)에 대해서 알아보고, 생선을 구분하는 첫 머신러닝 예제를 실습해 봤습니다.
교재에서 처음을 실습을 해본 첫 머신러닝 프로그램은 k-최근접이웃 알고리즘을 사용해 도미와 빙어 데이터를 구분해보는 프로그램이었습니다.
사용한 예제 데이터는 캐글(https://www.kaggle.com/) 사이트의 피쉬마켓(https://www.kaggle.com/datasets/aungpyaeap/fish-market) 파일을 사용했고,
사이킷런(scikit-learn) 라이브러리를 이용해서 실습을 했습니다.
bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0,
31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0,
35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0]
bream_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0,
500.0, 340.0, 600.0, 600.0, 700.0, 700.0, 610.0, 650.0, 575.0, 685.0, 620.0, 680.0,
700.0, 725.0, 720.0, 714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0]
import matplotlib.pyplot as plt
plt.scatter(bream_length, bream_weight)
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
smelt_length = [9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0]
smelt_weight = [6.7, 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7, 19.9]
plt.scatter(bream_length, bream_weight)
plt.scatter(smelt_length, smelt_weight)
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
length = bream_length + smelt_length
weight = bream_weight + smelt_weight
fish_data = [[l, w] for l, w in zip(length, weight)]
print(fish_data)
fish_target = [1] * 35 + [0] + 14
print(fish_target)
from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier()
kn.fit(fish_data, fish_target)
kn.score(fish_data, fish_target)
plt.scatter(bream_length, bream_weight)
plt.scatter(smelt_length, smelt_weight)
plt.scatter(30, 600, market='^')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
kn.predit([[30, 600]])
print(kn._fit_X)
print(kn._y)
kn49 = KNeighborsClassifier(n_neighbors=49)
kn49.fit(fish_data, fish_target)
kn49.score(fish_data, fish_target)
print(35/49)
- 챕터2 데이터 다루기
챕터 1 뒷부분에서 학습한 피쉬마켓 데이터를 가지고 처음을 실습한 머신러닝에 대한 부분에 대해서 이어지는 부분으로 numpy 배열 라이브러리를 추가적으로 맛보기로 사용해 봤습니다.
bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0,
31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0,
35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0]
bream_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0,
500.0, 340.0, 600.0, 600.0, 700.0, 700.0, 610.0, 650.0, 575.0, 685.0, 620.0, 680.0,
700.0, 725.0, 720.0, 714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0]
smelt_length = [9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0]
smelt_weight = [6.7, 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7, 19.9]
length = bream_length + smelt_length
weight = bream_weight + smelt_weight
fish_data = [[l, w] for l, w in zip(length, weight)]
print(fish_data)
fish_target = [1] * 35 + [0] * 14
print(fish_target)
from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier()
kn.fit(fish_data, fish_target)
kn.score(fish_data, fish_target)
kn.predict([[30, 600]])
print(kn._fit_X)
print(kn._y)
kn49 = KNeighborsClassifier(n_neighbors=49)
kn49.fit(fish_data, fish_target)
kn49.score(fish_data, fish_target)
print(35/49)
- 기본 미션 : 코랩 실습 화면 캡처하기
- 선택 미션 : Ch.02(02-1) 확인 문제 풀고, 풀이 과정 정리 하기
1. 머신러닝 알고리즘의 한 종류로서 샘플의 입력과 타깃(정답)을 알고 있을 때 사용할 수 있는 학습 방법은 무엇인가요?
1. 지도 학습
2. 비지도 학습
3. 차원 축소
4. 강화 학습
* 정답 1. 지도학습
* 교재 67P : 지도 학습은 정답(타깃)이 있으니 알고리즘이 정답을 맞히는 것을 학습합니다.
2. 훈련 세트와 테스트 세트가 잘못 만들어져 전체 데이터를 대표하지 못하는 현상을 무엇이라고 부르나요?
1. 샘플링 오류
2. 샘플링 실수
3. 샘플링 편차
4. 샘플링 편향
* 정답 : 4. 샘플링 편향
* 교재 73P : 일반적으로 훈련 세트와 테스트 세트에 샘플이 골고루 섞여 있지 않으면 샘플링이 한쪽으로 치우쳤다는 의미로 샘플링 편향 이라고 부릅니다.
3. 사이컷런은 입력 데이터(배열)가 어떻게 구성되어 있을 것으로 기대하나요?
1. 행: 특성, 열: 샘플
2. 행: 샘플, 열: 특성
3. 행: 특성, 열: 타깃
4. 행: 타깃, 열: 특성
* 정답 : 2. 행: 샘플, 열: 특성
* 교재 75p : 49개의 행(샘플), 2개의 열(특성)에 놓여 있다는 것을 확인할수 있다.
#혼공학습단 #혼공 #혼공머신
0 댓글