데이터/머신러닝 (29) 썸네일형 리스트형 Chapter 06-3 주성분 분석 1. 차원과 차원 축소 특성 : 데이터가 가진 속성 머신러닝에서는 이런 특성을 차원이라고도 부른다. 차원을 줄일 수 있으면 저장 공간을 크게 절약가능 차원 축소 : 데이턱를 가장 잘 나타내는 일부 특성을 선택하여 데이터 크기를 줄이고 지도 학습 모델의 성능을 향상시킬 수 있는 방법 줄어든 차원에서 다시 원본 차원으로 손실을 최대한 줄이면서 복원할 수도 있다. 주성분 분석(PCA) : 대표적인 차원 축소 알고리즘 2. 주성분 분석 소개 주성분 분석은 데이터에 있는 분산이 큰 방향을 찾는 것으로 이해할 수 있다. 분산이 큰 방향을 데이터로 잘 표현하는 벡터로 생각할 수 있다. 이 벡터를 주성분이라 부른다. 주성분 벡터는 원본 데이터에 있는 어떤 방향이므로 주성분 벡터의 원소 개수는 원본 데이터셋에 있는 특성.. Chapter 06-2 k-평균 알고리즘 k-평균 군집 알고리즘은 평균값을 자동으로 찾아주는데, 이 평균값이 클러스터의 중심에 위치하기 때문에 클러스터 중심 또는 센트로이드라고 부른다. 1. k-평균 알고리즘 소개 k-평균 알고리즘의 작동 방식 무작위로 k개의 클러스터 중심을 정한다. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다. 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복한다. k-평균 알고리즘은 처음에는 랜덤하게 클러스터 중심을 선택하고 점차 가까운 샘플의 중심으로 이동하는 간단한 알고리즘 2. KMeans 클래스 import numpy as np fruits = np.load('fruits_300.npy') #(샘플 개수, 너비, 높.. Chapter 06-1 군집 알고리즘 1. 타깃을 모르는 비지도 학습 비지도 학습 : 타깃이 없을 때 사용하는 머신러닝 알고리즘 2. 과일 사진 데이터 준비하기 #주피터 노트북이 아닌 코랩에서만 이 코드로 다운로드 가능 #주피터 노트북일 경우 직접 다운로드 해야 함 !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') print(fruits.shape) 이 배열의 첫 번째 차원은 샘플의 개수를 나타내고, 두 번째 차원은 이미지 높이, 세 번째 차원은 이미지 너비입니다. 첫 번째 이미지의 첫 번째 행을 출력하기 위해 처음 2개.. Chapter 05-3 트리의 앙상블 1. 정형 데이터와 비정형 데이터 정형 데이터 : 어떤 구조로 되어 있다. ex) CSV, 데이터베이스, 엑셀 비정형 데이터 : 데이터베이스나 엑셀로 표현하기 어려운 것들 → 신경망 알고리즘 사용 앙상블 학습 : 정형 데이터를 다루는 데 가장 뛰어난 성과를 내는 알고리즘, 대부분 결정 트리를 기반으로 만들어짐 2. 랜덤 포레스트 랜덤 포레스트 : 앙상블 학습의 대표 주자 중 하나, 안정적인 성능. 결정 트리를 랜덤하게 만들어 결정 트리의 숲을 만든다. 그리고 각 결정 트리의 예측을 사용해 최종 예측을 만든다. 먼저 랜덤 포레스트는 각 트리를 훈련하기 위한 데이터를 랜덤하게 만드는데 데이터를 만들 때 우리가 입력한 훈련 데이터에서 랜덤하게 샘플을 추출하여 훈련 데이터를 만든다. 이때 한 샘플이 중복되어 추.. Chapter 05-2 교차검증과 그리드 서치 테스트 세트를 사용해 자꾸 성능을 확인하다 보면 점점 테스트 세트에 맞추게 되므로 가능한 한 테스트 세트를 사용하지 말아야 한다. 그렇다면 max_depth 매개변수를 사용한 하이퍼파라미터 튜닝을 어떻게 할 수 있는가 1. 검증 세트 테스트 세트를 사용하지 않으면 모델이 과대적합인지 과소적합인지 판단하기 어렵다. 테스트 세트를 사용하지 않고 이를 측정하는 간단한 방법은 훈련 세트를 또 나누는 것 → 이 데이터를 검증 세트라고 부름 훈련 세트에서 모델을 훈련하고 검증 세트로 모델을 평가 이런 식으로 테스트하고 싶은 매개변수를 바꿔가면 가장 좋은 모델을 고르고 그다음 이 매개변수를 사용해 훈련 세트와 검증 세트를 합쳐 전체 훈련 데이터에서 모델을 다시 훈련, 그리고 마지막에 테스트 세트에서 최종 점수를 평가.. Chapter 05-1 결정 트리 1. 로지스틱 회귀로 와인 분류하기 데이터셋을 불러오고, 네 번째 열은 0=레드, 1=화이트와인 import pandas as pd wine = pd.read_csv('https://bit.ly/wine_csv_data') wine.head() info()메서드를 통해 데이터프레임의 각 열의 데이터 타입과 누락된 데이터가 있는지 확인하는 데 유용 wine.info() describe()메서드는 최소, 최대, 평균값 등 간략한 통계 출력 wine.describe() 알코올 도수와 당도, pH 값의 스케일이 다르므로 판다스 데이터프레임을 넘파이 배열로 바꾸고 훈련 세트와 테스트 세트로 나눈 후 StandardScaler클래스를 사용해 특성을 표준화 data = wine[['alcohol', 'sugar', .. Chapter 04-2 확률적 경사 하강법 1. 점진적인 학습 매일 추가되는 새로운 데이터를 활용해 모델을 훈련할 수 있지만, 단점은 시간이 지날수록 데이터가 늘어나 서버도 늘려야 할 것 새로운 데이터를 추가할 때 이전 데이터를 버림으로써 훈련 데이터 크기를 일정하게 유지할 수도 있겠지만 이렇게 하면 데이터셋의 크기가 너무 커지지 않을 수 있다. 훈련한 모델을 버리지 않고 새로운 데이터에 대해서만 조금씩 더 훈련하는 방식을 점진적 학습 또는 온라인 학습이라고 부릅니다 대표적인 점진적 학습 알고리즘은 확률적 경사 하강법이다. 확률적 경사 하강법에서 확률적이란 말은 '무작위하게' 혹은 '랜덤하게'의 기술적인 표현이다. 경사 하강법은 가장 가파른 경사를 따라 원하는 지점에 도달하는 것이 목표인데, 한번에 걸음이 너무 크면 경사를 따라 내려가지 못하고 .. Chapter 04-1 로지스틱 회귀 1. 럭키백의 확률 럭키백에 들어갈 수 있는 생선은 7개 7개 생선에 대한 확률 출력해야 함 k-최근접 이웃은 주변 이웃을 찾아주니까 이웃의 클래스 비율을 확률이라고 출력한다면? (아이디어) 샘플 주위에 가장 가까운 이웃 샘플 k개를 표시한다면 이웃한샘플의 클래스를 확률로 삼는다면 확률 계산 가능 사이킷런의 k-최근접 이웃 분류기도 이와 동일한 방식으로 클래스 확률을 계산하여 제공한다 데이터 준비하기 csv파일을 읽어들인 다음 어떤 종류의 생선이 있는지 Species 열에서 고유한 값을 추출 → unique()함수 import pandas as pd fish=pd.read_csv('https://bit.ly/fish_csv_data') fish.head() print(pd.unique(fish['Spec.. 이전 1 2 3 4 다음