본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.

공부하는 습관을 들이자43

Hands-on ML : 5.3 SVM 회귀 앞서 포스팅에 이어 SVM 알고리즘은 다목적으로 사용할 수 있다. SVM을 분류 뿐만 아니라 선형/비선형 회귀에도 사용할 수 있다. SVM을 분류가 아니라 회귀에 적용하는 방법은 목표를 반대로 하는 것이다. 일정한 마진 오류 안에서 두 클래스 간의 도로 폭이 가능한 한 최대가 되도록 하는 대신 SVM 회귀는 제한된 마진 오류(즉, 도로 밖의 샘플) 안에서 도로 안에 가능한 한 많은 샘플이 들어가도록 학습한다. 도로의 폭은 하이퍼파라미터 E로 조절한다. from sklearn.svm import LinearSVR svm_reg=LinearSVR(epsilon=1.5) svm_reg.fit(X,y) 비선형 회귀 작업을 처리하려면 커널 SVM 모델을 사용한다. 임의의 2차 방정식 형태의 훈련 세트에 2차 다항.. 2022. 6. 2.
Hands-on ML : 5.2 비선형 SVM 분류 https://honeyofdata.tistory.com/73 에 이어 포스팅을 하려 한다. 전에는 선형 SVM 분류를 살펴봤으면 이번에는 비선형 SVM분류를 살펴보려고 한다. 좌측이 선형 , 우측이 비선형 SVM 분류이다. 비선형 데이터셋을 다루는 한 가지 방법은 다항 특성과 같은 특성을 더 추가하는 것이다.9 from sklearn.datasets import make_moons from sklearn.pipeline import Pipeline from sklearn.preprocessing import PolynomialFeatures X,y=make_moons(n_samples=100,noise=0.15) polynomial_svm_clf=Pipeline([ ('poly_features',Pol.. 2022. 6. 2.
Hands-on ML : 5.1 선형 SVM 분류 SVM이란? SVM은 서포터 벡터 머신으로 매우 강력하고 선형이나 비선형 분류, 회귀, 이상치 탐색에도 사용할 수 있는 다목적 머신러닝 모델이다. SVM은 복잡한 분류 문제에 잘 들어맞으며 작거나 중간 크기의 데이셋에 적합하다. 5.1 선형 SVM 분류 SVM 분류기를 클래스 사이에 가장 폭이 넓은 도로를 찾는 것으로 생각할 수 있다. 도로 바깥쪽에 훈련 샘플을 더 추가해도 결정 경계에는 전혀 영향을 미치지 않는다. 도로 경계에 위치한 샘플에 의해 전적으로 결정된다. 이런 샘플을 서포트 벡터라고 한다. 5.1.1 소프트 마진 분류 모든 샘플이 도로 바깥쪽에 올바르게 분류되어 있다면 이를 하드 마진 분류(hard margin classification)라고 한다. 하드 마진 분류에는 두 가지 문제점이 있다.. 2022. 5. 26.
Hands-on ML : 4. 6 로지스틱 회귀 4.6 로지스틱 회귀 로지스틱 회귀(logistic regression)는 샘플이 특정 클래스에 속할 확률을 추정하는 데 널리 사용된다. 추정 확률이 50% 이상이면 모델은 그 샘플이 해당 클래스에 속한다고 예측, 아니면 클래스에 속하지 않는다고 예측한다. -> 이진 분류기이다. 4.6.1 확률 추정 로지스틱 회귀 모델은 입력 특성의 가중치 합에 편향을 더해 계산한다. 이때 선형 회귀처럼 바로 결과를 출력하지 않고, 결과값의 로지스틱(logistic)을 출력한다. 로지스틱은 0 과 1 사이의 값을 출력하는 시그모이드 함수(sigmoid function)이다. 이 함수를 거쳐나온 확률값으로 최종적으로 주어진 데이터가 어느 클래스에 속할지에 대해 결정하게 된다. 보통 확률값이 0.5 이상이면 1 (양성 클래.. 2022. 5. 26.
Hands-on ML : 4. 5 릿지(Ridge),라쏘(Lasso),엘라스틱 넷(Elastic-net) 모델 훈련 4.5 규제가 있는 선형 모델 과대적합을 감소시키는 좋은 방법으로 다항회귀모델의 다항식 차수를 감소시키는 등 자유도를 줄이는 방법이다. 4.5.1 릿지 회귀 릿지 회귀(Ridge Regression)은 능형회귀로 불리며 선형회귀에 규제가 추가된 것이다. 이 규제는 비용함수에 추가되는 것으로 테스트 세트에서 성능을 평가하거나 예측할 때 적용되지는 않는다. 위 식에서 i가 1부터 시작하는 것은 θ0는 규제되지 않는 것을 의미 w를 가중치 벡터(θ1~θn)라고 정의 -> 규제항은 ½(∥ w ∥2)^2와 같다. 여기서 ∥ w ∥2가 가중치 벡터의 ℓ2노름이다. 이를 경사하강법에 적용하려면 MSE 그라디언트 벡터에 αw를 더하면 된다. 선형회귀와 마찬가지로 릿지 회귀를 계산하기 위해 정규방정식과 경사하강법을 이용.. 2022. 5. 20.
Hands-on ML : 4. 3 다항회귀 및 4.4 학습곡선 4.3 다항회귀 import numpy as np import matplotlib.pyplot as plt m = 100 X = 6 * np.random.rand(m,1) - 3 y = 0.5 * X**2 + X + 2 + np.random.randn(m,1) # 약간의 노이즈 포함 plt.plot(X,y,"b.") plt.show() 사이킷런의 PolynomialFeatures를 사용하여 훈련 데이터를 변환 from sklearn.preprocessing import PolynomialFeatures poly_features = PolynomialFeatures(degree=2, include_bias=False) X_poly = poly_features.fit_transform(X) print(X[0.. 2022. 5. 19.