딥러닝 & 머신러닝/혼자 공부하는 머신러닝 딥러닝12 6-2. k-평균 전 시간에 과일 이미지들에서 어떤 과일이 존재하는지 이미 안 후에 각 픽셀의 평균값을 구해서 가장 가까운 사진을 골랐다. 하지만, 실제 데이터에서는 과일이 어떤 종류인지도 클러스터(군집 알고리즘으로 모은 샘플)가 몇 개인지도 알 수 없다. 따라서, k-평균을 이용해 각 과일 이미지를 종류별로 분류할 수 있는 알고리즘을 이용하려 한다. k-평균 작동 방식) 1. 무작위로 k개의 클러스터 중심을 정한다 2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 샘플들을 해당 클러스터의 샘플로 지정한다 3. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다 4. 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복한다 1번의 최적의 k를 찾기 위해서 자동으로 이너셔를 계산해주는 함수를 이용하면 된다. →.. 2023. 2. 18. 5-2. 교차 검증과 그리드 서치 교차 검증과 그리드 서치 지금까지 훈련 세트에서 모델을 훈련하고 테스트 세트에서 모델을 평가했다. 하지만 그렇게 되면 테스트 세트를 계속 사용할수록 성능이 테스트 세트에 맞춰져 높아진다. 그렇기 때문에 일반화 성능을 올바르게 예측하기 위해 테스트 세트를 이용하면 안된다. 테스트 세트 대신에 검증 세트를 이용하면 된다. 검증 세트는 훈련 세트에서 다시 쪼개져 사용되는 데이터이다. 또한, 교차 검증을 통해 검증 세트가 적어 검증 점수가 들쭉날쭉한 걸 막을 수 있다. (교차 검증은 검증 세트를 떼어 내어 평가하는 과정을 여러 번 반복한다.) 그리고 이러한 교차 검증을 사용해 다양한 파라미터를 탐색할 수 있다. 소스 코드 import pandas as pd from sklearn.model_selection i.. 2023. 2. 17. 6-1. 군집 알고리즘 군집 알고리즘 이번에는 타깃(정답)을 모르는 사진을 종류별로 분류하려 한다. 이렇게 정답이 없을 때 사용하는 머신러닝 알고리즘을 '비지도 학습'이라 한다. 타깃값이 없을 때 데이터에 있는 패턴을 찾거나 데이터 구조를 파악해야하는게 핵심이다. 따라서, 흑백 과일 사진에 있는 픽셀값을 통해 비슷한 과일 샘플 그룹끼리 모아보자(군집 활용) 소스 코드 !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') # 샘플 개수: 300개 # 이미지 크기(배열의 크기): 100 * 100 print(fru.. 2023. 2. 17. 5-1. 결정 트리 이번에는 알코올 도수, 당도, pH값을 이용해 레드 와인과 화이트 와인을 분류하려 한다. 전 시간에 배웠던 로지스틱 회귀 분류를 이용해 레드 와인과 화이트 와인을 분류할 수 있다. 하지만, 로지스틱 회귀 분류는 정확도가 낮고 로지스틱 회귀가 학습한 계수와 절편(가중치)을 이해하기 어렵다는 단점이 있다. 따라서 이번에는 결정 트리를 이용해 분류를 진행해보고자 한다. 결정 트리 그래서 이러한 문제를 해결하기 위해 결정 트리를 이용하고자 한다. 결정 트리는 데이터를 잘 나눌 수 있는 질문을 찾는다면 계속 질문을 추가하여 분류 정확도를 높일 수 있다. 결정 트리가 예측하는 방식은 간단하다. 리프 노드(마지막 노드)에서 가장 많은 클래스가 예측 클래스가 된다. 로지스틱 회귀와 다른 점은 특성값의 스케일을 표준 점.. 2023. 2. 15. 4-2. 확률적 경사 하강법 확률적 경사 하강법 확률적 경사 하강법을 사용해 점진적으로 학습하는 로지스틱 회귀 모델을 훈련할 수 있다. 확률적 경사 하강법은 손실 함수라는 산을 정의하고 가장 가파른 경사를 따라 조금씩 내려오는 알고리즘이다. 즉, 이전에 훈련한 모델을 버리지 않고 새로운 데이터에 대해서만 조금씩 더 훈련하는 방식이다. 이 알고리즘을 사용하는 이유는 데이터를 한 번에 모든 컴퓨터 메모리에 읽힐 수 없어 데이터를 조금씩 사용해 점진적으로 학습하는 방법이 필요하기 때문이다. 소스 코드 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.. 2023. 2. 14. 4-1. 로지스틱 회귀 로지스틱 회귀 이번에는 럭키백에 담긴 생선의 확률을 알려주는 분류 모델을 만들고자 한다. 여기서 분류 모델은 예측뿐만 아니라 예측의 근거가 되는 확률을 출력할 수 있다. 분류 모델로 k-최근접 이웃 모델을 이용할 수 있지만, 이웃한 샘플의 클래스 비율이기 때문에 정해진 비율로만 출력한다는 단점이 있다. 그래서 대표적인 분류 알고리즘인 로지스틱 회귀를 사용하고자 한다. (로지스틱 회귀는 회귀 모델이 아니라 분류 모델임에 유의하자) 로지스틱 회귀는 선형 방정식을 이용하고 0~1 사이의 값을 도출하기 때문에 0~100% 사이의 확률로 이해할 수 있다. 로지스틱 회귀는 이진 분류일 경우, 하나의 선형 방정식을 이용함 → 시그모이드 함수 이용 로지스틱 회귀는 다중 분류일 경우, 클래스 개수만큼 방정식을 훈련시키고.. 2023. 2. 14. 이전 1 2 다음