머신러닝공부 7

6-3.p318~주성분 분석

구글 코랩 사용해서 실습했습니다~! 차원과 차원축소 데이터가 가진 속성을 특성이라 부른다. 과일사진의 경우 10,000개의 픽셀이 있기 때문에 10,000개의 특성이 있는 셈이다. 이런 특성을 차원이라고 부른다. 이 차원을 줄일 수 있다면 저장공간을 크게 절약할 수 있을 것이다. 비지도 학습 중 하나인 차원축소 알고리즘 대표적인 차원축소 알고리즘인 주성분분석 = PCA 기술적인 이유로 주성분은 원본 특성의 개수와 샘플 개수 중 작은 값 만큼 찾을 수 있다. 일반적으로 비지도 학습은 대량의 데이터에서 수행하기 때문에 원본 특성의 개수만큼 찾을 수 있다고 말한다. 앞 장과 동일하게 사진을 불러온다. !wget https://bit.ly/fruits_300_data -O fruits_300.npy import..

6-2.p303~ k-평균

구글 코랩을 사용해서 실습 진행했습니다 ! 1장에서는 사과, 파인애플, 바나나에 있는 각 픽셀의 평균값을 구해서 가장 가까운 사진을 골랐다. 이 경우에는 사과, 파인애플, 바나나 사진임을 미리 알고 있었기 때문에 각 과일의 평균을 구할 수 있다. 하지만 진짜 비지도 학습에서는 사진에 어떤 과일이 들어있는지 알지 못한다. 이런 경우 평균값은 k-평균 군집 알고리즘이 평균값을 자동으로 찾아준다. 평균값이 클러스터의 중심에 위치하기 때문에 클러스터 중심 or 센트로이드라고 부른다. k-평균 알고리즘 작동방식 무작위로 k개의 클러스터 중심을 정한다. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다. 클러스터 중심에 변화가..

6-1.p286~ 군집 알고리즘

구글 코랩으로 작성했습니다! 과일 사진 데이터를 준비한다. !wget https://bit.ly/fruits_300_data -O fruits_300.npy +) 코랩의 코드 셀에서 "!"문자로 시작하면 코랩은 이후 명령을 파이썬 코드가 아니라 리눅스 셸 명령으로 이해한다. wget명령은 원격주소에서 데이터를 다운로드하여 저장한다. 그 다음 이 파일에서 데이터를 로드한다. import numpy as np import matplotlib.pyplot as plt fruits = np.load('fruits_300.npy') print(fruits.shape) 이 배열의 첫 번째 차원은 샘플의 개수, 두번째는 이미지 높이, 세번째는 이미지 너비이다. print(fruits[0,0,:]) 첫번째 행에 있는 ..

5-3.p263~ 트리의 앙상블

정형데이터를 다루는데 가장 뛰어난 성과를 내는 알고리즘 = 앙상블 학습 이 알고리즘은 대부분 결정 트리를 기반으로 만들어져 있다. 랜덤 포레스트 랜덤포레스트는 앙상블 학습의 대표 주자 중 하나로 안정저인 성능 덕분에 널리 사용되고 있다. ->결정트리를 랜덤하게 만들어 결정트리의 숲을 만든다. 그리고 각 결정 트리의 예측을 사용해 최종 예측을 만든다. 랜덤 포레스트는 각 트리를 훈련하기 위한 데이터를 랜덤하게 만드는데, 우리가 입력한 훈련 데이터에서 랜덤하게 샘플을 추출하여 훈련데이터를 만든다. 이때 한 샘플이 중복되어 추출될 수도 있다. 이렇게 만들어진 샘플 = 부트스트랩 샘플 사이킷런의 랜덤 포레스트는 기본적으로 100개의 결정트리를 전체 특석 개수의 제곱근만큼의 특성을 선택하며 훈련. 그 다음 분류일..

5-2.p242~ 교차 검증과 그리드 서치

테스트 세트를 사용해 자꾸 성능을 확인하다 보면 모델을 점점 테스트 세트에 맞추게 된다. 테스트 세트를 사용하지 않으려면 모델이 과대적합인지 과소적합인지 판단하기 어렵다. 테스트 세트를 사용하지 않고 이를 측정하는 간단한 방법은 훈련세트를 또 나누는 것이다. 이 데이터를 검증세트라고 한다. import pandas as pd wine = pd.read_csv('https://bit.ly/wine_csv_data') data = wine[['alcohol', 'sugar', 'pH']].to_numpy() target = wine['class'].to_numpy() from sklearn.model_selection import train_test_split train_input, test_input, t..

03-3p150~특성 공학과 규제

여전히 훈련 세트보다 테스트 세트의 점수가 높은 점이 문제 -> 선형회귀는 특성이 많을 수록 엄청난 효과를 내 기 때문에 받은 데이터를 모두 사용해야합니다. 여러개의 특성을 사용한 선형회귀 = 다중회귀 1개의 특성을 사용하면 직선을 학습하고, 2개의 특성을 사용하면 평면을 학습합니다. 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업 = 특성공학 import pandas as pd df = pd.read_csv('http://bit.ly/perch_csv_data') perch_full = df.to_numpy() print(perch_full) import numpy as np perch_weight = np.array([5.9, 32.0, 40.0, 51.5, 70.0, 100.0, 78.0, 80...

01-1p.26~03-2p.149

혼자 공부하는 머신러닝+딥러닝 교재를 구매해서 실습해보며 공부했습니다! 먼저, 생선 분류 문제를 위해 데이터셋을 정의합니다. 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, 50..