Онлайн решение матриц методом: Онлайн калькулятор. Решение систем линейных уравнений. Матричный метод. Метод обратной матрицы.

матричных методов | Coursera

Об этом курсе

21 209 последних просмотров

Методы математических матриц лежат в основе большинства методов машинного обучения и анализа табличных данных. Изучите основы матричных методов, включая умножение матрицы на матрицу, решение линейных уравнений, ортогональность и наилучшую аппроксимацию методом наименьших квадратов. Откройте для себя разложение по сингулярным значениям, которое играет фундаментальную роль в уменьшении размерности, анализе основных компонентов и уменьшении шума. Дополнительные примеры с использованием Python используются для иллюстрации концепций и позволяют учащимся экспериментировать с алгоритмами.

Гибкие сроки

Гибкие сроки

Сброс сроков в соответствии с вашим графиком.

Общий сертификат

Общий сертификат

Получите сертификат по завершении

100% онлайн

100% онлайн

Начните сразу и учитесь по собственному графику.

Средний уровень

Средний уровень

Часов на прохождение

Прибл. 7 часов на прохождение

Доступные языки

Английский

Субтитры: французский, португальский (европейский), русский, английский, испанский

Гибкие сроки

Гибкие сроки

Сброс сроков в соответствии с вашим графиком.

Общий сертификат

Общий сертификат

Получите сертификат по завершении

100% онлайн

100% онлайн

Начните сразу и учитесь по собственному графику.

Средний уровень

Средний уровень

Часов на прохождение

Прибл. 7 часов на прохождение

Доступные языки

Английский

Субтитры: французский, португальский (европейский), русский, английский, испанский

Инструктор

Daniel Boley

Профессор

Инженерные науки и инженерия

9,934 Ученики

1 . крупнейшие государственные исследовательские университеты в стране, предлагающие студентам, аспирантам и специалистам множество возможностей для учебы и исследований. Студенты кампусов в Миннеаполисе и Сент-Поле, расположенные в самом центре одного из самых ярких и разнообразных городских сообществ страны, получают выгоду от обширных партнерских отношений со всемирно известными медицинскими центрами, международными корпорациями, государственными учреждениями и учреждениями искусства, некоммерческими и общественными организациями. сервисные организации.

Reviews

4.1

Filled StarFilled StarFilled StarFilled StarStar

58 reviews

  • 5 stars

    55.50%

  • 4 stars

    20.18%

  • 3 stars

    9.17%

  • 2 звездочки

    7,33%

  • 1 звезда

    7,79%

ЛУЧШИЕ ОТЗЫВЫ ОТ МАТРИЧНЫХ МЕТОДОВ0004 от SJ 17 марта 2020 г.

Действительно предоставлен очень информативный и базовый материал. Мне понравилось, и я многому научился.

Это был полезный курс. У меня была возможность узнать о практическом применении матриц.

Filled StarFilled StarFilled StarFilled StarFilled Star

от UJ11 мая 2021 г.

Это была прекрасная возможность узнать больше о матрицах и их характеристиках

Посмотреть все отзывы

Часто задаваемые вопросы

    90 а задания?

  • Что я получу, купив Сертификат?

  • Доступна ли финансовая помощь?

Есть вопросы? Посетите Справочный центр для учащихся.

производительность — эффективный способ решения матричного уравнения в Python

спросил

Изменено 4 года, 5 месяцев назад

Просмотрено 3к раз

Прямо сейчас я использую numpy.linalg.solve для решения моей матрицы, но тот факт, что я использую его для решения 5000 * 1793) для решения матричного уравнения, но я никогда не думал, что это будет так медленно. Есть ли способ решить это быстрее в Python?

Мой код примерно такой, для решения уравнения BT * UT = BT*B a , где m количество тестов (в моем случае более 5000), B это данные матрица m*17956 , а u равно 1*m

.

 C = 0,005 # термин гиперпараметра для регулирования
I = np.identity(17956) # 17956*17956 единичная матрица
rhs = np.dot(BT, UT) # (17956*m) * (m*1) = 17956*1
lhs = np.dot(B.T, B)+C*I # (17956*m) * (m*17956) = 17956*17956
a = np.linalg.solve(lhs, rhs) # B.T u = B.T B a, найти a (17956*1)
 
  • питон
  • производительность
  • numpy
  • матрица

2

Обновление (2 июля 2018 г.): Обновленный вопрос касается влияния члена регуляризации и типа данных в матрицах. В общем, это может оказать большое влияние с точки зрения типов данных, для которых конкретный ЦП наиболее оптимизирован (как правило, AMD лучше с векторизованной целочисленной математикой, а Intel лучше с векторизованной математикой с плавающей запятой, когда все остальные вещи считаются равными), а наличие большого количества нулевых значений позволяет использовать библиотеки разреженных матриц.

Однако в данном конкретном случае изменения на главной диагонали (значительно менее 1% всех рассматриваемых значений) окажут незначительное влияние на время выполнения.

TLDR;

  • Час вполне разумен (кубическая регрессия предполагает, что на моей машине — бюджетном хромбуке — это заняло бы около 83 минут).
  • Предварительная обработка для создания слева и справа почти не занимает этого времени.
  • Вы не сможете решить именно эту проблему намного быстрее, чем с numpy.linalg.solve .
  • Если м мало, как вы предлагаете, и если B обратимо, вы можете вместо этого решить уравнение U.T=Ba через минуту или меньше.
  • Если это часть более крупной проблемы, этот дорогостоящий промежуточный шаг можно упростить, отказавшись от математической основы.
  • Узкие места в производительности действительно следует устранять с помощью профилирования, чтобы выяснить, какой шаг вызывает проблемы.
  • Поскольку это исходит из реальных данных, вы можете обойтись меньшим количеством функций (либо напрямую, либо с помощью шага сокращения, такого как PCA, NMF или LLE), в зависимости от конечной цели.
  • Как упоминалось в другом ответе, если матрица достаточно разреженная, вы можете добиться большого эффекта с помощью разреженных процедур линейной алгебры (многие источники данных для обработки естественного языка подобны этому).
  • Поскольку вывод представляет собой одномерный вектор, я бы использовал np.dot(U, B).T вместо np.dot(B.T, UT) . Транспозиции в этом плане аккуратны. Это позволяет избежать транспонирования на большой матрице, такой как B
    , хотя, поскольку у вас есть кубическая операция в качестве доминирующего шага, это не имеет большого значения для вашей задачи.
  • В зависимости от того, нужны ли вам исходные данные и имеют ли задействованные матрицы какие-либо другие специальные свойства, вы можете возиться с параметрами в scipy.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *