Рубрики
Без рубрики

Как я изучаю машинное обучение – неделя 4: Python и Numpy (часть вторая)

На этой неделе мы увидим последнюю часть всех функций, которые нам могут понадобиться, чтобы использовать Numpy в нашем Мачи … Tagged с помощью Python, MachineLearning, программирования, AI.

Как я изучаю машинное обучение (11 серии деталей)

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

оглавление:

  • Просмотр производительности операции
  • Изменение и транспонирование
  • Умножение матрицы
    • По элементу
    • Скалярное произведение
  • Операторы сравнения
  • Сортировка массивов
    • Поиск минимального значения массива
    • Поиск максимального значения массива
  • Поиск максимального значения массива
  • Последние мысли

Просмотр производительности операции

В Python, используя Numpy, а также на других языках, у нас будет много способов сделать то же самое; В Python у нас есть сумма Функция и с Numpy мы должны np.sum функция тоже.

Как вы можете видеть оба возврата одного и того же результата, оставляя вопрос:

Когда функция лучше другого?

NUM является официальной функцией Python, чтобы суммировать списки Python, в то время как функция NP.SUM является официальной функцией, чтобы суммировать Numpy Arrays , которые являются тем же концептуально, но не тогда, когда машина должна выполнить расчет. Лучший способ действовать – использовать функцию Python для типов данных Python (в данном случае списки) и функций Numpy для типов данных Numpy (массивы и типов Numpy). Но еще более важное различие, кроме производительность из этих двух функций. С некоторыми специальными функциями Numpy (характеризуются % в начале), мы можем отобразить время что машина взяла на себя для выполнения операций, в данном случае мы будем использовать %timeit Анкет Сначала мы создадим большой массив:

Для затем использования функции Timeit:

Используя Google Converter, мы видим, что сумма Python заняла 2,28 миллисекунд, в то время как Numpy Sum заняла 13 микросекунд, будучи более чем в 500 раз быстрее Анкет

Изменение и транспонирование

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

Не давайте попробуем умножить их вместе:

Ошибка говорит, что два массива с разными формами не могут быть трансляция вместе. Если мы пойдем на Numpy документация Мы видим, что общее правило для вещания говорит:

При работе на двух массивах Numpy сравнивает свои формы по элементу. Он начинается с зацепленных (то есть правых) размеров и работает влево. Два измерения совместимы, когда

  • они равны или
  • один из них 1

Это означает, что мы должны RESHAPE Наш массив, и мы можем сделать это с Numpy RESHAPE Функция:

Теперь, когда первый массив соответствует основному правилу вещания, мы можем умножить два массива вместе:

Обратите внимание, что функция RESHAPE следует за Точно Правила и что это всего лишь пример, массив нельзя всегда изменить во что -то другое.

Теперь, когда мы видели функцию RESHAPE, давайте посмотрим на транспонирование один.

Как мы можем функционировать транспонирование, которую мы называем «Т», просто обменивались осью массива между ними.

Оба RESHAPE и транспонирование очень полезная функция, которая будет очень удобна, когда нам придется сделать умножено два – или более – матрицы

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

Умножение матрицы на один номер или одномерный массив довольно просто, но Умножение матрицы на другую матрицу это то, что будет немного сложно понять, но очень важно. Есть два способа умножить массив друг для друга:

Элемент мудрый

Умножение элемента очень проще и может быть сделано только между массивами одного размера:

И мы можем сделать это с функцией Numpy:

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

ПРИМЕЧАНИЕ. В следующих примерах есть ошибка в матрице: у нее 5 вместо 4 и наоборот. Другой специфичен для матриц, и если вы не понимаете это с первой попытки, не волнуйтесь, просто, если вы понять в чем дело.

Но это, на первый взгляд, все еще может запутаться. Посмотрим на это с некоторыми цветами:

Как вы можете видеть, мы взяли первый массив с матрицей с «1», «2» и «3» и умножили его для «a», «b» и «c». Это обычно называют Метод водопада Анкет Вы можете понять, почему просмотр анимации Здесь Анкет

Как правило, чтобы умножить две матрицы вместе, они нужно быть выровненным . Давайте посмотрим, что произойдет, если мы попытаемся использовать точечный продукт на матрицах, которые умножены по элементу, используя точка Функция:

Как видите, они не выровнен Анкет Две матрицы выровнены, когда Строка O первого такая же, как столбец другого , или же: m x n * n x p Анкет Таким образом, мы знаем, что результатом будет матрица M x P:

m x n * n x p = m x p
that in our case could be:
3 x 2 * 2 * 3 = 3 * 3

Это означает, что две матрицы могут быть умножены. В нашем случае мы должны транспонировать ось :

В нашем случае мы получили матрицу 2 x 2, как мы уже видели:

2 x 3 * 3 x 2 = 2 x 2

Именно так, как мы ожидали. Если бы мы преодолели первую матрицу, результат была бы матрицей 3 x 3. Чтобы увидеть точечный продукт из Математический Точка зрения вы можете прочитать Здесь Анкет

Операторы сравнения

Между массивами и матрицами мы можем даже провести сравнение. Результатом будет еще один логический множество. Посмотрим пример:

Мы можем использовать весь логический оператор, который мы использовали в нашем программировании, но важно знать, что сравнение следует тем же правилам вещания:

Сортировка массивов

Numpy предлагает различные функции для поиска элемента и для сортировки массива. Наиболее распространенный способ – сортировка , такого рода при применении на матрицу каждый ряд этого.

Поиск минимального значения массива

Чтобы найти минимальное значение массива Numpy, предлагает Аргмин функция, которая возвращает Индекс самого низкого значения:

Поиск максимального значения массива

Если найти минимум, мы используем Argmin, чтобы найти максимум, который мы находим Argmax :

Подробнее о Аргмине и Argmax

Обе функция давайте введите Ось массива, чтобы мы могли найти максимум или минимум не всего массива, а всех столбцов или рядов:

При установленной оси на 0 она найдет максимум из всех столбцов, если установить на 1 из всех строк.

Последние мысли

Это и на прошлой неделе мы увидели библиотеку Numpy, чтобы манипулировать массивами и матрицами, наборами данных, которые у нас есть в машинном обучении. На следующей неделе мы увидим Matplotlib to визуализировать Наши данные, чтобы затем сосредоточиться на чем -то более практичном. Если у вас есть какие -либо сомнения, не стесняйтесь оставить комментарий.

Как я изучаю машинное обучение (11 серии деталей)

Оригинал: “https://dev.to/gabrieleboccarusso/how-i-am-learning-machine-learning-week-4-python-and-numpy-part-two-4co4”