Дано набір даних D={(X1,Y2),…,(XN,YN)}, наприклад Xi і Yi є безперервними. Мета «лінійної регресії» полягає в тому, щоб знайти найкращу лінію, яка відповідає цим даним.
Іншими словами, ми хочемо створити модель:
y^=a∗0+a∗1.x∗1+⋯+a∗p.x_p
де p — кількість вимірів змінної X.
У цій статті ми побачимо, як вирішити цю проблему за трьома сценаріями:
Коли X є одновимірним, тобто p=1.
Коли X є багатовимірним, тобто p>1.
Використання градієнтного спуску.
X є одновимірним (звичайний найменший квадрат)
Модель, яку ми хочемо створити, має форму:
y^=a∗0+a∗1.x
Пам’ятайте, що метою лінійної регресії є пошук лінії, яка найкраще відповідає даним. Іншими словами, нам потрібно мінімізувати відстань між точками даних і лінією.
(a∗0^,a∗1^)=(a∗0,a∗1)argmin∑∗i=1N(y∗i−y∗i^)2
=(a∗0,a∗1)argmin∑∗i=1N(y∗i−(a∗0+a∗1.x∗i))2
Покладемо:
L=∑∗i=1N(y∗i−(a∗0+a∗1.x_i))2
Щоб знайти мінімум, нам потрібно розв’язати наступні рівняння:
У цьому випадку Xi більше не є дійсним числом, а натомість це вектор розміру p:
X∗i=(X∗i1,X∗i2,…,X∗ip)
Отже, модель записується так:
y^=a∗0+a∗1x∗1+a∗2x∗2+⋯+a∗px_p
або його можна записати в матричному форматі:
Y^=X.W
де:
Y має форму (N,1).
X має форму (N,p).
W має форму (p,1): це вектор параметрів (w1,w2,…,wp).
Подібно до першого випадку, ми прагнемо мінімізувати таку кількість:
W^=Wargmin∑∗i=1N(y∗i−y_i^)2
Знову поставимо:
L=∑∗i=1N(y∗i−y_i^)2
=(Y−XW)T(Y−XW)
=YTY−YTXW−WTXTY+WTXTXW
=YTY−2WTXTY+WTXTXW
Оскільки ми хочемо мінімізувати L відносно W, ми можемо ігнорувати перший член "YTY", оскільки він не залежить від W, і давайте розв’яжемо таке рівняння:
∂W∂(−2WTXTY+WTXTXW)=0
−2XTY+2XTXW^=0
W^=(XTX)−1XTY
Використання градієнтного спуску
Ось формулювання алгоритму градієнтного спуску:
w∗n+1=w∗n−lr×∂w_n∂f
Тепер все, що нам потрібно зробити, це застосувати його до двох параметрів a0 і a1 (у випадку однієї змінної X):
Відданий і зосереджений на вас. Ми допомагаємо вам зрозуміти, використати та продемонструвати ваші потужні нові навички за допомогою перегляду резюме, практики співбесід та галузевих обговорень.