Ответы пользователя по тегу Математика
  • Модель F(x) с разрывом типа «скачок»?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну вообще если интегрировать функцию с разрывом типа скачок. То это сумма определенных интегралов . То есть в конечном счете точка x0 ни чем не будет отличаться от других P(X=x0) = 0. Будет равняться нулю, как и в любой другой отдельно взятой точке.

    Случайные величины, используют для моделирования ситуаций. Ну например рынок акций. Где потенциальные скачки это новости. На которых цена акции совершает скачок.
    Ответ написан
  • О независимости событий?

    Maksim_64
    @Maksim_64
    Data Analyst
    654c84d154555722205620.png

    Смотри если A и B имеют общие исходы это еще не означает что они зависимы, знание что событие произошло должно изменять вероятность события А. Поменяй условие задачи, сделай не восьмигранник, а кубик. Омега будет {1,2,3,4,5,6}, A = {не четные}, B = {больше или равно 4}. A и B будет {5}. далее проделай все тоже самое, что я в ответе, и в этом случае они будут зависимыми.
    Ответ написан
    3 комментария
  • Почему вектор перемещения не поддается правилу треугольника при вычитании векторов?

    Maksim_64
    @Maksim_64
    Data Analyst
    Вычитание векторов это тоже сложение только вычитаемый вектор умножается на -1 (меняет направление). То есть a - b = a + (-b), где a и b это векторы. Далее хоть методом треугольника, хоть методом параллелограмма результат будет один и тот же.

    Если смотреть на твой график то AB НЕ ЯВЛЯЕТСЯ разницей между r0 и r. У него будут отрицательные значение по оси Y и начинаться он будет в 0.
    Ответ написан
    Комментировать
  • Как и где учить математику, если вкатываешься в нейросети?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну смотри если речь о нейронных сетях именно то как таковой сложной математики там нет. Что такое нейронная сеть это последовательность слоев. Каждый слой представляет из себя нелинейную геометрическую трансформацию в многомерном пространстве. Для лучшего понимания и изучения можешь взять двумерные данные. Взять четыре точки квадрат с координатами. У тебя получится матрица A размерность (4, 2). Так что происхдит в скрытом слое.

    relu(dot(A, W) + b) - все как бы это не звучало но это ровно то что происходит внутри скрытого слоя. Мы инициализируем случайную матрицу весов размерностью которая подходит для математического умножения матриц. При математическом умножении матриц порядок важен и правило следующее количество колонок в первой матрице должно совпадать с количество рядов во второй матрице. Если матрица A у нас (4,2), то матрица весов у нас должна быть (2, любое значение) пусть будет 16 например. И результатом будет матрица (4, 16)
    Например
    A = np.array([[0,0],
                  [0,2],
                  [2,2],
                  [2,0]])
    W = np.random.uniform(-1,1,size=(2,16)
    result = np.dot(A,W)
    Здесь мы осуществили геометрическую трансформацию, мы получили представление данных в 16 мерном пространстве. Далее мы просто прибавляем также случайно инициализированный вектор b в подходящей размерности и все. Все эти трансформации линейны. Не линейность достигается функцией активации например relu то есть весь наш код будет
    import numpy as np
    
    A = np.array([[0,0],
                  [0,2],
                  [2,2],
                  [2,0]])
    W = np.random.uniform(-1,1,size=(2,16))
    b = np.zeros(16)
    result = np.dot(A,W) + b
    np.maximum(result,0)
    Все теперь у нас не линейная геометрическая трансформация. Затем посредством обратного распространения ошибки будет находится полезные геометрические трансформации, и будет происходит настройка значений (параметров модели) в наших матрицах весов (которые минимизируют loss функцию), то есть обучение модели. Это то что происходит в одном слое, последний слой там не много по другому, в зависимости от задачи и размерности которую мы хотим получить.
    Что выучить. Линейная алгебра Khan Academy. Обратное распространение ошибки осуществляется за счет подсчета градиента. Лучше начать с Single Variable Calculus курсы Calculus AP и ВС там же Khan Academy, и затем Multivariable Calculus Khan Academy. Все для нейронных сетей этого хватит, статистика как таковая для нейронных сетей на прямую не требуется, скорее для общего понимания и косвенно там выборку осуществить. Эти курсы шикарные и их достаточно для нейронных сетей. Для других алгоритмов их будет не достаточно. Ну и надо иметь ввиду, что у нас не обязательно математическое умножение тенсоров второго порядка (матриц), у нас могут быть конволюции. Пример что я привел это самый распространенный случай. Так что основы линейной алгебры, дифференцирование функции одной переменной затем многих (именно они и нужны), не пытайся сразу в дифференцирование функции многих переменных иначе не будешь понимать что к чему.
    Ответ написан
    Комментировать
  • Как посчитать процент случаев, когда второе количество больше на 25%?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если ПЕРВОЕ КОЛИЧЕСТВО = ВТОРОЕ КОЛИЧЕСТВО / 1.25, то второе количество больше в ТОЧНОСТИ на 25%.
    Если ПЕРВОЕ КОЛИЧЕСТВО <= ВТОРОЕ КОЛИЧЕСТВО / 1.25, то второе количество больше на 25% ИЛИ более.
    Это по поводу одной проверки в зависимости от условия (строго равно или (больше или равно)). Разберись какое из условий использовать.

    Инициализируешь переменную-счетчик которая будет считать количество условий отвечающих условию выше. (count = 0), если условие истинно count = count + 1. Затем после обхода всех условий (count / N) * 100. где N это общее количество проверок.

    Откуда взялось 1.25. Как нам увеличить число на определенный процент? ЧИСЛО * (1 + ПРОЦЕНТ / 100.) В нашем случае процент 25. Упрощая получим ЧИСЛО * 1.25 = ЧИСЛО УВЕЛИЧЕННОЕ на 25%. Но у нас по условие даны два количества и нужно проверить является ли второе больше первого на 25%. Соответственно получаем то что я написал в сам начале.
    Ответ написан
    Комментировать
  • Как перевести значение 1...8 в 1...100, но в обратном порядке?

    Maksim_64
    @Maksim_64
    Data Analyst
    У вас есть ответы на питоне, так что вы понимаете питон так что написал коротенькую функцию
    def transform_range(old,new,t):
        a,b = old
        c,d = new
        return c + ((d-c) / (b-a)) * (t - a)
    print(transform_range([1,9],[100,1],1))
    Ответ написан
    Комментировать
  • Как рассчитать экспоненциальное скользящее среднее с учётом различных по длине временных интервалов?

    Maksim_64
    @Maksim_64
    Data Analyst
    Без заполнения отсутствующих данных решения нет и быть не может. Экспоненциальное скользящее среднее дает меньше и меньше веса для данных которые отдалены по времени и соответствено большие веса для последних дат (в пределах окна). То есть это всего лишь один из методов нахождение среднего с весами для каждой точки данных.

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

    Все остальное вы верно делаете стандартный слаживающий фактор все так, затем он будет использован для подсчета каждого индивидуального веса w_i = (1 - alpha)^i для каждой ваше точки данных в пределах окна. Просто вы ищете математического решения там где его нет, это вопрос как правильно заполнить недостающие данные.
    Ответ написан
  • Почему функция y=x^x начинает возрастать, начиная с аргумента 1/e?

    Maksim_64
    @Maksim_64
    Data Analyst
    Потому что точка (1/e, f(1/e)), это критическая точка. Критическая точкой называется точки где функция либо не дифференцируема, либо производная функции равна нулю.
    Соответственно наша функция, y = x^x, ее производная будет x^x*(ln(x) + 1). далее приравниваем производную к нулю x^x*(ln(x) + 1) = 0 и решаем для x. Решением данного уравнения будет 1/e Подставляем 1/e в исходное функцию и получаем это вы уже нашли округленно 0.692. (1/e,0.692) - Критическая точка. А в критических точках функция меняет свое направление, то есть если до этого шла на убавление проходя через критическую точку она пойдет на возрастание и наоборот.
    И так ответ Потому что (1/e, f(1/e)) Является критической точкой.
    Также далее посредством тестов можно найти является ли критическая точка локальным минимумом или максимум в нашем случае глобальным потому что она одна. В данном случае тест легко покажет что это точка глобальный минимум. А минимум слева убывает проходит через критическую точку и начинает возрастать.
    ДОПОЛНЕНИЕ К ответу.
    Выходит, что до 1/e функция убывает, а после - возрастает. Откуда берется такая связь?

    Здесь дело в том что данная критическая точка как указал выше является минимумом в контексте вашего вопроса даже не важно глобальным или локальным. Что бы критическая точка называлась минимум производная функции должна быть отрицательной слева от критической точки и положительной справа от критической точки если подставим в производную (ее я привел в самом начале) число не много меньшее чем критическая точка то мы получим отрицательное значение (что значит функция убывает) а если не много большее то положительное значит (функция возрастает). Поскольку функция убывает слева от критической точки и возрастает после нее это и есть определение минимума. Мы сейчас математическим методом нашли минимум. То есть ваша функция убывает до критической точки и возрастает после нее. Потому что точка является минимумом (в данном случае глобальным). Так будет не много точнее.
    Ответ написан
    Комментировать
  • Как рассчитать отступ по оси Х?

    Maksim_64
    @Maksim_64
    Data Analyst
    находим коэффициент пропорциональности сторон назовем k
    k = высота / ширина = 2320 / 3855 = 0.601
    новая высота (она известна) / новую ширину = 0.601
    800 / x = 0.601
    новая ширина = x = 1331
    Находим коэффициент уменьшения ширины:
    старая ширина * a = 1331
    3855 * a = 1331
    a = 0.345
    находим координату X для важной точки 864 * 0.345 = 298
    Ответ написан
    Комментировать
  • Как правильно обработать статистику опроса о маршрутах транспорта?

    Maksim_64
    @Maksim_64
    Data Analyst
    Первое надо быть уверенными что дизайн опроса был составлен согласно математической статистике. Существует несколько направлений случайно выборки.
    Например:
    1. простая случайная выборка (каждый имеет равный шанс быть выбранным для участия в опросе)
    2. случайная выборка где предварительно участники опроса были разбиты на группы например по возрасту, полу, и.т.п и веса в выборке становятся процентами размера группы от общего количества.
    3. Кластерная например (это когда люди разбиты на группы и потом еще и группы выбираются случайно)
    и т.д.
    Если эксперимент не был организован как нужно то интерпретировать нечего.
    Если я вас правильно понял то выборка была произведена через сайт Госуслуги.
    Авторизация была через Госуслуги, поэтому исключаем вопрос накрутки и подтасовки для данной ситуации..

    Я не считаю данную выборку репрезентативной (она лишь может служить одной из групп). Задаете вопрос на улице (одна группа) на Госуслугах (другая) может опрос по телефону кого нет на Госуслугах (третья).
    Одна и целей статистики это делать выводы имея данные относительно малой группы участников эксперимента о большой. И что бы это осуществить выборка должна быть репрезентативной. В данном случае "большая" группа это люди зарегистрированные на Госуслугах жители Ставрополя а цель делать выводы о мнении Жителей города Ставрополя пользующихся общественным транспортом. То есть дизайн эксперимента построен не корректно и выводов делать нельзя.

    Если я вас не правильно понял и дизайн эксперимента составлен корректно. Какие возможны выводы.
    Самый очевидный 48 маршрут самый популярный (востребованный) 24% процента респондентов проголосовали за него (независимо от результата лучший или худший) то есть он самый востребованный это то место где должна быть проведена дополнительная работа.
    По поводу гипотез да можно у вас есть дистрибуция данных т.е. все необходимые статистики для соответствующих тестов легко находятся из этих данных.
    По поводу весов опять таки да при условии что респонденты были разбиты на группы.
    Но это все актуально если дизайн эксперимента сделан корректно. По этому поводу я высказался вначале.
    Ответ написан
    2 комментария
  • Как узнать изначальную стоимость из стоимости с комиссией?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Используете более удобный способ подсчета стоимости с комиссией: 78 * (1 + 0.03) = 78 * 1.03 = 80.34
    2. Теперь составляем элементарное школьное уравнение
    x * 1.03 = 80.34
    x = 80.34 / 1.03
    x = 78
    Ответ написан
    Комментировать
  • Генерировать числа с заданной вероятностью?

    Maksim_64
    @Maksim_64
    Data Analyst
    приведу пример кода на python с использованием библиотеки numpy
    import numpy as np
    sample_space = [0,1,2,3,4,5,6]
    probabilities = [0.3,0.2,0.05,0.05,0.1,0.15,0.15]
    n = 20
    result = np.random.choice(sample_space,size=n,p=probabilities)
    print(result)

    sample_space - лист откуда будет производится выборка
    probabilities - лист соответствующих вероятностей (0 с вероятностью 0.3, 1 с вероятностью 0.2, и.т.д) вероятности я взял свои, вы поставите свои главное чтобы вероятности в сумме были 1.
    n - количество сгенерированных чисел для примера я взял 20, вы зададите сколько ва нужно.
    функция choice также имеет параметр replace по умолчанию установленный в True он регулирует может ли ранее выбранный элемент, быть выбранном снова, в нашем случае могут ли быть повторения при выборке из sample_space (по умолчанию может).
    Насчет нормирования вероятностей, такое возможно только если n=2, или если есть дополнительная информация позволяющая создать систему уравнений. В вашем случае это невозможно например
    возьмем нашу дистрибуцию мы имеем 0 с вероятностью 0.3, мы меняем ее 0.2, у нас будет существовать бесконечное количество сценариев как мы можем раскидать 0.1 на остальные 6 элементов. Уникального решения не существует.
    Ответ написан