Линейная алгебра для науки о данных с использованием Python

Применение Python в линейной алгебре для науки о данных

Изображение с Pixabay

Линейная алгебра, отрасль математики, очень полезна в науке о данных. Мы можем математически оперировать большими объемами данных, используя линейную алгебру.

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

Теперь, когда мы знаем, как используется линейная алгебра, давайте начнем! Мы начнем с основ – ВЕКТОРОВ

Векторы

«В математике и физике вектор – это термин, который говорит о некоторых величинах, которые нельзя выразить одним числом, или о элементах некоторых векторных пространств». [1]

[1] – это определение, которое доступно на Википедии. Большинство людей понимают это, но для упрощения можно сказать, что вектор:

Это термин, который относится к величине, имеющей как величину, так и направление.

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

Размерность вектора определяется количеством числовых элементов в этом векторе.

Пример: Вектор с 4 элементами будет иметь размерность четыре.

Величина вектора вычисляется по формуле:

Изображение от автора

Теперь пример для лучшего понимания.

Вопрос: Мяч летит через воздух, и даны его скорости по осям x, y и z в стандартной прямоугольной системе координат. Значения компонент скорости равны: x = -12, y = 8, z = -2. Преобразуйте скорости в вектор и найдите общую скорость мяча.

Решение:

Изображение от автора

Применение векторов с использованием Python:

Numpy массивы – это n-мерные структуры данных массивов, которые можно использовать для представления как векторов, так и матриц.

import numpy as np v = np.array([1,2,3,4,5]) #вектор

Основные операции с векторами:

Скалярное умножение:

Изображение от автора

Пример с использованием Python:

import numpy as np A = np.array([1,2,3,4]) #вектор print(A*4) #скалярное умножение

Сложение и вычитание векторов:

Изображение от автора

Пример с использованием Python:

import numpy as np A = np.array([1,2,3,4]) #вектор1 B = np.array([-4,-3, -2, -1]) #вектор2 print(A+B) #сложение векторов print(A-B) #вычитание векторов

Скалярное произведение векторов:

Скалярное произведение принимает векторы равных размерностей и возвращает одно скалярное значение путем сложения произведений соответствующих компонент векторов.

Формула выглядит следующим образом

Изображение автора

Скалярное произведение является коммутативным и дистрибутивным.

a.b = b.ca.(b+c) = a.b + a.c

Полученное скалярное значение представляет, насколько один вектор входит в другой.

Если два вектора перпендикулярны, то их скалярное произведение равно 0, так как ни один не входит в другой. Скалярное произведение также может использоваться для нахождения величины вектора и угла между двумя векторами.

Изображение от cuemath.com

Давайте рассмотрим несколько примеров скалярных произведений.

Изображение автора

Пример на Python для скалярного произведения:

import numpy as np A = np.array([1,2,3,4]) #вектор1 B = np.array([-4,-3, -2, -1]) #вектор2 print(np.dot(A, B)) #скалярное произведение

Пример для нахождения угла:

Изображение автора

Матрицы:

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

Изображение автора

Выше мы также показываем, как получить доступ к элементам матрицы. Например, A(1,2) – это элемент в первой строке и втором столбце.

Пример использования матрицы на Python:

import numpy as np A = np.array([[1,2],[3,4]]) #матрица print(A[1,1]) #доступ к элементам матрицы А

Операции с матрицами:

Сложение и вычитание матриц:

Можно выполнять эти операции, если две матрицы имеют одинаковую форму.

Изображение автора

Пример с использованием Python:

import numpy as np A = np.array([[1,2],[3,4]]) #matrix1 B = np.array([[-3,-2],[-4,-5]]) #matrix2 print(A+B) #Сложение print(A-B) #Вычитание

Умножение матриц:

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

Если у матриц размерность m x n и k x l. Если n = k, тогда только мы можем выполнить умножение.

Изображение от автора
Изображение от автора

Пример с использованием Python:

