• Прогнозирование вне выборки. Как реализовать?

    @dmshar
    Странно, вы прочитали много книжек и статей, а вопрос задаете какой-то .... странный. А что можно прогнозировать внутри выборки? Прогнозирование - это ВСЕГДА получение значений вне вашей изначальной выборки.
    Ну, а фраза о том, что мало информации в интернете - вообще непонятная. Информации по этой теме не просто много, а чрезвычайно много.
    Ну вот, просто набрал в Google - и сразу:
    https://habr.com/ru/post/495884
    https://habr.com/ru/post/505338/

    Может проблема в том, что вы начали изучение сразу с нейросетей, не разобравшись с основами машинного обучения?
    По сути вопроса отвечаю, что-бы построить прогноз "вне выборки", надо сначала построить модель (обучить нейросеть на тренировочном датасете), потом валидировать модель (т.е. проверить работоспособность модели на тестовом датасете), а уж потом задать на вход независимые переменные (точно - момент времени, и возможно - значения других независимых переменных на этот момент времени) и модель вам должна выдать прогнозируемый результат.
    Но что-бы это лучше понять рекомендую все-таки ознакомиться с базовыми понятиями ML, включая теорию временнЫх рядов. Тогда и вопросов таких школьных в дальнейшем не будет.
    Ответ написан
    Комментировать
  • Почему проходит всего 1 итерация?

    @dmshar
    Вы заходите в цикл for item in numbers: с первым значением своего массива (10). Что-то там проверяете/меняете и выходите из функции по return. Все.
    Могу только предположить, что return nps имеет неверный отступ. Проверяйте.
    Ответ написан
  • Как используя цикл for узнать периметр окружности вписанной в квадрат?

    @dmshar
    После дискуссии в комментариях ( 6084 точек на периметр квадрата и требуется понять сколько из них входит в круг) (правда, причем тут "периметр квадрата" я так и не понял) задача сводиться к простой проверке
    расстояние от точки до цента фигуры <= радиус окружности.

    Радиус окружности задан явно.
    Расстояние - простое эвклидово двумерное расстояние (корень квадратный от суммы квадратов расстояний по каждой из двух координат)
    В цикле проверяете каждую точку и считаете, сколько из них указанному условию соответствуют.
    Выяснить периметр - это вообще-то из другой оперы.
    Ответ написан
    Комментировать
  • Решение математических задач с Python — книгу (учебник) посоветуете?

    @dmshar
    https://www.mann-ivanov-ferber.ru/books/python-dly...
    https://monster-book.com/python-dlya-detey-i-roditeley
    https://lavkababuin.com/python-sbornik-uprazhneniy...
    https://ru.pdfdrive.com/Учим-python-делая-крутые-и...

    В этих книгах есть разные примеры, и математические, и не очень. И в общем-то я не очень уверен, что в 13-15 лет надо делать упор на математических задачах - не всем вашим ученикам суждено стать специалистами по машинному обучению и анализу данных, не всем суждено стать даже инженерами. А вот освоить хотя-бы азы программирования - полезно всем. И таких математика может только отпугнуть.
    Ответ написан
    Комментировать
  • Как это мне переделать для бота чтобы он выводил данные?

    @dmshar
    А идея начать с изучения Python вам самому в голову не приходила?
    Ну хоть отсюда: https://pythonworld.ru/bookshop/4.html
    Так и будем продолжать за каждой ошибкой или каждой запятой в программе бежать на форум?
    Ответ написан
    1 комментарий
  • С помощью каких формул вычисляются коэффициенты многомерной линейной регрессии методом стохастического градиентного спуска?

    @dmshar
    Я понимаю, готовыми реализациями вам запрещено пользоваться. А что Google - тоже под запретом? Или его вам заблокировали?
    Придется вам помочь
    https://russianblogs.com/article/6278961862/
    https://habr.com/ru/post/467185/
    https://pythobyte.com/gradient-descent-in-python-i...
    Пока надеюсь хватит, а там и запрет снимут.
    Ответ написан
  • ValueError: time data '2021-11-21' does not match format '%a %b %d %H:%M:%S %Y'?

    @dmshar
    А вы можете объяснить, что вы тут делаете?
    today.strftime('%Y-%m-%d') - ОК, понятно, дату переводим в строку.
    strptime(today.strftime('%Y-%m-%d')) - ну предположим, строку хотим обратно перевести в формат "datatime". Вот только не указав параметр format вы принимаете формат по умолчанию "%a %b %d %H:%M:%S %Y"
    А теперь главный вопрос -
    strftime("%Y-%m-%d", strptime(today.strftime('%Y-%m-%d'))) - где тут первый параметр - данные, где второй параметр - формат?

    Поэтому могу только подозревать, что вы хотели написать что-то вроде
    today = date.today()
    datetime.strftime( datetime.strptime(today.strftime('%Y-%m-%d'),'%Y-%m-%d'),"%Y-%m-%d")

    который хоть и будет работать, но делать будет все равно что-то абсолютно бессмысленное.
    Ответ написан
    Комментировать
  • В чём ошибка в коде?

    @dmshar
    Во-первых, в том, что он не отформатирован для того, что-бы его могли удобно читать те, кто захочет вам помочь.

    Во-вторых, вам же четко, по английский написана причина ошибки. Еще и показано - в какой именно строке это происходит - но нам вы этого не показали. Как вы думаете, что должно произойти вот в этом фрагменте вашего кода при первом его исполнении?

    for i in range(21):
        day = date_pr.strftime("%A")

    Откуда берется значение date_pr и какое оно в момент исполнения этой команды ?
    Ответ написан
    2 комментария
  • Как в python можно реализовать эмпирическую функцию распределения?

    @dmshar
    Пусть lst - это ваш список. Тогда.
    В зависимости от того, что на самом деле вам надо, можно так:
    plt.hist(lst, histtype='step', cumulative=True, bins=len(lst))

    результат:
    618ec954800d1793865069.png

    Можно так:
    bin_dt, bin_gr = np.histogram(lst, bins=len(lst))
    Y = bin_dt.cumsum()
    for i in range(len(Y)):
        plt.plot([bin_gr[i], bin_gr[i+1]],[Y[i], Y[i]],color='green')


    Результат:
    618ec9cfabd0f489842340.png

    Можно так:
    import seaborn as sns
    sns.kdeplot(lst, cumulative=True)


    Результат:
    618eca10f1413441842508.png
    Ответ написан
  • Программа не запускается не понимаю почему выбивает ошибки?

    @dmshar
    Если main - это имя файла с кодом, используемый вами, то надо писать main.py. А если что-то другое - то объясните предназначение вот этой строки
    from main import collect_data
    Ответ написан
  • Как записать переменные в кол-ве которые ввели в консоль?

    @dmshar
    Вы хоть про основы Python прочитали что-нибудь? Циклы, условные операторы, списки? А если учили основы информатики (школа, класс наверное 7 или 8), то наверняка должны знать, что массив и придуман для того, что-бы не заводить "отдельной переменной" для каждого данного. По сумбурности вопроса очень подозреваю что нет. Как перевести на русский язык фразу "записать переменные в количестве которые ввели в консоль?" - я вообще не знаю. Что значит "записать переменные в количестве"?, что такое "которые ввели в (!!!!) консоль"??? А "в консоль" ввели переменные или все таки их количество? ("В консоль" (куда?) можно "вывести", а вот ввести можно "в консоли" (где?) И смысл от этого меняется кардинально).

    Ваша программа, та что "пишет в консоль", откуда она знает, сколько пар введено? Где она хранит свои данные?
    Что такое n - каждое отдельно вводимое число или предварительно введенное максимальное количество данных?
    Если вы работаете (и что-либо читали про) Python, то должны бы знать, что в нем есть тип данных list, который может наращиваться динамически, и не требует заранее определять максимальное количество своих элементов. Вот, по мере появления нового числа записываете его в список, а если длина списка кратна двум - выводите его два последние элемента в консоль.
    lst=[]
    while True:
        lst.append(int(input()))
        if len(lst)%2==0:
            print(lst[-2],lst[-1])

    Внимание! Программа содержит бесконечный цикл. Но исправить это оставляю вам в качестве домашнего задания.
    Ответ написан
    1 комментарий
  • Какой алгоитм сортировки выбрать?

    @dmshar
    Ну так вы же сами ответили на свой вопрос. В любом учебнике по теории алгоритмов есть информация по каждому из вами перечисленных (и другим) алгоритмам сортировки, в котором читателю рассказывают, какую вычислительную сложность имеет каждый из алгоритмов для лучшего (все уже отсортировано), среднего и худшего случаев.
    Другое дело, что применять эти знания можно не при сортировке конкретного массива, а когда вы знаете, что вам надо часто сортировать массив, и как правило (или просто - чаще) ваш массив уже будет отсортированным, частично, отсортированным и т.д. (Так очень часто бывает при решении конкретных прикладных задач).
    А для конкретного массива, не зная заранее что за данные приходят на вход, ничего конкретного сказать нельзя. Поэтому в таком случае ориентируются на "средний" случай.
    Ответ написан
    2 комментария
  • Есть ли эффективый и не сложный алгоритм посика ярко выраженных пиков в 2D массивах без ML?

    @dmshar
    На сколько мне известно, строгого алгоритма поиска пиков в произвольном временнОм ряду - нет. Поэтому стоит довольствоваться эмпирикой.
    Ну, я бы делал так.
    1. Фиксировал бы размер скользящего окна.
    2. На первом положении окна искал бы максимум.
    3. Сдвигал-бы окно так, что-бы оно начиналось с найденной точки максимума.
    4. Опять искал-бы максимум.
    Если максимум на первом окне оставался максимумом и на втором окне - считал бы это "ярко выраженным пиком". Если нет - повторял бы процедуру .
    Вопрос выбора размера скользящего окна - решается эмпирически.
    Ответ написан
    7 комментариев
  • Почему формат не подходит?

    @dmshar
    Потому что:

    либо
    obj = datetime.strptime('11.10.2021\xa0Mon', '%d.%m.%Y\xa0%a')


    либо
    import locale
    locale.setlocale(locale.LC_ALL, "ru")
    obj = datetime.strptime('11.10.2021\xa0пн', '%d.%m.%Y\xa0%a')
    Ответ написан
    Комментировать
  • На Python Как записать данные в несколько столбцов CSV?

    @dmshar
    О каком "столбце" идет речь? CSV - файл, это обычный ТЕКСТОВЫЙ файл, в котором просто "по договоренности" все данные делятся разделителем. Не более.
    Поэтому если вы просто открываете этот файл в MS EXCEL совершенно очевидно, что каждая запись будет представляться одной строчкой, которая попадает в один - как правило первый - столбец таблицы.
    Если вы хотите с таким файлом в дальнейшем работать именно как с таблицей, то уже в EXCEL вам надо осуществить импорт данных их csv в xslx формат. Делается этот так:
    Вкладка "Данные" -> Получение внешних данных ->Из текста->указываете имя вашего csv- файла ->выбераете формат "с разделителем"->Далее->выбираете используемый разделитель (например "запятая")->Далее->Готово->указываете место на листе, с которого импортированная таблица должна начинаться (обычно "=$A$1")->ОК
    и смотрите, что у вас получилось в вашей теперь уже настоящей таблице EXCEL.
    Ответ написан
  • Как сделать автоматический набор кода?

    @dmshar
    Я знаю, что существует приложения по типу Serenade или Talon, которые позволяют осуществить голосовой набор кода, мне бы хотелось узнать, возможно ли осуществить подобное на Python и если да, то что для этого требуется.
    Мне кажется, ответ совершенно очевиден для любого, кто реально является квалифицированным разработчиком.
    1. Разобраться и написать - возможно самому, а возможно путем вскрытия/изучения хотя-бы указанных пакетов - как это все должно будет выглядеть.
    2. Составить ТЗ на разработку с - желательно - максимально подробным описанием алгоритмов, которые при этом будут задействованы.
    3. По дороге понять, не просто "что потребуется", а специалисты в каких областях потребуются для разработки такого софта, а потом - найти и нанять таких специалистов на работу.
    4. Организовать процесс разработки.

    Если вы скажете, что все это очевидно - то полностью соглашусь, да все это полностью очевидно, но уж какой вопрос - такой и ответ.

    По ходу - несколько замечаний.
    1. Практически все, что делается с помощью других языков программирования можно реализовать и на Python. Вопрос только в удобстве и скорости разработки и в эффективности полученных программных продуктов.
    2. "Для этого" - совершенно очевидно - требуется хорошо знать возможности Python.
    3. Сама задача - создавать код "с голоса" - задача весьма сомнительной пользы. Кому она нужна? Инвалидам без рук? Или тому кто хочет диктовать (кстати - что именно? Саму программу, написанную предварительно на листочке?) и одновременно жевать бутерброд, "наблюдая" за процессом составления кода? Или школьнику, не осилившему изучения языка программирования и мечтающему, что-бы это за него делала программа?
    4. Абсолютно уверен, что даже если такая программа будет создана, ни скорость разработки ни даже качество конечного продукта не будут улучшены по сравнению с теми инструментами, которые имеются сегодня в наличии.
    5. Что бы понять, каково будет работать с таким продуктом - попробуйте поработать с намного более простым приложением - любым голосовым ассистентом, оцените его "удобства и преимущества" по сравнению с непосредственной. традиционной работой системы. А за одно почитайте, какие коллективы разработчиков трудились над созданием такого продукта.
    Ответ написан
    9 комментариев
  • Что нужно знать для изучения линейной алгебры для ИИ?

    @dmshar
    Вопрос немного странноват. Вы так спрашиваете, будто вам надо еще и "обычную математику" учить. Ну, то есть вы еще математику (обычную - это школьную, что-ли?) недоучили, но нейросети уже собрались изучать.
    Линейная алгебра - один из первых курсов, изучаемых на специальностях, связанных с математикой. Или одна из первых тем в курсе "вышки", которую изучают обычные инженеры. Поэтому для ее изучения достаточно знать все, что вам преподавали в "обычной математике".
    Ответ написан
    Комментировать
  • Как обучить нейросеть выводить разные изображения?

    @dmshar
    А причем тут нейросеть? За "вывод картинки" отвечает matplotlib, а что вы туда будете писать - это ваше дело.
    Для того, что бы создать несколько картинок используется метод plt.subplots(.....), ну например создаем три картинки:

    fig, ax = plt.subplots(1, 3)

    Теперь у вас есть объект ax, и вы вольны писать в нужную вам "картинку":

    В первую:
    ax[0].imshow(....)

    В третью:
    ax[2].imshow(...)

    Во вторую:
    ax[1].plot()
    В произвольном порядке и произвольные типы графиков/картинок.

    Принцип, надеюсь понятен.
    А вообще-то рекомендую, до того, как "обучать нейросети" ознакомиться хотя-бы с азами Python и основных библиотек.
    Ответ написан
    Комментировать
  • Как новичку в IT попасть в Machine Learning?

    @dmshar
    Странно как-то выглядит вопрос.
    Какое отношение Лутц (очень хорошая книга, кстати) или "пару Ютуб каналов" (тут качество неизвестно и скорее всего сомнительно) имеет к машинному обучению. Эта область это сначала машинное обучение, а уж потом Python, C# или что-то там другое. Поэтому вопрос поставлен некорректно - если хотите что-то связанное с "исследовательской работой," то начинать надо именно с машинного обучения. И если будете стремиться на должность, связанную с МL, то требовать будут именно это, а уж опыт с Python - в придачу. Впрочем, есть шанс заниматься не Data Sсience, а Data Engineering - но это все-таки уже программирование, а не собственно машинное обучение, ну и там как раз одного Python тоже будет маловато и копать придется в сторону Computers Engineering .

    По части "изучить дополнительно" - есть несколько неплохих книг, с которых можно начать вхождение в ML "со стороны Python":

    Ван дер Плас. "Python для сложных задач. Наука о данных и машинное обучение".
    Джоши П. "Искусственный интеллект с примерами на Python".
    Коэльо Л.П. "Построение систем машинного обучения на языке Python"
    Pашкa С. Python и машинное обучение.
    Силен Д., Мейсман А. "Основы Data Science и Big Data. Python и наука о данных".
    Шолле Ф. "Глубокое обучение на Python"
    Мюллер А. "Введение в машинное обучение с помощью Python"
    и др.

    Посмотрите, почитайте, подумайте. Решите - ваше оно или нет, и по зубам-ли вам оно.
    Ответ написан
    4 комментария
  • Вопросы про свёрточная нейронная сеть?

    @dmshar
    Про с# и githab не скажу, но ответы на вопрос "Как такие сети выделяют изображения на картинке" - вы можете найти по приведенным ниже ссылкам.

    https://towardsdatascience.com/introduction-to-obj...
    https://towardsdatascience.com/object-detection-wi...
    https://towardsdatascience.com/object-detection-al...
    https://habr.com/ru/post/552298/
    https://towardsdatascience.com/custom-object-detec...
    https://www.kdnuggets.com/2021/10/real-time-image-...
    Ответ написан
    Комментировать