Основна лінійна алгебра для науки про дані та машинного навчання

Вихідний вузол: 1852280

Зображення Бенджаміна О. Тайо.

Лінійна алгебра — це розділ математики, який надзвичайно корисний у науці про дані та машинному навчанні. Лінійна алгебра — найважливіший математичний навик у машинному навчанні. Більшість моделей машинного навчання можна виразити в матричній формі. Сам набір даних часто представляється у вигляді матриці. Лінійна алгебра використовується для попередньої обробки даних, перетворення даних та оцінки моделі. Ось теми, з якими вам потрібно ознайомитися:

  • Вектори
  • Матриці
  • Транспонування матриці
  • Обернена до матриці
  • Визначник матриці
  • Слід матриці
  • Точковий продукт
  • Власні значення
  • Власні вектори

У цій статті ми проілюструємо застосування лінійної алгебри в науці про дані та машинному навчанні за допомогою набору даних про запаси технологій, який можна знайти тут.

1. Лінійна алгебра для попередньої обробки даних

 Ми починаємо з ілюстрації того, як лінійна алгебра використовується в попередній обробці даних.

1.1 Імпорт необхідних бібліотек для лінійної алгебри

імпорт numpy як np імпорт pandas як pd імпорт pylab імпорт matplotlib.pyplot як plt імпорт seaborn як sns 

 

1.2 Читання набору даних і функції відображення

data = pd.read_csv("tech-stocks-04-2021.csv") data.head() 

 таблиця 1. Ціни на вибрані біржі за перші 16 днів квітня 2021 року.

print(data.shape) output = (11,5) 

 Команда дані.форма функція дозволяє нам знати розмір нашого набору даних. У цьому випадку набір даних містить 5 ознак (дата, AAPL, TSLA, GOOGL і AMZN), і кожна функція має 11 спостережень. Дата відноситься до торгових днів у квітні 2021 року (до 16 квітня). AAPL, TSLA, GOOGL і AMZN – це ціни акцій Apple, Tesla, Google і Amazon на момент закриття торгів відповідно.

1.3 Візуалізація даних

Щоб виконати візуалізацію даних, нам потрібно визначити стовпці матриці для візуалізації функцій:

x = дані['дата'] y = дані['TSLA'] plt.plot(x,y) plt.xticks(np.array([0,4,9]), ['1 квітня','8 квітня ','15 квітня']) plt.title('Ціна акцій Tesla (у доларах) за квітень 2021 року',size=14) plt.show() 

Рисунок 1. Ціна акцій Tesla за перші 16 днів квітня 2021 року.

2. Коваріаційна матриця

Команда коваріаційна матриця є однією з найважливіших матриць у науці про дані та машинному навчанні. Він надає інформацію про співрух (кореляцію) між об’єктами. Припустимо, що ми маємо матрицю ознак з 4 Особливості і спостереження, як показано в Таблиця 2:

Таблиця 2. Матриця функцій із 4 змінними та n спостереженнями.

Щоб візуалізувати кореляції між функціями, ми можемо створити парну діаграму розсіювання:

cols=data.columns[1:5] print(cols) output = Index(['AAPL', 'TSLA', 'GOOGL', 'AMZN'], dtype='object') sns.pairplot(data[cols] , висота=3.0) 

малюнок 2. Діаграма розкиду для вибраних акцій технологічних компаній.

Щоб кількісно визначити ступінь кореляції між ознаками (мультиколінеарність), ми можемо обчислити коваріаційну матрицю за допомогою цього рівняння:

де  і  – середнє та стандартне відхилення ознаки відповідно. Це рівняння вказує на те, що коли характеристики стандартизовані, коваріаційна матриця є просто крапковий продукт між функціями.

У матричній формі коваріаційну матрицю можна виразити як дійсну симетричну матрицю 4 x 4:

Цю матрицю можна діагоналізувати, виконавши a унітарна трансформація, яке також називають перетворенням аналізу основних компонентів (PCA), щоб отримати наступне:

З слід матриці залишається інваріантним при унітарному перетворенні, ми спостерігаємо, що сума власних значень діагональної матриці дорівнює загальній дисперсії, що міститься в ознаках X1, X2, X3і X4.

2.1 Обчислення коваріаційної матриці для технологічних акцій

from sklearn.preprocessing import StandardScaler stdsc = StandardScaler() X_std = stdsc.fit_transform(data[cols].iloc[:,range(0,4)].values) cov_mat = np.cov(X_std.T, bias= True) 

Зверніть увагу, що тут використовується транспонувати стандартизованої матриці.

2.2 Візуалізація коваріаційної матриці

plt.figure(figsize=(8,8)) sns.set(font_scale=1.2) hm = sns.heatmap(cov_mat, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={ 'size': 12}, yticklabels=cols, xticklabels=cols) plt.title('Коваріаційна матриця, що показує коефіцієнти кореляції') plt.tight_layout() plt.show() 

малюнок 3. Діаграма коваріаційної матриці для вибраних акцій технологічних компаній.

