Задать вопрос
  • Рекуррентная нейросеть для прогнозирования на keras?

    Марк Карась, Глянул, сейчас быстренько пример один , там прогнозируют стоимость акции амазона. 50 дней batch у тебя 15, 51 предсказывает у тебя 16. Так вот он оказался вполне себе рабочим, так одна мелкая опечатка в нем была, а так рабочий я в colabe его запустил, как в аптеке работает. Глянь код.
    import pandas as pd
    import math
    import numpy as np
    from datetime import datetime
    import tensorflow as tf
    from tensorflow import keras
    from tensorflow.keras import layers
    from sklearn.preprocessing import MinMaxScaler
    import matplotlib.pyplot as plt
    import yfinance as yf
    
    
    amzn = yf.Ticker("AMZN")
    end_date = datetime.now().strftime('%Y-%m-%d')
    amzn_hist = amzn.history(start='2017-01-01',end=end_date)
    
    amzn_close = amzn_hist['Close']
    amzn_values = amzn_close.values
    amzn_values = amzn_values.reshape(-1,1)
    
    
    trainingScaler = MinMaxScaler(feature_range=(0,1))
    amzn_values_scaled = trainingScaler.fit_transform(amzn_values)
    
    raining_split = math.floor(len(amzn_values_scaled) * 0.85) #1267+
    training_amzn = amzn_values_scaled[0:training_split]
    training_ind_amzn = []
    training_dep_amzn = []
    
    for i in range(50, len(training_amzn)):
        training_ind_amzn.append(training_amzn[i-50:i][0])
        training_dep_amzn.append(training_amzn[i][0])
    
    training_ind_amzn, training_dep_amzn = np.array(training_ind_amzn), np.array(training_dep_amzn)
    training_ind_amzn = np.reshape(training_ind_amzn, (training_ind_amzn.shape[0], training_ind_amzn.shape[1], 1))
    
    amzn_model = keras.Sequential()
    amzn_model.add(layers.LSTM(100, return_sequences=True, input_shape=(training_ind_amzn.shape[1], 1)))
    amzn_model.add(layers.Dropout(0.2))
    amzn_model.add(layers.LSTM(100, return_sequences=True))
    amzn_model.add(layers.Dropout(0.2))
    amzn_model.add(layers.LSTM(100))
    amzn_model.add(layers.Dropout(0.2))
    amzn_model.add(layers.Dense(25))
    amzn_model.add(layers.Dense(1))
    amzn_model.compile(optimizer='adam',loss='mean_squared_error')
    amzn_model.fit(training_ind_amzn, training_dep_amzn, epochs = 60, batch_size = 32)
    
    testing_input_amzn = amzn_values[training_split:]
    testing_input_amzn = trainingScaler.fit_transform(testing_input_amzn)
    testing_amzn = []
    for i in range(50, len(testing_input_amzn) + 50):
        testing_amzn.append(testing_input_amzn[i-50:i][0])
    testing_amzn = np.array(testing_amzn)
    testing_amzn = np.reshape(testing_amzn, (testing_amzn.shape[0], testing_amzn.shape[1], 1))
    predict_amzn = amzn_model.predict(testing_amzn)
    predict_amzn = trainingScaler.inverse_transform(predict_amzn)
    
    plt.plot(amzn_values[training_split:], color = 'blue', label = 'AMZN Stock Price')
    plt.plot(predict_amzn, color = 'red', label = 'Predicted AMZN Stock Price')
    plt.title('Amazon (AMZN)')
    plt.xlabel('Number of Days since April 26, 2022')
    plt.ylabel('AMZN Stock Price')
    plt.legend()
    plt.show()
    Возьми за основу посмотри, что на что влияет и подстрой под свои данные.
  • Рекуррентная нейросеть для прогнозирования на keras?

    Марк Карась, А обучение то вообще происходит? сделай график своей loss функции. Я так понимаю речь сейчас только о тренировочных данных, на тренировочных данных ты должен увидеть постоянно снижающийся loss, если же речь о тестовых то там loss должен U-формы.
  • Рекуррентная нейросеть для прогнозирования на keras?

    Марк Карась, Сложно сказать, без тестов, как по мне так должно быть что вроде этого стартуешь с 15 индекса. В training_data, должно попадать i-15:i элементы, в labels должно попадать i-элемент. Но это так на вскидку у тебя данные под рукой.
  • Как с помощью python загружать данные на страницу?

    lukepker, там есть режим headless. Но в любом случае selenium может быть медленным. Тут такое дело, если надо взаимодействовать с элементами на сайте то выбор как бы не велик.
  • ValueError: Shapes (None, 0, 6) and (None, 6) are incompatible?

    meburka, Ну по этому, я это и не ответом, а всего лишь комментарием предложил. У нас то данных нет что и в каких размерностях у тебя есть, а в каких ожидается мы не знаем.
  • ValueError: Shapes (None, 0, 6) and (None, 6) are incompatible?

    Ну где ошибка, ты не показал, думаю что вот на этой строке
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

    попробуй поменять loss='sparse_categorical_crossentropy'.
  • Как правильно найти и описать аппроксимацию данных нормальным распределением со смещенным центром?

    Даниил Бакалин, В диапазоне от 500 до 550 метров, было проанализировано 25 локаций. Из них в 8 локациях вид был найден. Значит вероятность встретить вид на этом диапазоне высот (в рамках данного исследования) 8/25 = 32%. Нет и еще раз нет. Ты говорил распределение нормальное - а это условие для равномерно распределенного.

    На диапазоне от 500 до 550 метров, существует одинаковая вероятность встретить вид. Задача должна звучать вот так. Тогда это не нормальное распределение (normal distribution), а равно распределенное (uniform distribution).

    25 локаций конечно маловато для статистических выводов. И формула будет не совсем 8/25, добавится поправка что это sample distribution. Но логика твоя - что твое распределение uniform а не normal.

    Ну да ладно дело твое.
  • Как правильно найти и описать аппроксимацию данных нормальным распределением со смещенным центром?

    Даниил Бакалин, В корне не то, ты применил дискретизацию сначала, твое распределение дискретно, а потом говоришь оно нормально, нормальное распределение это непрерывная случайная переменная, а с твоих слов у тебя дискретная.

    я разбил высоты на диапазоны, так как не очень представляю как иначе получить случайную переменную.
    ОТВЕТ MLE. либо работай с дискретной переменной либо с нормальной, но не смешевай одно с другим это полная глупость.

    В принципе раз это не условие что распределение нормальное, а согласно ЦПТ что теория, на практике мы от без выходности часто говорим допустим данные распределены нормально, то можно применять nonparametric methods KDE (kernel density estimation). https://www.statsmodels.org/dev/examples/notebooks..., nonparametric это класс методов, когда мы не делаем допущение о форме population distribution. Вообще открывай если используешь python statsmodels, что MLE что KDE что дискретные модели. Это все там.

    Вообще, я надеюсь что ошибаюсь, но ты точно хорошо понимаешь что такое случайная переменная? Почитай в вики. Я не буду объяснять возьму практику. Например мы кидаем кубик на случайная переменная будет равномерно распределенной и иметь вид U(1,6). Что означает U-uniform, с одинакавой вероятностью выбираем число от 1 до 6 включительно. РЕАЛИЗАЦИЕЙ такой случайной переменной будет число от одного до 6. зачем нам эта переменная затем что у ней много математических свойств. И мы имея эту переменную может считать вероятности. Инферинтивная статистика в том числе занимается методами нахождения параметров для таких переменных, или например функции распределения для неизвестной переменной. В данном случае если бы наши данные были бы много результатов броска кубика мы бы нашли что это равнораспределенная дискретная случайная переменная на интервале (1,6).

    Так вот твоя задача создать такую переменную (естественно не равнораспределенную а как ты утверждаешь нормальную или какую то другую кастомную). И потом когда она у тебя есть, считать в рамках нее вероятности. А не считать вероятности на сырых данных это глупость. Потому что ты говоришь у меня в каком то интервале точек больше значит там вероятность больше. Вероятность определяется по формуле для каждой случайной переменной она своя. Без модели распределения НЕТ НИКАКИХ ВЕРОЯТНОСТЕЙ.

    Вообщем как то так. Все я больше чем надо уделил внимания этому вопросу.
  • Как правильно найти и описать аппроксимацию данных нормальным распределением со смещенным центром?

    Даниил Бакалин, Я слегка дополнил ответ парой предложений относительно аналитических методов. Хотя все они используются только в обучении (в институтах), на практике MLE (это не один алгоритм, а класс алгоритмов). Числовой метод, для нахождения наиболее вероятного параметра случайной переменной на основе наблюдаемых данных. Ты должен знать что такое случайная переменная. X - наблюдаемые данные. распределение пусть N - нормальное. MLE(X,N) - вернет. Наиболее вероятные парметры функции N(mu, std) которые "произвели данные X".

    Не надо диапазонов. Надо занимать инферентивной статистикой. Есть данные X - наблюдения. Мы говорим есть нормальная случайная перменная которая произвела эти данные у этой случайной переменной есть парметры N(mu, std). Так вот используем MLE для того что бы апроксимировать эти параметры. Когда наша модель готова, то мы можем задавать вопросы какая вероятность чего то там больше меньше в интервале. Нам надо создать МОДЕЛЬ. раз ты говоришь распределение популяции нормальное МЫ знаем формулу модели загугли normal pdf и ты получишь большую формулу с двумя параметрами и одной перемнной. параметры это mean и std. Вот их нам и надо аппроксимировать. Есть они значит есть модель. Дальше любой вопрос о верояности какого то события это пару строчек кода c использованием scipy и sympy. Вот для понимания
    mu = 2
    std = 1
    from scipy.stats import norm
    X = norm(mu,std)
    result = X.rvs(5)
    print(result)

    Мы будем иметь массив из 5 РЕАЛИЗАЦИЙ нормального распределения из случайной переменной X с mean=2, std=1. Так вот твоя задача ОБРАТНАЯ, ты не знаешь чему равен mean а чему std. Но зато у тебя есть массив реализций result. И MLE аппроксимирует mean и std или только mean если нужно.
  • Какой нейронной сетью (или другим инструментом) можно проанализировать текст чтобы понять настроение клиента?

    Антон Иванов, Хорошо, двигайся в направлении тюнинга готовых моделей. Сначала полностью прочитай, что это такое вот здесь https://research.aimultiple.com/llm-fine-tuning/. Ну и гугли как взять языковую модель и тюнить ее. Одна из задач, которые могут решать модели после тюнинга это что называется summarizing text, пробуй гарантий не каких все зависит от много а в состоянии ли ты разобраться с api и выстроить ли процесс, с работает ли это для твоего кейса и т.д.

    Если накопишь данные, то тогда с гарантиями элементарный классификатор построишь и он будет работать. А сейчас можно пробовать только тюнинг готовых языковых моделей.
  • Какой нейронной сетью (или другим инструментом) можно проанализировать текст чтобы понять настроение клиента?

    Антон Иванов, Ну если бы нужно было просто классифицировать, то fine tuning llm модели подошел бы. Ну ты спрашиваешь еще и про вероятности а их откуда брать? модель может "присвоить вероятности", только основываясь на тренировочных данных, а не на тюнинге готовой языковой модели.
  • Fine-tuning опенсорсного LLM новому языку?

    nkiay, Почитай, во это https://research.aimultiple.com/llm-fine-tuning/ Толково написано. Английским ты должен владеть, раз за такие задачи берешься, многое станет понятно что можно, а что нет.
  • Fine-tuning опенсорсного LLM новому языку?

    nkiay, Смотри что такое fine tuning. Это настройка параметров модели (большой базовой модели), для улучшения перформанца модели в какой то определенной области. Например чат бот для чего то, написание статей в какой то области и т.д. Весь подобный тюнинг, доступен по деньгам обычным людям потому что ты настраиваешь определенном образом базовую open source модель, которую натренировали корпорации с бюджетом доступным только корпорациям.

    Возможно тебе следует тюнить многоязыковую модель. Такие есть в том числе и open source. Как оно будет работать на тюрском, я элементарно не знаю это слишком специфический кейс.

    Но если есть от чего тюнится (базовая модель). То по деньгам это доступно обычным людям.
  • Fine-tuning опенсорсного LLM новому языку?

    nkiay,
    Fine-tuning опенсорсного LLM новому языку?
    Это не конкретная задача для машинного обучения. Машинное обучение мыслит категориями, supervised, unsupervised, количество параметров, общее количество данных, форма данных, размерности данных и т.д. И исходя из этого, можно в общем обсуждать время или что то еще. Тренировать языковые модели с нуля, не то что человеку не по карману, это только корпорации могут себе позволить. Тюнить готовые это другое дело, тут уже все возможно и для одного человека.
  • Как правильно импортировать таблицу excel в бд postgre?

    Justa Gain, Понятно, что не в инструменте. Например openpyxl это один из доступных парсеров excel в pandas (там их несколько)

    Дело в структуре данных, или ты итерируешься и проверяешь каждую строку а все ли элементы отвечают всем требованиям. Либо ты имеешь структуру фрейм где все эти вещи делаются легко и быстро. По сути если мы более общий случай возьмем, нам нужно будет писать проверку типов, пропущенные величины, может еще что то. это возможно конечно в цикле match case вставить там и типы можно проверять удобно. Но не проще ли иметь фрейм.
  • Как определить, где запущен код python - в PyCharm или в Google Colab?

    Priboy313, Ничего, будешь работать программистом, регулярно будешь чувствовать себя неловко.
  • Как выбрать правильно выбрать период в pandas?

    LetMeDieYung, Это уже другой вопрос, хотя он абсолютно элементарный. Что показывает, что pandas ты совсем не знаешь, а хочешь что бы кто то сделал за тебя твою программу.

    input_year = input('Введите год: ')
    df = pd.DataFrame({
        'date':pd.date_range('2021-01-01', periods=1000),
        'temperature':np.random.uniform(-10,10,1000)})
    selected_year = (df.set_index('date').loc[input_year]).copy()
    selected_year

    Вот код который выделит сначала подсет данных, по году что бы потом на этом фрейме определять когда зима по твоему принципу, и по моему коду из ответа. Просто введи например 2022 и будут и все ряды где год 2022. И не заюудь что бы твоя колонка date имела тип данных datetime64[ns].

    Кстати, а ты подумал что у тебя в календарном году может несколько зим что если за это время есть не одна последовательность с 5-ю отрицательными ЗИМА 5-ь положительных опять 5-ь отрицательных ЗИМА 5 положительных.
  • Как выбрать правильно выбрать период в pandas?

    LetMeDieYung, Я понял, что у тебя есть. Твой код нигде не пытается выбирать подсет данных на основе условия задачи выбрать подсет между пятью отрицательными и пятью положительными значениями температур.
    Чем тебе решение, что я опубликовал не устраивает?
    Или ты не в состоянии его прикрутить к своим данным?
  • Почему Jupyter noteboor не видит torch?

    Ну смотри, я постоянный пользователь, anaconda и с torch конечно же приходилось работать. Если все стоит и установлено в верное окружение у тебя по умолчанию base окружение активированно. То есть в терминале (base) все что ты устанавливаешь, устанавливается туда. И когда ты запускаешь jupyter и из него !pip он устанавливает туда. Ты можешь посмотреть conda env list. Список своих окружений conda activate name (активировать) conda deactivate деактивировать.

    Если с этим все в порядке, значит в результате какого то конфликта anaconda перестала нормально работать. У меня такое было как то matplotlib не импортировался в результате конфликта. Я сносил анаконду (не конду а имеенно анаконду и устанавливал ее заново).

    Кстати torch входит набор базовых пакетов анаконды. У меня из jupyter импортируется нормально. https://docs.anaconda.com/free/anaconda/install/un... Вот ссылка на удаление анаконды. Потом заново поставь и пробуй. Если дело не в окружениях, значит конфликт.
  • Почему Jupyter noteboor не видит torch?

    Ogoun Er, Анаконда это дистрибуция и она имеет релизы а не версии, а конда это менеджер пакетов и виртуального окружения анаконда и конда это разные вещи, это я на всякий случай, а то из твоего коммента не совсем ясно.