본문 바로가기

728x90

머신러닝 + 딥러닝

(24)
[혼공딥] CHAPTER 07-3 신경망 모델 훈련 손실 곡선 fit 메서드는 metrics에 지정된 정확도 값과 손실값을 각 에포크마다 계산해서 저장해주고 이를 history 객체로 반환해준다. model.compile(loss='sparse_categorical_crossentropy', metrics='accuracy') history = model.fit(train_scaled, train_target, epochs=5, verbose=0) print(history.history.keys()) history 객체를 받아서 history 객체에 있는 history 속성의 key값을 확인하면 loss와 accuracy가 있음을 확인할 수 있다. dict_keys(['loss', 'accuracy']) import matplotlib.pyplot as ..
[혼공딥] CHAPTER07-2 심층 신경망 2개의 층 from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() 전 챕터와 똑같이 데이터셋을 불러온다 from sklearn.model_selection import train_test_split train_scaled = train_input / 255.0 train_scaled = train_scaled.reshape(-1, 28*28) train_scaled, val_scaled, train_target, val_target = train_test_split(train_scaled, train_target, test_size=0..
[혼공딥] CHAPTER 07-1 인공신경망 패션 MNIST 텐서플로의 케라스(Keras) 패키지를 임포트하고 패션 MNIST 데이터를 다운로드한다. from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() keras.datasets.fashion_mnist 모듈 아래 load_data() 함수는 훈련 데이터의 입력과 타깃의 쌍, 테스트 데이터의 입력과 타깃 쌍을 반환해준다. 데이터의 크기를 확인해보면, print(train_input.shape, train_target.shape) 훈련 데이터는 60000개의 이미지로 크기는 28 x 28으로 3차원배열이고, 타깃도 60000개의..
[혼공머신] CHAPTER 06-3 주성분 분석 차원(dimension) : 머신러닝에서 10000개의 특성이 있다면 10000개의 차원이 있는 것 차원 축소(dimensionality reduction) 데이터를 가장 잘 나타내는 일부 특성을 선택해 데이터 크기를 줄이고 지도 학습 모델의 성능을 향상시키는 방법 또는 줄어든 차원에서 원본 차원으로 손실을 최대한 줄이면서 복원->특성의 개수를 줄인다 주성분 분석(principal component analysis, PCA) - 데이터에 있는 분산이 큰 방향을 찾는 것 - 분산: 데이터가 널리 퍼져있는 정도 -> 가장 많이 퍼져있는 쪽을 찾는 방법 >> 그 방향이 이 데이터를 표현하는데 가장 적합하기 때문이다 과일 사진 데이터를 다운로드해 넘파이 배열로 적재한다 !wget https://bit.ly/fr..
[혼공머신] CHAPTER 06-2 k-평균 이전에는 사과, 파인애플, 바나나 사진임을 이미 알고 있어서 각 과일의 평균을 구할 수 있었지만 실제 비지도 학습에서는 사진에 어떤 과일이 있는지 알지 못한다 이런 경우 평균값을 어떻게 구할 수 있을까? k-평균 군집 알고리즘(클러스터 중심 or 센트로이드) 무작위로 k개의 클러스터 중심을 정한다(랜덤하게) 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복한다. !wget https://bit.ly/fruits_300_data -O fruits_300.npy #데이터 다운로드 import numpy as np fruits = np.load('fruits_300...
[혼공머신] CHAPTER 06-1 군집 알고리즘 비지도 학습(unsupervised learning) 지도학습이 특정 입력에 대하여 올바른 정답이 있는 데이터가 주어지는 학습이라면, 비지도 학습은 특정 입력에 대해 정답이 없는 데이터가 주어지는 학습이다. 군집화(clustering) 과일 사진 데이터 준비하기 !wget https://bit.ly/fruits_300_data -O fruits_300.npy - 사과, 바나나, 파인애플 흑백 사진 import numpy as np import matplotlib.pyplot as plt fruits = np.load('fruits_300.npy') 넘파이에서 npy 파일을 로드하는 방법 print(fruits.shape) fruits 배열의 크기 확인 (300, 100, 100) 300개의 샘플이 있고,..
[혼공머신] CHAPTER 05-3 트리의 앙상블 정형 데이터 비정형 데이터 - 수치만으로 의미 파악이 쉬운 데이터 - 값이 의미를 파악하기 쉽고, 규칙적인 값으로 데이터가 들어가는 경우 ex) 엑셀, CSV, 데이터베이스 - 정해진 규칙이 없어서 값의 의미를 쉽게 파악하기 힘든 경우 ex) 텍스트 데이터, 사진, 영상, 음성 앙상블 학습(ensemble learning) : 정형 데이터를 다루는 데 가장 뛰어난 성과를 내는 알고리즘, 더 좋은 예측 결과를 만들기 위해 여러 개의 모델을 훈련하는 머신러닝 알고리즘 랜덤 포레스트(Random Forest) : 여러 개의 무작위 의사결정트리 기반의 앙상블 학습 방법 - 입력한 훈련 데이터에서 랜덤하게 샘플을 추출하여 훈련 데이터를 만든다 -> 샘플 중복 가능 - 부트스트랩 샘플(bootstrap sample..
[혼공머신] CHAPTER 05-2 교차검증과 그리드 서치 검증 세트(validation set): 테스트세트를 사용하지 않고 모델이 과대적합인지 과소적합인지 측정하기 위해 훈련세트를 또 나누어 만든 데이터 - 전체 데이터 중에서 60%를 훈련세트로, 20%를 테스트세트로, 20%를 검증세트로 만들어 사용한다. 1. 훈련세트에서 모델을 훈련하고 검증세트로 모델을 평가한다. 2. 테스트하고 싶은 매개변수를 바꿔가며 가장 좋은 모델을 골라 이 매개변수를 사용해 훈련세트와 검증세트를 합쳐 전체 훈련데이터에서 모델을 다시 훈련한다. 3. 테스트세트에서 최종점수를 평가한다 -> 실전에 투입했을 때 테스트세트의 점수와 비슷한 성능을 기대할 수 있을 것 판다스로 CSV데이터를 읽고 class열을 타깃으로 사용하고 나머지 alcohol, sugar, pH열은 특성배열에 저장한..

728x90