Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3691

[Удален]
А если лимитками торговать, как контролииь не сработавшие лимитки для других ног?
[Удален]

Статья про скрытые марковские модели. Понравилась библиотека hmmlearn, хорошо сделана.

https://www.mql5.com/ru/articles/17917

[Удален]
Есть повод поковырять спайковые нейронки (просто интересно)
snnTorch Documentation — snntorch 0.9.4 documentation
  • snntorch.readthedocs.io
The brain is the perfect place to look for inspiration to develop more efficient neural networks. One of the main differences with modern deep learning is that the brain encodes information in spikes rather than continuous activations. snnTorch is a Python package for performing gradient-based learning with spiking neural networks. It extends...
[Удален]

pieces.app пользуюсь уже больше года, наверное самое полезное и (пока) бесплатное приложение для кодинга, где не нужен vpn.

Ограничено только задачами кодинга, нельзя генерить картинки.

Сегодня добавили модели (помимо сlaude 3.7)

Позже сделаю сравнение новых моделей на довольно сложной задаче.



[Удален]

В чач-ве подопытного будет такое довольно сложное задание (и код из одной из статей по козул инференсу). Возможно, будут уточняющие вопросы. Потом протестирую каждый код и сравню с оригиналом. Цель - повысить кач-во моделей на выходе (новых данных) в ТС, оно напрямую зависит от этой ф-ии.

Задача вполне конкретная, потому что если просто попросить "сделать лучше", они начинают предлагать много разных нерабочих вариантов, в т.ч. бредовых. 

Можешь модифицировать этот код, чтобы он использовал конформные предсказания для определения плохих меток?

def meta_learners(models_number: int, iterations: int, depth: int, bad_samples_fraction: float):
    dataset = get_labels_one_direction(get_features(get_prices()),
                                       markup=hyper_params['markup'],
                                       min=1,
                                       max=15,
                                       direction=hyper_params['direction'])
    data = dataset[(dataset.index < hyper_params['forward']) & (dataset.index > hyper_params['backward'])].copy()

    X = data[data.columns[1:-2]]
    y = data['labels']
    BAD_WAIT = pd.DatetimeIndex([])
    BAD_TRADE = pd.DatetimeIndex([])

    for i in range(models_number):
        sampled = data.sample(frac = 0.3)
        X = sampled[data.columns[1:-2]]
        y = sampled['labels']
        X_train, X_val, y_train, y_val = train_test_split(
            X, y, train_size = 0.5, test_size = 0.5, shuffle = True)
        
        # learn debias model with train and validation subsets
        meta_m = CatBoostClassifier(iterations = iterations,
                                depth = depth,
                                custom_loss = ['Accuracy'],
                                eval_metric = 'Accuracy',
                                verbose = False,
                                use_best_model = True)
        
        meta_m.fit(X_train, y_train, eval_set = (X_val, y_val), plot = False)
        
        coreset = X.copy()
        coreset['labels'] = y
        coreset['labels_pred'] = meta_m.predict_proba(X)[:, 1]
        coreset['labels_pred'] = coreset['labels_pred'].apply(lambda x: 0 if x < 0.5 else 1)
        
        # add bad samples of this iteration (bad labels indices)
        coreset_w = coreset[coreset['labels']==0]
        coreset_t = coreset[coreset['labels']==1]

        diff_negatives_w = coreset_w['labels'] != coreset_w['labels_pred']
        diff_negatives_t = coreset_t['labels'] != coreset_t['labels_pred']
        BAD_WAIT = BAD_WAIT.append(diff_negatives_w[diff_negatives_w == True].index)
        BAD_TRADE = BAD_TRADE.append(diff_negatives_t[diff_negatives_t == True].index)

    to_mark_w = BAD_WAIT.value_counts()
    to_mark_t = BAD_TRADE.value_counts()
    marked_idx_w = to_mark_w[to_mark_w > to_mark_w.mean() * bad_samples_fraction].index
    marked_idx_t = to_mark_t[to_mark_t > to_mark_t.mean() * bad_samples_fraction].index

    data['meta_labels'] = 1.0
    data.loc[data.index.isin(marked_idx_w), 'meta_labels'] = 0.0
    data.loc[data.index.isin(marked_idx_t), 'meta_labels'] = 0.0
    # data.loc[data.index.isin(marked_idx_t), 'labels'] = 0.0

    return data[data.columns[:]]
[Удален]

GPT 4.1 предложил вариант, но не может написать рабочий код. Возникающие ошибки тоже не может пофиксить.

Но предложил интересную библиотеку для конформных предсказаний, которую пытался "всунуть в код". Пока что не зачет, но за либу наверное спасибо конечно. 

MAPIE - Model Agnostic Prediction Interval Estimator — MAPIE 0.9.2 documentation
  • mapie.readthedocs.io
MAPIE - Model Agnostic Prediction Interval Estimator¶ MAPIE is an open-source Python library for quantifying uncertainties and controlling the risks of machine learning models. It is a scikit-learn-contrib project that allows you to: Easily compute conformal prediction intervals (or prediction sets) with controlled (or guaranteed) marginal...
Maxim Dmitrievsky #:

GPT 4.1 предложил вариант, но не может написать рабочий код. Возникающие ошибки тоже не может пофиксить.

Но предложил интересную библиотеку для конформных предсказаний, которую пытался "всунуть в код". Пока что не зачет, но за либу наверное спасибо конечно. 

Максим, каким образом вы общаетесь с этим интеллектом? Прошу вашего позволения отправить вам сообщение.

[Удален]
prosvetlenniy_mudrec #:

Максим, каким образом вы общаетесь с этим интеллектом? Прошу вашего позволения отправить вам сообщение.

Через данное приложение, которое описал выше.

Там можно выбрать любую из самых последних моделей и протетсировать.
Pieces for Developers — The first AI that remembers everything you work on
Pieces for Developers — The first AI that remembers everything you work on
  • pieces.app
Pieces Long-Term Memory Agent captures, preserves, and resurfaces historical workflow details, so you can pick up where you left off. Capture 9 months of context across Windows, MacOS, and Linux.
Maxim Dmitrievsky #:

Через данное приложение, которое описал выше.

Спасибо.

Сайт говорит, что вы принимаете сообщение только от друзей. Как вам можно написать. Я вижу, что вы много помогаете начинающим. Хотел бы сделать то же самое в вашем отношении :)

[Удален]
prosvetlenniy_mudrec #:

Спасибо.

Сайт говорит, что вы принимаете сообщение только от друзей. Как вам можно написать. Я вижу, что вы много помогаете начинающим. Хотел бы сделать то же самое в вашем отношении :)

Ну я общаюсь только на темы алготрейдинга или юмора :) Наверное нужно добавиться в друзья сначала.