[Deep daiv.]/머신러닝

0. 오버피팅 문제 모델을 한정된 데이터로 학습시키다 보면 모델이 학습 데이터셋에 대한 손실함수가 과하게 작아지는 경우가 생길 수 있습니다. 이런 경우 우리는 모델이 과적합되었다고 합니다. 과적합된 모델은 평가 데이터셋이나 실제 데이터셋에 대해 점수가 낮을 수 있습니다. 과적합 문제를 해결하기 위한 방법으로는 아래의 방법들이 있습니다. 학습 데이터 양을 늘리기 배치 정규화(* Batch Normalization) 모델의 복잡도 줄이기 드롭아웃(* Drop-Out) 가중치 규제(* Weight Regularization) 이들 중 가중치 규제란 모델의 손실 함수값이 너무 작아지지 않도록 특정한 값을 추가하는 방법인데 오늘은 이에 대해 설명하겠습니다. 1. 규제 Regularization 가중치 규제는 모델..
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) 수를 예측하는 것입니다. 어떤 사람의 교육 수준, 나이, 주거지를 바탕으로 연간 소득을 예측하는 것이 회귀 문제의 한 예입니다. 출력값이 연속성이 있는지..
건대다니는 컴공생
'[Deep daiv.]/머신러닝' 카테고리의 글 목록