Barcha kurslar Yo'nalishlar Reyting Kirish Ro'yxatdan o'tish

Bu modul machine learning’ning matematik tili — matritsalar, vektorlar va ular yordamida linear regression’ni bir nechta xususiyatga kengaytirish.

Matritsa va vektor

Matritsa — sonlarning to’rtburchak jadvali; o’lchami qatorlar × ustunlar deb o’qiladi. Vektor — bitta ustunli matritsa (n × 1). ML’da butun dataset odatda bitta X matritsaga yig’iladi: har qator — bitta misol, har ustun — bitta xususiyat.

A = | 1  2 |        v = | 5 |
    | 3  4 |            | 6 |
    | 5  6 |
A: 3×2 matritsa      v: 2×1 vektor

Bir o’lchamdagi matritsalar element bo’yicha qo’shiladi; skalyarga ko’paytirish har elementga ta’sir qiladi — bu amallar o’lchamni o’zgartirmaydi:

import numpy as np

A = np.array([[1, 2], [3, 4], [5, 6]])
print(A + A)      # har element ikkilanadi
print(3 * A)      # har element 3 ga ko'payadi
print(A.T)        # transpozitsiya: 2x3 — qator va ustunlar almashadi

Matritsalarni ko’paytirish

Asosiy qoida: (m × n) · (n × p) = (m × p)birinchisining ustunlar soni ikkinchisining qatorlar soniga teng bo’lishi shart, natija chetki o’lchamlardan tuziladi. Natijaning (i, j) elementi — birinchining i-qatori bilan ikkinchining j-ustunining juft-juft ko’paytmalari yig’indisi:

A = np.array([[1, 2],
              [3, 4],
              [5, 6]])        # 3x2
v = np.array([[5],
              [6]])           # 2x1
print(A @ v)

Natija:

[[17]
 [39]
 [61]]

(1·5 + 2·6 = 17 va hokazo.) Ikki ogohlantirish: NumPy’da * element bo’yicha ko’paytirish, matritsa ko’paytmasi esa @ (yoki np.dot); va ko’paytirish kommutativ emasA @ B ≠ B @ A (ko’pincha ikkinchisi o’lcham jihatdan umuman mumkin ham emas). Foydali maxsus holat — birlik matritsa I: I @ A = A @ I = A.

Amal Shart Natija o’lchami
A + B o’lchamlar teng o’sha o’lcham
3 * A o’sha o’lcham
A @ B A ustunlari = B qatorlari (A qatorlari) × (B ustunlari)
A.T o’lchamlar almashadi

Ko’p xususiyatli linear regression

Uy narxi faqat maydonga emas — xonalar soni, qavat, yoshiga ham bog’liq. Model n ta xususiyatga kengayadi:

h(x) = w₁x₁ + w₂x₂ + ... + wₙxₙ + b

Matritsa tili bu yig’indini bitta amalga aylantiradi. X — (m × n) dataset, w — (n × 1) og’irliklar vektori:

X = np.array([[65, 2],      # maydon, xonalar
              [80, 3],
              [120, 4]])     # 3 misol, 2 xususiyat
w = np.array([[1.2],
              [15.0]])
b = 40.0
print(X @ w + b)             # UCHALA misol bashorati bitta amalda

Natija:

[[148.]
 [181.]
 [244.]]

Sikl yo’q — shu vektorlashuv deyiladi. Gradient ham xuddi shunday ixchamlashadi: dw = X.T @ (h − y) / m. Oldingi modulda yozgan kodingiz bir necha belgigina o’zgarib, istalgan miqdordagi xususiyat bilan ishlay boshlaydi — chiziqli algebraning ML’dagi kuchi ana shunda.

Amaliyot

  1. (2×3) va (3×2) matritsalar yozib, A @ B va B @ A ni hisoblang — o’lchamlari va qiymatlari farqiga e’tibor bering.
  2. Qaysilarini ko’paytirish mumkin: (4×2)·(2×5)? (3×3)·(4×3)? (1×5)·(5×1)? Mumkinlarining natija o’lchamini yozing.
  3. Yuqoridagi X, w, b misolini kodda terib, natijani qo’lda hisoblab tekshiring.
  4. Uch xususiyatli o’zingizning mini-datasetingizni yasang (5 misol) va tasodifiy w bilan X @ w + b bashoratini hisoblang.
  5. X.T @ X ning o’lchami nima bo’lishini oldindan aytib, keyin kodda tekshiring.

Kursni yopadigan test keyingi darsda — barcha modullar bo’yicha asosiy tushunchalarni qamrab oladi.

Chiziqli algebra — konspekt

Chiziqli algebra Maqola

ML uchun chiziqli algebra konspekti: matritsa va vektor amallari, ko’paytirish qoidasi va ko’p xususiyatli linear regression.

Eslatma yozish uchun saytga kiring.

Resurslar hozircha qo'shilmagan

O'qituvchi dars uchun qo'shimcha materiallarni qo'shganida shu yerda paydo bo'ladi.

Savol berish uchun saytga kiring.

Hozircha savollar yo'q

Bu dars yuzasidan birinchi savolni siz bering.