여기 물고기의 종류와 무게, 길이, 두께 데이터가 있다. 그런데, 물고기 데이터가 계속 늘어날 예정이라면? 물고기 마다 일일이 무게를 잴 수 없으니... 무슨 방법이 없을까?
방법 1: 데이터가 들어올 때마다 훈련을 다시 시킬까?
: 데이터가 계속 늘어나면, 저장공간에 부하가 걸림. 훈련시간도 늘어남.
방법 2: 그러면 이전에 가지고 있던 데이터를 좀 버려서 데이터 크기를 유지할까?
: 버려진 데이터에 중요한 내용이 있다면, 큰일임.
방법 3: 훈련시켜 둔 기존 모델을 버리지 말고 새로운 데이터만 추가로 학습 시키자!
: 점진적 학습(Incremental Learning) 온라인 학습(Online Learning)이라고 함
대표적인 점진적 학습인 확률적 경사 하강법을 공부해보자
import pandas as pd
fish = pd.read_csv('https://bit.ly/fish_csv_data')
# 잉어, 빙어 등 물고기 데이터를 읽는다
print(fish)
좀 더 보기 편하게 describe() 메서드를 사용해볼까?
describe()는 통계량을 요약해서 출력해주는 메서드이다.
fish.describe()
물고기의 데이터와 이름을 각 각 나누고 넘파이 배열로 바꿔보자.
왜 넘파이 배열오 바꾸는지 궁금하다면, 데이터사이언스 넘파이 배열 설명 페이지에 설명이 잘 되어있다.
fish_input = fish[['Weight','Length','Diagonal','Height','Width']].to_numpy()
fish_target = fish['Species'].to_numpy()
print(fish_input)
print(fish['Species'])
from sklearn.model_selection import train_test_split
# train_test_split() 함수를 사용해 데이터 훈련세트와 테스트 세트로 나누자.
train_input, test_imput, train_target, test_target = train_test_split(
fish_input, fish_target, random_state=40
)
# 훈련세트와 테스트세트의 특성을 표준화 전처리 하자.
# 꼭! 훈련세트에서 학습한 통계값으로 테스트세트도 변환해야 함.
'머신러닝' 카테고리의 다른 글
K-평균 알고리즘 (0) | 2024.05.20 |
---|---|
지니 불순도(Gini impurity)와 정보 이득 (0) | 2024.05.17 |
Sklearn(사이킷런) 붓꽃 데이터 (0) | 2024.05.13 |