주요 콘텐츠

optimizableVariable

bayesopt 또는 기타 최적화 함수에 대한 변수 설명

설명

최적화 함수에 대한 변수를 만듭니다.

생성

설명

variable = optimizableVariable(Name,Range)는 지정된 이름과 값 범위를 사용하여 변수를 만듭니다.

예제

variable = optimizableVariable(Name,Range,Name,Value)는 이름-값 인수를 사용하여 속성을 설정합니다. 예를 들어 optimizableVariable('xvar',[1 1000],'Type','integer')는 1에서 1000까지의 정수 변수를 만듭니다. 여러 개의 이름-값 인수를 지정할 수 있습니다. 각 속성 이름을 따옴표로 묶습니다.

예제

속성

모두 확장

변수 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이름은 고유해야 합니다. 즉, 최적화의 다른 변수의 이름과 달라야 합니다.

참고

  • 다음과 같이 optimizableVariable과 관련된 이름이 2개 있습니다.

    • MATLAB® 작업 공간 변수 이름

    • 최적화의 변수 이름

    예를 들면 다음과 같습니다.

    xvar = optimizableVariable('spacevar',[1,100]);

    xvar은 MATLAB 작업 공간 변수이고, 'spacevar'은 최적화의 변수입니다.

    이러한 이름은 다음과 같이 사용하십시오.

    • bayesopt에 전달하는 변수로 구성된 벡터의 요소로 xvar을 사용합니다. 예를 들면 다음과 같습니다.

      results = bayesopt(fun,[xvar,tvar])
    • 최적화의 변수 이름으로 'spacevar'을 사용합니다. 예를 들어 목적 함수에서 다음과 같습니다.

      function objective = mysvmfun(x,cdata,grp)
      SVMModel = fitcsvm(cdata,grp,'KernelFunction','rbf',...
          'BoxConstraint',x.spacevar,...
          'KernelScale',x.tvar);
      objective = kfoldLoss(crossval(SVMModel));

예: 'X1'

데이터형: char | string

변수 범위로, 요소를 2개 가진 유한하게 증가하는 실수형 벡터로 지정되거나 string형 배열 또는 범주 이름으로 구성된 셀형 배열로 지정됩니다.

  • 실수 변수 또는 정수 변수의 경우, Range는 해당 변수의 하한과 상한을 지정합니다.

  • categorical형 변수의 경우, Range는 가능한 값을 지정합니다.

예: [-10,1]

예: {'red','blue','black'}

데이터형: double | string | cell

변수 유형으로, 'real'(실수 변수), 'integer'(정수 변수) 또는 'categorical'(categorical형 변수)로 지정됩니다.

참고

'real' 변수 및 'integer' 변수의 MATLAB 데이터형은 모두 표준 배정밀도 부동소수점 숫자입니다. 'categorical' 변수의 데이터형은 categorical형입니다. 따라서 예를 들어 x라는 이름의 변수로 구성된 테이블에서 'colorv'라는 이름의 categorical형 변수의 값을 읽어오려면 명령 char(x.colorv)를 사용합니다. 예제는 Custom Output Functions 항목에서 목적 함수를 참조하십시오.

예: 'Type','categorical'

변수에 적용되는 변환으로, 'none'(변환 없음) 또는 'log'(로그 변환)로 지정됩니다.

'log'의 경우, 변수는 양의 실수 변수('Type','real') 또는 음이 아닌 정수 변수('Type','integer')여야 합니다. 소프트웨어는 로그 스케일에서 변수를 검색하고 모델링합니다.

예: 'Transform','log'

최적화의 변수 사용 표시로, true(변수 사용) 또는 false(변수 사용 안 함)으로 지정됩니다.

예: 'Optimize',false

데이터형: logical

참고

만든 후에는, 점 표기법을 사용하여 다음 속성을 변경할 수 있습니다.

  • 실수 변수 또는 정수 변수의 Range. 예를 들면 다음과 같습니다.

    xvar = optimizableVariable('x',[-10,10]);
    % Modify the range:
    xvar.Range = [1,5];
  • 'integer''real' 간의 Type. 예를 들면 다음과 같습니다.

    xvar.Type = 'integer';
  • 'log''none' 간의 실수 변수 또는 정수 변수의 Transform. 예를 들면 다음과 같습니다.

    xvar.Transform = 'log';

이러한 유연성을 활용하면, 예를 들어 계속 진행하려는 최적화를 약간 수정할 수 있습니다. 점 표기법을 사용하여 범위를 업데이트하거나 변환한 다음 resume을 호출합니다.

객체 함수

bayesoptSelect optimal machine learning hyperparameters using Bayesian optimization

예제

모두 축소

0에서 1까지의 실수 변수:

var1 = optimizableVariable('xvar',[0 1])
var1 = 
  optimizableVariable with properties:

         Name: 'xvar'
        Range: [0 1]
         Type: 'real'
    Transform: 'none'
     Optimize: 1

로그 스케일에서 0에서 1000까지의 정수 변수:

var2 = optimizableVariable('ivar',[0 1000],'Type','integer','Transform','log')
var2 = 
  optimizableVariable with properties:

         Name: 'ivar'
        Range: [0 1000]
         Type: 'integer'
    Transform: 'log'
     Optimize: 1

무지개 색으로 구성된 categorical형 변수:

var3 = optimizableVariable('rvar',{'r' 'o' 'y' 'g' 'b' 'i' 'v'},'Type','categorical')
var3 = 
  optimizableVariable with properties:

         Name: 'rvar'
        Range: {'r'  'o'  'y'  'g'  'b'  'i'  'v'}
         Type: 'categorical'
    Transform: 'none'
     Optimize: 1

버전 내역

R2016b에 개발됨