Есть два способа сделать это. Один – использовать символ «@», а другой – использовать .matmul() из модуля numpy

import numpy as np A = np.array([[1,2],[3,4]]) #matrix1 B = np.array([[-3,-2],[-4,-5]]) #matrix2 print(np.matmul(A, B)) print(A@B)

Оба оператора выводят одинаковый результат.

Специальные матрицы:

Существует особенно 3 типа специальных матриц.

Матрица единичного порядка:

Квадратная матрица, у которой диагональные элементы равны 1, а остальные – 0. Любая матрица, умноженная на единичную матрицу, даст исходную матрицу.

Изображение из Википедии

В Python мы можем создать единичную матрицу, используя метод .eye() модуля numpy

import numpy as np identity = np.eye(4) #создает матрицу размером 4x4.

Транспонированная матрица:

Она вычисляется путем перестановки строк и столбцов матрицы. Обозначается буквой «T»

Изображение из Википедии

В Python мы можем использовать .T для транспонирования матрицы

import numpy as np A = np.array([[1,2],[3,4]]) #matrix A_trans = A.T

Перестановочная матрица:

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

Изображение из Википедии

Чтобы поменять строки в матрице A, мы умножаем матрицу перестановки P слева (PA). Чтобы поменять столбцы, мы умножаем матрицу перестановки P справа (AP)

Изображение автора

Нажмите здесь, чтобы узнать, как реализовать это на Python.

Линейная система в матричной форме:

Чрезвычайно полезное применение матриц – решение систем линейных уравнений.

Давайте посмотрим на пример.

Изображение автора

Мы запишем эти уравнения в виде матриц, показанных ниже.

Изображение автора

Нашей конечной целью является представление этого в виде Ax = b

Изображение автора

Мы можем записать Ax = bкак [A|b]

Изображение автора

С помощью подмодуля linalg из NumPy мы можем это сделать.

Пример:

Изображение автора

Мы преобразовали эту систему линейных уравнений в матрицы.

A = np.array([[1,4,-1],[-1,-3,-2],[2, -1, -2]]) b = np.array([-1,2,-2]) x, y, z = np.linalg.solve(A, b)

Обратная матрица:

«В линейной алгебре n-на-n квадратная матрица A называется обратимая (также невырожденная или несингулярная), если существует n-на-n квадратная матрица B, такая что AB = BA = I». [2]

[2] Википедия

Как упоминалось ранее, произведение обратной матрицы на саму себя равно единичной матрице. Не все матрицы имеют обратную матрицу. Те, у которых ее нет, называются сингулярными матрицами.

Пример с помощью Python:

import numpy as np A = np.array([[1,2],[3,4]]) print(np.linalg.inv(A))

Разное:

  • мы можем создать матрицу или вектор, состоящий из нулей, используя .zeros() из numpy

Пример:

import numpy as np print(np.zeros((3,2)) #печатает матрицу размером 3x2.

  • «норма» вектора можно найти с помощью подмодуля linalg из NumPy.

Пример:

import numpy as np A = np.array([2,-4,1]) A_norm = np.linalg.norm(A) #гивес 4.5825

Вывод:

В этом блоге мы узнали:

  • Что такое матрицы и векторы.
  • Проводимые над ними операции.
  • Реализация с использованием модуля NumPy в Python.
  • Мы также увидели различные типы матриц.

Вот и все, ребята. Надеюсь, вам это поможет, если да, то пожалуйста подписывайтесь на меня в LinkedIn.

Если вам нравится моя работа, вы можете угостить меня чашкой кофе: dataguy6@ybl

Ознакомьтесь с моими последними работами:

DagsHub – правильный выбор для Data Scientists

Лучший способ начать и сохранить ваши проекты по Data Science!

VoAGI.com

Лучшие ресурсы для изучения Data Science

Вы планируете изучать Data Science?🤩 Но не знаете, с чего начать и как учиться?😫 Не волнуйтесь, я помогу вам…

VoAGI.com