트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 2835

 
Maxim Dmitrievsky #:
유전학에서는 변수를 취하고 기준을 최대화합니다. 여기서는 분류이기 때문에 그렇게 할 수 없습니다. 수익과 클래스 레이블 사이에는 아무런 관계가 없습니다. 기껏해야 말도 안 되는 결과가 나올 뿐입니다. 그렇기 때문에 이러한 기준이 eval_metrics에 배치됩니다.

인생에 행복은 없습니다.)

 
Aleksey Nikolayev #:

인생에는 행복이 없다)

이름 손실 F-MA에서도 기준 값과 모델 사이의 손실 F-MA입니다.

어느 쪽이 이익의 형태로 소매가 있습니까?
 
Maxim Dmitrievsky #:
손실 ph-y라는 이름에서도 기준값과 모델 사이의 손실 ph-y는
입니다.

여기서 이익 슬리브는 어느 쪽에 있습니까?

사실, 우리는 MO 영역에서 보다 일반적인 최적화 영역으로 이동합니다. 하지만 "가능한 한 많이 벌기"는 "가능한 한 자주 맞히기"와는 완전히 다릅니다.

 
Andrey Dik #:

1. v

2. 다음은 가상의 학습 함수의 곡선과 같은 그림입니다.

그리드가 국부 극한점 1에서 멈출까요? 아니면 2에서 멈출까요? 아니면 중간에서 멈출까요? 따라서 우리는 국부 극한점이 얼마나 많은지 미리 알 수 없으며, 100500 또는 그 이상이 될 수 있습니다. 그렇기 때문에 알고리즘이 도달할 수 있는 모든 로컬 극한값 중 가장 높은 극한값을 찾는 것이 중요합니다.

이는 글로벌 최대값에 대한 검색을 정당화한다는 점에서 매우 아름답고 증명할 수 있습니다.

하지만 이것은 역사에 관한 이야기입니다.

오른쪽에 막대를 추가하면 어떨까요? 여전히 아름다울까요? 아니면 무너질까요? 시장은 고정되어 있지 않습니다. 테스터의 말을 믿으시겠어요? 그는 그것을 발견하고, 아름답고, 색상이...

 
Maxim Dmitrievsky #:
유전학에서는 변수를 취하고 기준을 최대화합니다. 여기서는 분류이기 때문에 그렇게 할 수 없습니다. 수익과 클래스 레이블 사이에는 아무런 관계가 없습니다. 기껏해야 말도 안 되는 결과가 나올 뿐입니다. 그렇기 때문에 이러한 기준이 eval_metrics에 배치됩니다.
분류의 품질은 어떻게든 평가할 수 있으므로 이 평가를 극대화하는 것이 최적화의 목표입니다.
 
Maxim Dmitrievsky #:
손실 ph-y라는 이름에서도 기준값과 모델 사이의 손실 ph-y는
입니다.

여기서 이익 슬리브는 어느 쪽에 있습니까?

슬리브가 있습니다.

 
Andrey Dik #:
분류의 품질은 어떻게든 평가할 수 있습니다. 따라서 이 평가를 극대화하는 것이 최적화의 목표입니다.
원본과 학습된 것 사이의 손실이 최소화되는 것입니다. 물론 정규화 된 이익의 형태로 약간의 공제를 추가하여 시도 할 수 있지만 필요한가요?
 
СанСаныч Фоменко #:

글로벌 최대값에 대한 검색을 정당화한다는 점에서 매우 훌륭하고 증명할 수 있습니다.

하지만 그것은 역사 속에 있습니다.

오른쪽에 막대를 추가하면 어떨까요? 아름다움이 유지될까요? 아니면 무너질까요? 시장은 고정되어 있지 않습니다. 테스터의 말을 믿으시나요? 그는 그것을 발견하고, 아름답고, 색상이...

그것이 역사에 있든 미래에 있든 상관없습니다. 그리고 테스터 자체는 그것과 아무 관련이 없습니다.

중요한 것은 평가 기준의 글로벌 최적을 찾기 위한 알고리즘(개별적으로 또는 그리드의 일부로서 최적화 알고리즘)의 속성입니다. 제가 강조하는 것은 평가 기준입니다. 평가 기준은 반드시 수익만이 아니거나 수익만이 평가 기준이 될 수 없습니다. 예를 들어 OOS에 대한 작업의 평가 기준이 기준(샘플과 OOS의 차이를 최소화하는 것)이 아니라 무엇이든 될 수 있지 않을까요? - 그냥 생각일 뿐입니다. 기준은 무엇이든 될 수 있고 복잡할 수도 있습니다. '수익' 기준은 매우 복잡하고 불연속적인 것이기 때문에 사람들은 더 부드럽고 단조로운 평가 기준을 마련하려고 노력하며, 이는 일반적으로 최적화 자체의 품질과 특히 뉴로닉스 훈련의 품질을 향상시킨다는 점을 이해하는 것이 중요합니다.

따라서 제가 그린 매우 예술적인 그림으로 돌아가서, 국부 극단의 수나 특성을 알 수 없는 조건에서 유일한 탈출구는 제한된 계산 능력의 조건에서 가능한 한 최대한 멀리 검색하는 것뿐이라는 사실을 명확하게 설명합니다.

고원 - 예, 그러한 개념이 있지만 최적화와는 관련이 없으며 일부 속성에 따라 유사한 매개 변수 집합을 분류하는 문제입니다. 안정적인 고원을 찾는 것은 별도의 복잡한 작업입니다.

 

마침내 나만의 손실 함수를 얻었는데, 이 미분은 샤프, 오차, 가중치의 곱으로 표현됩니다.

is_max_optimal=False는 값이 감소하고 있음을 나타내지만 -1도 곱했기 때문에 그 반대가 참입니다.

class SharpeObjective(object):
  def calc_ders_range(self, approxes, targets, weights):
    assert len(approxes) == len(targets)
    if weights is not None:
      assert len(weights) == len(approxes)

    result = []
    for index in range(len(targets)):
      preds = [approxes[i] for i in range(len(targets))]
      preds = [i if i>0 else -1*i for i in preds]
      sharpe = np.mean(preds)/np.std(preds)
      der1 = targets[index] - approxes[index]
      der2 = -1

      if weights is not None:
        der1 = -1 * sharpe * der1 * weights[index]
        der2 = der2 * weights[index]

      result.append((der1, der2))
    return result

class Sharpe(object):
    def get_final_error(self, error, weight):
        return error

    def is_max_optimal(self):
        return False

    def evaluate(self, approxes, target, weight):
        assert len(approxes) == 1
        assert len(target) == len(approxes[0])
        preds = np.array(approxes[0])
        target = np.array(target)
        preds = [i if i > 0 else -1*i for i in preds]
        sharpe = np.mean(preds)/np.std(preds)
        return sharpe, 0

model = CatBoostRegressor(learning_rate=0.1, loss_function=SharpeObjective(), eval_metric=Sharpe())
 
Evgeni Gavrilovi #:

마지막으로 자체 손실 함수를 얻은 도함수는 샤프, 오차 및 가중치의 곱으로 표현됩니다.

is_max_optimal=False는 값이 감소하고 있음을 나타내지만 -1도 곱했기 때문에 그 반대가 참입니다.

훈련 결과가 개선되었나요?)
사유: