Study/혼자 공부하는 머신러닝 + 딥러닝8 [혼자 공부하는 머신러닝 + 딥러닝] 주성분 분석 차원과 차원 축소 머신러닝에서는 데이터가 가진 속성을 차원(Dimension)이라고 부릅니다.예로 들어 사진의 픽셀이 10,000개면 현재 이 사진은 10,000개의 차원이라고 할 수 있습니다.더보기여기서 잠깐!1차원 배열, 즉 벡터일 경우에는 원소의 개수가 차원이 됩니다.2차원 배열일 때는 행과 열이 차원이 됩니다.즉, 다차원 배열에서 차원은 배열은 축 개수가 됩니다.만약 이 차원을 줄일 수 있다면, 저장 공간은 크게 절약할 수 있을 것입니다.이를 위해 비지도 학습 작업 중 하나인 차원 축소(Dimensionality Reduction) 알고리즘을 다루어 보겠습니다.차원 축소는 데이터를 가장 잘 나타내는 일부 특성을 선택하여 데이터 크기도 줄이고 지도 학습 모델의 성능도 향상시킵니다.또한 손실을 최대한.. 2024. 12. 2. [혼자 공부하는 머신러닝 + 딥러닝] k-평균(K-Means) 전 게시글에 이어서 사과, 파인애플, 바나나 사진을 가지고 하겠습니다.만약, 비지도 학습에서 각 과일의 평균을 구하라고 하면 구할 수 있을까요?정답은 "할 수 없습니다" 입니다.왜냐하면 어떤 사진에 어떤 과일이 있을지 모르기 때문입니다.그렇다면 어떻게 평균값을 구할 수 있을까요? k-평균(K-Means) k-평균(K-Means) 군집 알고리즘은 평균값을 자동으로 찾아줍니다.이 평균값이 클러스터 중심에 위치하기 때문에 클러스터 중심(cluster center) 또는 센트로이드(centroid)라고 부릅니다. k-평균 알고리즘의 작동 방식은 다음과 같습니다. 1. 무작위로 k개의 클러스터 중심을 정한다.2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다.3. 클러스터에 .. 2024. 11. 27. [혼자 공부하는 머신러닝 + 딥러닝] 군집 알고리즘 만약 타깃을 모르는 사진을 종류별로 분류하려 한다면 어떤 머신러닝 알고리즘을 써야 할까요?바로 비지도 학습(Unsupervised learning)입니다. 한번 실습해보면서 알아보겠습니다. 데이터 준비 전과는 다르게 이번에는 과일 데이터를 사용해보겠습니다.과일 데이터는 사과, 바나나, 파인애플을 담고 있는 흑백 사진입니다. 이 배열의 첫 번째 차원(300)은 샘플의 개수, 두 번째 차원(100)은 이미지 높이, 세 번째 차원(100)은 이미지 너비입니다.즉, 이미지 크기는 100 x 100이고 각 픽셀은 넘파이 배열의 원소 하나에 대응합니다.이는 곧, 배열의 크기가 100 x 100이라는 걸 알 수 있습니다. 한번 첫 번째 이미지의 첫 번째 행을 출력해보겠습니다. 이 넘파이 배열은 흑백 사진을.. 2024. 11. 13. [혼자 공부하는 머신러닝 + 딥러닝] 트리의 앙상블 지금까지 다루었던 데이터를 돌아보면 전부 다 정형 데이터(Structured data)였습니다.그리고 지금까지 배운 머신러닝 알고리즘은 정형 데이터에 잘 맞는 알고리즘이였습니다.그 중에 사이킷런에서 제공하는 정형 데이터의 끝판왕인 앙상블 학습 알고리즘을 알아보겠습니다. 랜덤 포레스트(Random Forest) 랜덤 포레스트는 앙상블 학습의 대표 주자 중 하나로 안정적인 성능 덕분에 널리 사용되고 있습니다.앙상블 학습을 적용할 땐 가장 먼저 랜덤 포레스트를 시도해 보길 권합니다. 이름처럼 랜덤 포레스트는 결정 트리를 랜덤하게 만들어 결정 트리(나무)의 숲을 만드는 것입니다.그리고 각 결정 트리의 예측을 사용해 최종 예측을 만듭니다. 그럼 어떻게 숲을 구성하는지 관찰해보겠습니다.예를 들어 1,000개 .. 2024. 11. 11. [혼자 공부하는 머신러닝 + 딥러닝] 교차 검증과 그리드 서치 테스트 세트로 일반화 성능을 올바르게 예측하려면 가능한 한 테스트 세트를 사용하지 말아야 합니다.그리고 일반화 성능을 가늠해보려면 테스트 세트에서 얻은 점수를 통해 확인할 수 있습니다. 어떻게 하면 두 가지를 지키면서 최적의 성능을 내는 하이퍼파라미터를 찾을 수 있을까요? 검증 세트(Validation Set) 테스트 세트를 사용하지 않으면 모델이 과대적합인지 과소적합인지 판단하기 어렵습니다.테스트 세트를 사용하지 않고 이를 측정하는 간단한 방법은 훈련 세트를 나누는겁니다.이를 바로 검증 세트(Validation Set)이라고 부릅니다. 방법과 비율은 다음과 같습니다.전체 데이터 중 20%를 테스트 세트로 만들고 나머지 80%를 훈련 세트로 만듭니다.그리고 훈련 세트 중에서 다시 20%를 떼어 내어 .. 2024. 11. 7. [혼자 공부하는 머신러닝 + 딥러닝] 결정 트리 만약 캔으로 된 와인이 있다고 가정을 해봅시다.이 와인은 레드 와인, 화이트 와인 두 가지 종류가 있습니다.하지만 종류를 구별할 수 있는 표시가 없다고 가정 했을 때 우리는 어떻게 분류를 할 수 있을까요? 로지스틱 회귀로 와인 분류하기우선 우리가 배웠던 로지스틱 회귀로 와인을 분류해봅시다. 와인 데이터셋을 보자면 열은 알코올 도수(alcohol), 당도(sugar), pH, class(타깃값, 0 : 레드와인, 1 : 화이트와인)으로 이루어져 있습니다. 추가적으로 info() 메서드와 describe() 메서드를 사용하여 데이터의 정보를 좀 더 살펴보겠습니다. 결측값은 없고, 통계값을 살펴보면 각 열의 스케일이 다른 것을 알 수 있습니다. 그렇기 때문에 훈련 세트와 테스트 세트로 나눈 후, St.. 2024. 10. 31. [혼자 공부하는 머신러닝 + 딥러닝] 확률적 경사 하강법 만약, 훈련 데이터가 한 번에 준비되는 것이 아니고 조금씩 전달된다면 어떡해야 할까요?데이터가 쌓일 때까지 기다려야 할까요?또는 기존의 훈련 데이터에 새로운 데이터를 추가하여 모델을 매일매일 다시 훈련할까요?아니면 새로운 데이터를 추가할 때 이전 데이터를 버림으로써 훈련 데이터 크기를 일정하게 유지시키며 모델을 훈련 시킬까요? 이런 경우에는 앞서 훈련한 모델을 버리지 않고 새로운 데이터에 대해서만 조금씩 더 훈련하는 방법인 점진적 학습 또는 온라인 학습을 사용하는게 좋습니다. 그 중 대표적인 점진적 학습 알고리즘인 확률적 경사 하강법을 배워볼 것입니다. 확률적 경사 하강법이란?확률적이라는 말은 '무작위하게' 혹은 '랜덤하게'의 기술적인 표현입니다.경사는 '기울기'를 의미하고 하강법은 '내려가는 방법.. 2024. 10. 28. [혼자 공부하는 머신러닝 + 딥러닝] 로지스틱 회귀(Logistic regression) 오늘은 로지스틱 회귀에 대해서 알아보자. 생선이 랜덤으로 들어있는 럭키백이라는 가방이 있다고 가정하자.이 럭키백에 들어갈 수 있는 생선은 7마리까지이다.이 럭키백에 들어간 생선의 크기, 무게 등이 주어졌을 때 7개 생선에 대한 확률을 출력해야 한다.(정확히는 길이, 높이, 두께, 대각선 길이, 무게가 주어진다) 이를 위해 로지스틱 회귀를 사용할 것이다. 사용하기 전에 로지스틱 회귀에 대해서 알아보자!로지스틱 회귀는 이름은 회귀이지만 분류 모델이다.Z = a *(Weight) + b * (Length) + c * (Diagonal) + d * (Height) + e * (width) + f여기서 a, b, c, d, e는 가중치 혹은 계수이다. 그리고 z는 어떤 값도 가능하다.하지만 확률이 되려면 z는 0.. 2024. 10. 22. 이전 1 다음