일반 균등 분포 대신 로그 균등 분포(log uniform distribution)를 사용하면 충분히 많은 시도를 할 경우 [0.0001, 0.001] 범위에서 [10.0, 100.0]과 동일한 개수의 샘플을 뽑습니다. 어떻게 동작하는지 확인하기 위해 다음과 같이 이 분포에서 rvs(10) 메서드로 열 개의 샘플을 뽑아 보겠습니다.
>>> np.random.seed(1)
>>> param_range.rvs(10)
array([8.30145146e-02, 1.10222804e+01, 1.00184520e-04, 1.30715777e-02,
1.06485687e-03, 4.42965766e-04, 2.01289666e-03, 2.62376594e-02,
5.98924832e-02, 5.91176467e-01])
Note ≡ 분포 지정하기
RandomizedSearchCV에는 rvs() 메서드로 샘플링을 하는 어떤 분포도 사용할 수 있습니다. scipy.stats에서 제공하는 전체 분포는 다음 주소에서 확인할 수 있습니다.
https://docs.scipy.org/doc/scipy/reference/stats.html#probability-distributions
이전 절에서 GridSearchCV로 했던 것처럼 RandomizedSearchCV를 사용해서 SVM을 튜닝해 보죠.