СистемыКомпьютернойМатематики
.pdfСистемы компьютерной математики - 2 семестр
Компьютерная математика
Python + Jupyter + математика – фундамент компьютерной математики для ML и Big Data
1.Математика - формальный язык и модели.
2.Python - язык для их реализации.
3.Jupyter Notebook - среда для интерактивного эксперимента, документации и обучения.
Определение: Компьютерная математика - экспериментальное исследование математических моделей с помощью кода
Python в среде Jupyter - это не просто язык программирования. Это универсальная среда для воплощения математических идей в код, идеально подходящая для исследований и машинного обучения.
1.Синтаксис как псевдокод – простота синтаксиса для записи математических выражений.
2.Экосистема для вычислений:
NumPy: Векторы, матрицы, линейная алгебра. SciPy: Научные вычисления, оптимизация.
Pandas: Таблицы, анализ данных (как Excel на стероидах). Scikit-learn: Готовые алгоритмы ML.
Многие другие библиотеки
3. Интерактивность работы с Python в среде формата Jupyter Notebook Библиотеки:
1.NumPy: Векторы, матрицы, линейная алгебра
2.SciPy: Научные вычисления, оптимизация
3.Pandas: Таблицы, анализ данных
1
4. Matplotlib: Визуализация, графики и диаграммы
import numpy as np # Базовая математика import pandas as pd # Данные
import scipy #Продвинутая математика import matplotlib.pyplot as plt # Визуализация
Не вся математика, а конкретные операции
Линейная алгебра & NumPy: Векторы, матрицы, умножение.
Математический анализ, оптимизация & SkyPi: Производные, градиенты, поиск минимума функции.
Теория вероятностей & Pandas: Распределения, среднее, дисперсия. 2D/3D графики & Matplotlib: Визуализация.
Определение: Ядро (Kernel) - вычислительный движок, который выполняет код, содержащийся в документе
Определение: Ячейка (Cell) - код или текст в разметке Markdown.
Стандарт языка Python - PEP8. Есть два подхода к форматированию - Змейка
(user_name) и Верблюд (ClassName).
Определение: Большие данные (Big Data)– большие массивы данных, отличающиеся главным образом такими характеристиками объем, разнообразие, скорость обработки и/или вариативность, которые требуют использования технологии масштабирования для эффективного хранения, обработки, управления и анализа.
Определение: Объём данных (data volume) – количественная характеристика данных, влияющая на выбор ресурсов для вычислений и хранения, а также на управление данными в процессе обработки.
Определение: Скорость обработки данных (data velocity) – скорость потока с которой данные создаются, передаются, сохраняются анализируются или визуализируются
2
Определение: Разнообразие данных (data variety) – диапазон форматов, логических моделей, временных шкал и семантики массива данных. Основные термины и понятия
Определение: Вариативность данных (data variability) – изменения в скорости передачи, формате или структуре, семантике или качестве массива данных.
Markdown
Определение: Markdown - это облегчённый язык разметки для форматирования текстовых документов.
3
4
<div class="alert alert-info"> <br><b>Ответ:</b></br>
Текст задания синий
</div>
Массивы NumPy
Скаляр, вектор, матрица, 3D матрица, тензор. Атрибуты массива:
Метод |
Назначение |
0D |
1D |
2D |
3D |
|
|
|
|
|
|
ndim |
Размерность |
0 |
1 |
2 |
3 |
|
|
|
|
|
|
shape |
Число элементов в |
() |
3 |
(3,3) |
(3,3,3) |
|
каждом измерении |
|
|
|
|
|
|
|
|
|
|
size |
Всего элементов |
1 |
3 |
6 |
27 |
|
|
|
|
|
|
5
Массив размером (4,5,2) - 
Math
Встроенные функции: -, +, /, *, //, %, **, abs(x), round(x,n), pow(x,y), divmod(x,y), min(), max(). Math: pi, e, inf, -inf, pow, sqrt, log(x,base), log10, log2, ceil, foor, trunc, round.
Функции NumPy
np.sum() - сумма массива. В качестве второго аргумента можно указать ось (axis=n). np.mean() - среднее значение массива. В качестве второго аргумента можно указать ось. Третий аргумент - тип выходных данных.
np.min() - минимальное значение массива. np.max() - максимальное значение массива. argmin() - индекс минимального значения массива. argmax() - индекс минимального значения массива.
argsort() - список индексов, по которым будет выполняться сортировка.
6
Функции модуля random
random.randint(a, b) - возвращает случайное целое число N в диапазоне [a, b]. В качестве третьего аргумента можно указать размер массива (size=(n,n)). random.uniform(a, b) - возвращает случайное число с плавающей запятой в [a, b]. random.seed() - фиксирует начальное значение генератора случайных чисел для повтора.
Введение в искусственный интеллект
Классическое понимание интеллекте - качественный показатель: 1. Умение приспосабливаться (принятие решений)
7
2.Умение обучаться через знания и опыт
3.Взаимодействие
Искусственный интеллект - способность компьютера решать те же задачи, что и человек.
Искусственный интеллект - комплекс технологических решений, позволяющий имитировать когнитивные функции человека.
Задачи:
1.Освобождение от рутины
2.Решения, когда нет времени
3.Устранение непонимания.
4.Автоматизация получения новых фундаментальных знаний.
Линейная алгебра и NumPy
Скаляр: Математика - классические буквы, коэффициент - греческие полные, статистика - змейка, вектор - буквы, матрица - заглавные буквы.
2D: A,B,C - общие, M,N - прямоугольные матрицы, I - единичная, D - диагональная, Z - нулевая, слово - прописные.
3D: Прописные множественные число. Матрицы специального вида: np.zeros((2,3))
np.eye(3)
np.ones((2,2))
np.diag([10,20,30])
np.random.rand(3,3)
np.arange(0,10,2)
np.linspace(0,1,5)
Операция |
Линейная алгебра |
Numpy |
Совпадает |
|
|
|
|
8
+ |
A+B поэлементно |
A+B |
Да |
|
|
|
|
- |
A-B поэлементно |
A-B |
Да |
|
|
|
|
* |
A*B матричное |
A*B поэлементно |
Нет |
|
|
|
|
\ |
Не определено |
A\B поэлементно |
Нет |
|
|
|
|
^ |
матричное |
A**k поэлементно |
Нет |
Матричная степень np.linalg.matrix_power(A,2)
Матричное умножение A@B
Обратная матрица np.linalg.inv(A)
Транспонирование np.transpose(A) A.T np.linalg.det(A)
np.allclose(A,B)
rtol - относительная погрешность. atol - абсолютная погрешность.
Транслирование
Растягивание массива до нужного размера. 2 массива совместимы, если их размеры одинаковые или один из размеров равен 1.
Нормализация и стандартизация данных
Нормализация и стандартизация являются методами изменения диапазонов значений - методы масштабирования. Масштабирование особенно полезно в машинном обучении, поскольку разные атрибуты могут измеряться в разных диапазонах, или значения одного атрибута варьируются слишком сильно. Например, один атрибут имеет диапазон от 0 до 1, а второй - от 1 до 1000.
Нормализация – метод масштабирования, который приводит к изменению диапазона данных без изменения формы распределения. Нормализация сохраняет
9
распределение данных и соотношения в исходных данных. Наиболее часто нормализаций приводит данные к диапазону [0;1].
Стандартизация – метод масштабирования, который изменяет диапазон данных и форму распределения данных (приводится к нормальному распределению со средним значением =0 и стандартным отклонением =1).
Методы масштабирования применяют на этапе подготовке данных к машинному обучению – этапе предобработки данных.
Методы нормализации данных: МИН-МАКС нормализация (MinMaxScaler)
Абсолютная МАКС-нормализация (MaxAbsScaler) Робастная нормализация (RobustScaler) Нормализация к единичной норме (Normalizer) Методы стандартизации данных: Z-преобразование (StandardScaler)
Наиболее часто нормализация применяется к атрибутам (столбцам). Методы
MinMaxScaler, MaxAbsScaler, RobustScaler, StandardScaler применяется к атрибутам или признакам (столбцам) данных.
Метод Нормализация к единичной норме (Normalizer) применяется к объектам наблюдения (строкам).
МИН-МАКС нормализация (MinMaxScaler) – метод нормализации, который преобразует данные таким образом, что все значения находятся в диапазоне от 0 до 1. где x – исходное значение, x_norm – нормализованное значение,
min(x) и max(x) – минимальное и максимальное значения в наборе данных соответственно.
10
