>>> weights, params = [], []
    >>> for c in np.arange(-5, 5):
    ...     lr = LogisticRegression(C=10.**c,
    ...                             multi_class='ovr')
    ...     lr.fit(X_train_std, y_train)
    ...     weights.append(lr.coef_[1])
    ...     params.append(10.**c)
    >>> weights = np.array(weights)
    >>> plt.plot(params, weights[:, 0],
    ...          label='Petal length')
    >>> plt.plot(params, weights[:, 1], linestyle='--',
    ...          label='Petal width')
    >>> plt.ylabel('Weight coefficient')
    >>> plt.xlabel('C')
    >>> plt.legend(loc='upper left')
    >>> plt.xscale('log')
    >>> plt.show()

    이 코드를 실행하면 역 규제 매개변수 C의 값을 바꾸면서 열 개의 로지스틱 회귀 모델을 훈련합니다. 시연을 위해 모든 분류기에서 클래스 1의 가중치 값만 사용합니다(여기에서는 데이터셋에 있는 두 번째 클래스인 Iris-versicolor). 다중 분류에는 OvR 기법을 사용합니다.15

    결과 그래프에서 볼 수 있듯이 C 매개변수가 감소하면 가중치 절댓값이 줄어듭니다. 즉, 규제 강도가 증가합니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.