0. 오버피팅 문제 모델을 한정된 데이터로 학습시키다 보면 모델이 학습 데이터셋에 대한 손실함수가 과하게 작아지는 경우가 생길 수 있습니다. 이런 경우 우리는 모델이 과적합되었다고 합니다. 과적합된 모델은 평가 데이터셋이나 실제 데이터셋에 대해 점수가 낮을 수 있습니다. 과적합 문제를 해결하기 위한 방법으로는 아래의 방법들이 있습니다. 학습 데이터 양을 늘리기 배치 정규화(* Batch Normalization) 모델의 복잡도 줄이기 드롭아웃(* Drop-Out) 가중치 규제(* Weight Regularization) 이들 중 가중치 규제란 모델의 손실 함수값이 너무 작아지지 않도록 특정한 값을 추가하는 방법인데 오늘은 이에 대해 설명하겠습니다. 1. 규제 Regularization 가중치 규제는 모델..
[Deep daiv.]/머신러닝
1. 라소 (Lasso) 확장된 보스턴 주택가격 데이터셋에 라소를 적용해보겠습니다. from sklearn.linear_model import Lasso lasso = Lasso().fit(X_train, y_train) print("훈련 세트 점수 : {:.2f}".format(lasso.score(X_train, y_train))) print("테스트 세트 점수 : {:.2f}".format(lasso.score(X_test, y_test))) print("사용한 특성의 개수 : ", np.sum(lasso.coef_ != 0)) # lasso.coef_ != 0 을 하면 0이 아닌 값은 true, 0인 값은 false 인 np 1차원 배열이 생성 # bool 값의 1차원 배열의 sum 은 true ..
1. 리지 회귀 (Ridge Regression) 리지 (Ridge) 도 회귀를 위한 선형 모델이므로 최소적합법에서 사용한 것과 같은 예측 함수를 사용합니다. 하지만 리지 회귀에서의 가중치 (w) 선택은 훈련 데이터를 잘 예측하기 위해서 뿐만 아니라 추가 제약 조건을 만족시키기 위한 목적도 있습니다. (* 앞서 말한 과소적합과 과대적합 사이를 세밀하게 조정할 수 있을듯) 가중치의 절댓값을 가능한 한 작게 만드는 것입니다. 다시 말해서 w의 모든 원소가 0에 가깝게 되길 원합니다. 직관적으로 생각하면 이는 모든 특성이 출력에 주는 영향을 최소한으로 만듭니다(* 기울기를 작게 만듭니다). 이런 제약을 규제(Regularization) 라고 합니다. 규제란 과대적합이 되지 않도록 모델을 강제로 제한한다는 의미..
1. K-NN Regression k-최근접 이웃 알고리즘은 회귀 분석에도 쓰입니다. mglearn.plots.plot_knn_regression(n_neighbors = 1) 을 통해 그림으로 확인 할 수 있고, n_neighbors 의 값을 바꿔서도 확인할 수 있습니다. 여러개의 최근접 이웃을 사용할 땐 이웃 간의 평균이 예측값이 됩니다. 회귀를 위한 k-최근접 이웃 알고리즘은 KNeighborsRegression 에 구현되어 있고, 사용법은 비슷합니다. from sklearn.neighbors import KNeighborsRegressor X, y = mglearn.datasets.make_wave(n_samples=40) # 데이터 받기 # wave 데이터셋을 훈련 세트와 테스트 세트로 나눕니다..
1. 분류와 회귀 머신러닝(Machine Learning) 은 크게 두 종류로 나타낼 수 있습니다. 분류(Classification) 회귀(Regression) 분류 (Classification) 는 미리 정의된 가능성 있는 여러 클래스 레이블 중 하나를 예측하는 것입니다. 분류는 딱 두 개의 클래스로 분류하는 이진 분류와 셋 이상의 클래스로 분류하는 다중 분류로 나뉩니다. 이메일에서 스팸을 분류하는 것이 이진 분류 문제의 한 예입니다. 회귀 (Regression) 는 연속적인 숫자 또는 프로그래밍 용어로 말하면 부동소수점 (Floating Point) 수를 예측하는 것입니다. 어떤 사람의 교육 수준, 나이, 주거지를 바탕으로 연간 소득을 예측하는 것이 회귀 문제의 한 예입니다. 출력값이 연속성이 있는지..