목록ML (10)
끈기 있는 개발 공간
오늘날 대부분의 머신러닝 애플리케이션이 지도 학습 기반이지만, 사용할 수 있는 데이터는 대부분 레이블이 없습니다. 즉, 입력 특성 $X$는 있지만 레이블 $y$는 없습니다.8장에서는 가장 널리 사용되는 비지도 학습 방법인 차원 축소를 살펴봤습니다. 이 장에서는 몇 가지 비지도 학습과 알고리즘을 추가로 알아봅니다.군집등산하면서 이전에 본 적 없는 꽃을 발견했다고 가정해봅시다. 주위를 둘러보니 꽃이 몇 개 더 있고, 이들이 비슷해 보여 같은 종에 속한다는 걸 알았습니다. 어떤 종인지 알 수는 없지만 비슷해 보이는 꽃을 모으는 건 할 수 있습니다. 이를 군집이라고 합니다. 비슷한 샘플을 구별해 하나의 클러스터 또는 비슷한 샘플의 그룹으로 할당하는 작업입니다.위의 그림을 보시면 왼쪽 붓꽃 데이터셋은 각 샘플의 ..
머신러닝 문제에서 많은 경우 훈련 샘플 각각은 수백만 개의 특성을 가지고 있습니다. 이런 많은 특성은 훈련을 느리게 할 뿐만 아니라, 좋은 솔루션을 찾기 어렵게 만듭니다. 차원 축소를 이용하면 특성 수를 크게 줄여서 불가능한 문제를 가능한 범위로 변경할 수 있는 경우가 많습니다.3장에서 다루었던 MNIST 이미지를 생각해봅시다.이미지 경계에 있는 픽셀은 거의 항상 흰색(혹은 흰색에 가까운 색)이므로 중요한 정보가 아닙니다. 따라서, 이러한 픽셀을 제거한다고 해도 많은 정보를 잃지 않습니다. 또한 이미지 분류에서 인접한 두 픽셀은 종종 많이 연관되어 있으므로, 두 픽셀을 하나의 픽셀로 합치더라도 많은 정보를 잃지 않습니다. 여기서,이미지 경계에 있는 흰색 픽셀 제거인접한 두 픽셀 병합이 두 작업이 차원 축..
일련의 예측기로부터 예측을 수집하면 가장 좋은 모델 하나보다 더 좋은 예측을 얻을 수 있습니다. 일련의 예측기를 앙상블이라고 부르기 때문에 이를 앙상블 학습이라고 하며, 앙상블 학습 알고리즘을 앙상블 방법이라고 합니다. 6장에서 배운 결정 트리의 앙상블을 랜덤 포레스트라고 합니다. 머신러닝 경연 대회에서 우승하는 솔루션은 여러 가지 앙상블 방법을 사용한 경우가 많습니다.Voting정확도가 80%인 분류기 여러 개를 훈련시켰다고 가정합시다.더 좋은 분류기를 만드는 매우 간단한 방법은 각 분류기의 예측을 모아서 가장 많이 선택된 클래스를 예측하는 겁니다. 이렇게 다수결 투표로 정해지는 분류기를 직접 투표 분류기라고 합니다. 이 다수결 투표 분류기가 앙상블에 포함된 개별 분류기 중 가장 뛰어난 것보다도 정확도..
앞 장에서는 SVM에 대해 알아봤습니다. 이는 분류와 회귀, 다중 출력까지도 작업이 가능한 알고리즘이었습니다. 이 장에서 배울 결정 트리도 이와 동일한 작업을 수행하며, 복잡한 데이터셋도 학습할 수 있는 특징이 있습니다.결정 트리 학습과 시각화결정 트리가 어떻게 예측을 수행하는 모델을 만들어 알아보겠습니다.from sklearn.datasets import load_irisfrom sklearn.tree import DecisionTreeClassifieriris = load_iris()X = iris.data[:, 2:]y = iris.targettree_clf = DecisionTreeClassifier(max_depth=2)tree_clf.fit(X, y)이를 시각화하면 다음과 같습니다.예측하기어떻..
선형 SVM 분류SVM 분류기는 클래스 사이에 가장 폭이 넓은 도로를 찾습니다. 그래서 라지 마진 분류라고 합니다.도로 바깥쪽에 훈련 샘플을 더 추가해도 결정 경계에는 전혀 영향을 미치지 않습니다. 도로 경계에 위치한 샘플에 의해 전적으로 결정됩니다. 이런 샘플을 서포트 벡터라고 합니다. 이러한 점 때문에 SVM은 특성의 스케일에 민감합니다.소프트 마진 분류모든 샘플이 도로 바깥쪽에 올바르게 분류되어 있다면 이를 하드 마진 분류라고 합니다. 이는 다음과 같이 두 가지 문제점이 있습니다.데이터가 선형적으로 구분될 수 있어야 제대로 작동함이상치에 민감함이런 문제를 피하려면 좀 더 유연한 모델이 필요한데, 도로의 폭을 가능한 한 넓게 유지하는 것과 마진 오류 사이에 적절한 균형을 잡아야 합니다. 이를 소프트 ..
이전까지의 실습에서 우리는 머신러닝 모델 내부가 어떻게 작동하는지 몰라도 많은 일을 처리할 수 있었습니다. 하지만 어떻게 작동하는지 잘 이해하고 있으면 작업에 맞는 하이퍼파라미터를 빠르게 찾을 수 있습니다. 또한 디버깅이나 에러를 효율적으로 분석하는 데 도움이 됩니다.선형 회귀가장 간단한 모델 중 하나인 선형 회귀를 통해 모델 훈련의 작동 원리를 이해해봅시다. 이 모델을 훈련시키는 두 가지 방법은 다음과 같습니다.공식을 사용하여 훈련 세트에 가장 잘 맞는 모델 파라미터(훈련 세트에 대해 비용 함수를 최소화하는 모델 파라미터)를 해석적으로 계산경사 하강법을 사용하여 훈련 세트에 대해 비용 함수를 최소화선형 모델은 일반적으로 다음 식과 같이 입력 특성의 가중치 합과 편향이라는 상수를 더해 예측을 만듭니다.$..
💡이 글은 의 ‘CHAPTER3’ 을 공부하며 정리한 내용이 서술되어 있습니다.📌이 글에는 위 책의 범위에 대한 모든 내용이 서술되어 있지 않습니다. 단순히 제가 더 자세히 알아보고 싶은 내용만 서술되어 있으며, 이 또한 정확한 정보가 아니니 읽는 데 주의 바랍니다. MNIST이 데이터셋은 다음과 같은 특징이 있습니다. 고등학생과 미국 인구조사국 직원들이 손으로 쓴 70,000개의 작은 숫자 이미지를 모은 데이터셋각 이미지에 어떤 숫자를 나타내는지에 대한 레이블이 있음머신러닝 분야의 ‘Hello World’ 데이터를 다운로드해봅시다. 주피터 노트북에서 MNIST라는 제목의 파일을 만들어 실습을 진행하겠습니다. from sklearn.datasets import fetch_openmlmnist = f..
💡이 글은 의 ‘CHAPTER2’ 을 공부하며 정리한 내용이 서술되어 있습니다.📌이 글에는 위 책의 범위에 대한 모든 내용이 서술되어 있지 않습니다. 단순히 제가 더 자세히 알아보고 싶은 내용만 서술되어 있으며, 이 또한 정확한 정보가 아니니 읽는 데 주의 바랍니다. 머신러닝 알고리즘을 위한 데이터 준비실습에 들어가기 전에 예측 변수와 타깃값에 같은 변형을 적용하지 않기 위해 예측 변수와 레이블을 분리하겠습니다. housing = strat_train_set.drop("median_house_value", axis=1)housing_labels = strat_train_set["median_house_value"].copy() 데이터 정제앞서 total_bedrooms에 누락된 값이 있다는 것을 확..