На малюнку 3 ми бачимо, що AAPL сильно корелює з GOOGL і AMZN і слабко з TSLA. TSLA загалом слабо корелює з AAPL, GOOGL і AMZN, тоді як AAPL, GOOGL і AMZN сильно корелюють між собою.

2.3 Обчисліть власні значення коваріаційної матриці

np.linalg.eigvals(cov_mat) вихід = масив ([3.41582227, 0.4527295 , 0.02045092, 0.11099732]) np.sum(np.linalg.eigvals(cov_mat)) вихід = 4.000000000000006 np.trace(c) ov_mat) вихід = 4.000000000000001 

Ми спостерігаємо, що слід коваріаційної матриці дорівнює сумі власних значень, як і очікувалося.

2.4 Обчисліть кумулятивну дисперсію

Оскільки слід матриці залишається інваріантним при унітарному перетворенні, ми спостерігаємо, що сума власних значень діагональної матриці дорівнює загальній дисперсії, що міститься в ознаках X1, X2, X3і X4. Отже, ми можемо визначити такі величини:

 

Зверніть увагу, що коли p = 4, кумулятивна дисперсія дорівнює 1, як і очікувалося.

eigen = np.linalg.eigvals(cov_mat) cum_var = eigen/np.sum(eigen) print(cum_var) output = [0.85395557 0.11318237 0.00511273 0.02774933] print(np.sum(cum_var)) output = 1.0 

 Спостерігаємо з кумулятивної дисперсії (cum_var), що 85% дисперсії міститься в першому власному значенні та 11% у другому. Це означає, що коли реалізовано PCA, можна використовувати лише перші два основні компоненти, оскільки 97% загальної дисперсії складають ці 2 компоненти. Це може істотно зменшити розмірність простору функцій з 4 до 2, коли реалізовано PCA.

3. Матриця лінійної регресії

Припустімо, що у нас є набір даних, який має 4 ознаки предикторів і n спостережень, як показано нижче.

Таблиця 3. Матриця функцій із 4 змінними та n спостереженнями. Стовпець 5 – цільова змінна (y).

Ми хотіли б побудувати мультирегресійну модель для прогнозування y значення (графа 5). Таким чином, наша модель може бути виражена у формі

У матричній формі це рівняння можна записати як

де X це ( n x 4) матриця ознак, w є матрицею (4 x 1), що представляє коефіцієнти регресії, які необхідно визначити, і y це (n x 1) матриця, що містить n спостережень цільової змінної y.

Зверніть увагу, що X є прямокутною матрицею, тому ми не можемо розв’язати рівняння вище, взявши обернене рівняння X.

Для перетворення X у квадратну матрицю, ми множимо ліву та праву частини нашого рівняння на транспонувати of X, це

Це рівняння також можна виразити як

де

це (4 × 4) матриця регресії. Очевидно, ми це спостерігаємо R є дійсною та симетричною матрицею. Зверніть увагу, що в лінійній алгебрі транспонування добутку двох матриць підкоряється такому співвідношенню

Тепер, коли ми зменшили нашу задачу регресії та виразили її в термінах (4×4) дійсної, симетричної та оборотної матриці регресії R, то легко показати, що точний розв’язок рівняння регресії є тоді

Нижче наведено приклади регресійного аналізу для прогнозування неперервних і дискретних змінних:

Основи лінійної регресії для абсолютних початківців

Побудова класифікатора перцептрона за методом найменших квадратів

4. Матриця лінійного дискримінантного аналізу

Іншим прикладом дійсної та симетричної матриці в науці про дані є матриця лінійного дискримінантного аналізу (LDA). Цю матрицю можна виразити у вигляді:

де SW є матрицею розсіювання всередині ознаки, і Sце матриця розсіювання між ознаками. Оскільки обидві матриці SW та  SB дійсні та симетричні, звідси випливає, що L також є дійсним і симетричним. Діагоналізація L створює підпростір ознак, який оптимізує роздільність класів і зменшує розмірність. Отже, LDA є контрольованим алгоритмом, а PCA – ні.

Щоб дізнатися більше про впровадження LDA, перегляньте такі посилання:

Машинне навчання: зменшення розмірності за допомогою лінійного дискримінантного аналізу

Репозиторій GitHub для реалізації LDA з використанням набору даних Iris

Машинне навчання Python, Себастьян Рашка, 3-є видання (розділ 5)

Підсумки

Таким чином, ми обговорили кілька застосувань лінійної алгебри в науці про дані та машинному навчанні. Використовуючи набір даних про запаси технологій, ми проілюстрували такі важливі поняття, як розмір матриці, матриці-стовпці, квадратні матриці, коваріаційна матриця, транспонування матриці, власні значення, скалярний добуток тощо. Лінійна алгебра є важливим інструментом у науці про дані та машинах навчання. Таким чином, початківці, які цікавляться наукою про дані, повинні ознайомитися з основними поняттями лінійної алгебри.

За темою:

Джерело: https://www.kdnuggets.com/2021/05/essential-linear-algebra-data-science-machine-learning.html

Часова мітка:

Більше від KDnuggets