Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8707.pdf
Скачиваний:
3
Добавлен:
25.11.2023
Размер:
1.83 Mб
Скачать

<

>

* * = * ( )

Определение 2.1 (Матрица Грама). Матрицу попарных скалярных произведений базисных векторов называются матрицей Грама: = * . Также называется ковариационной матрицей параметров x: ( ).

Если базисные функции линейно-независимы на множестве узлов, то и () ̸= 0и нормальная система имеет единственное решение.

Если столбцы матрицы X (вектора значений базисных функций) не просто линейно-зависимы, а ортогональны, то матрица = * будет диагональной.

3Пример построения линейной регрессии

Для решения системы уравнений воспользуемся библиотекой numpy, модулем linalg. Для визуализации будем пользоваться библиотекой matplotlib:

import numpy as np

import matplotlib.pyplot as plt plt.style.use(’ggplot’)

Сгенерируем данные следующим образом. В качестве восстанавливаемой функции возьмем параболу и добавим случайные ошибки в интервале (− ; + ) (см. рис. 1):

^ = 2 − 5 * + 2 + , = 1.. .

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

Постулируем модель:

( ) = 0 + 1 * + 2 * 2.

Найдем ее коэффициенты методом наименьших квадратов, составив нормальное уравнение. Для этого:

1.Сформируем матрицу значений базисных функций X. Модель содержит три базисные функции. Поэтому матрица Вандермонда будет иметь три столбца. Строк в ней будет столько,

«

5

»

<

>

Рис. 1: Сгенерированные экспериментальные данные; пунктиром отмечена зависимость, использованная для генерации ( [1])

сколько точек мы имеем:

 

1

1

1

 

 

 

1

0

0

 

 

 

1

2

4

 

 

 

 

 

 

 

=

1

3

9

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

1 4 16

 

 

 

 

 

 

 

 

1 5 25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 6 36

 

 

 

 

 

 

 

2. Вычислим матрицу Грама = * и правую часть нормальной системы уравнений * :

 

7

21

91

 

 

=

21

91

441

 

;

 

 

 

 

 

91

441

2275

 

1.6

* = 29 ,

247.6

3.решим нормальную систему уравнений:

* * = *

«

6

»

<

>

2.49

= −4.96 ;

0.97

4.проанализируем полученную линейную регрессию; вычислим значения регрессионной зависимости в узлах

= *

оценим критерии ошибки модели MSE и MAE

= −

Оценим среднеквадратическую ошибку (Mean Square Error)

= ( )2)/ ( )

=0

MSE=0.256

Оценим среднюю абсолютную ошибку (Mean Absolute Error)

= ( . ( ))/ ( )

MAE=0.406

5.построенную модель ( , ) теперь можно использовать для прогноза на новых данных. например, можно построить график модельной функции и сравнить его с графиком исходной функции, использованной для генерации точек (см. рис. 2)

При построении линейных регрессионных зависимостей с большим количеством базисных функций и большой выборкой матрица нормальной системы может быть плохо обусловленной, так как

( ) = ( ) * ( ). Поэтому на практике эти системы уравнений не решают, а используют методы оптимизации для решения задачи минимизации квадрата ошибки:

|| * − ||22 → .

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

На помощь приходит регуляризация, добавление дополнительного слагаемого в минимизируемую функцию.

«

7

»

<

>

Рис. 2: Сравнение регрессионной зависимости, построенной по точкам (синяя сплошная) и зависимости, использованной для генерации данных (зеленым пунктиром)

4Пример неустойчивости метода НК

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

Пример 4.1 (Восстановление состава смеси по её кривой растворимости). Кривая растворимости смеси из (m+1) компонентов подчиняется модели вида:

( ) = 0 * (− 0 * ) + 1 * (− 1 * ) + ... + * (− * )

где - это константа растворимости i-го компонента.

Смоделируем растворение смеси из 5 компонентов. Зададим их константы растворимости: kvect = np.array([0.9, 0.6, 0.4, 0.2, 0.1])

и сформируем 5 базисных функций с этими k - константами растворимости

(− 0 * ), (− 1 * ), (− 2 * ), (− 3 * ), (− 4 * )

Задача: по известным данным об оставшейся массе смеси (концентрации) в растворе определить/восстановить состав смеси.

Сгенерируем данные на основе следующего состава веществ

= . ([3, 2, 5, 0.0, 0.0]),

т.е. двух последних компонентов нет в смеси, а массы остальных составляют 3,2 и 5 грамм.

«

8

»

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]