CodeBlanks Logo Icon CodeBlanks

Transpoz

Matrisin transpozunda satır ve sütun yer değiştirir.

Transpoz

Transpoz, matrisin satırlarını sütun yapar: (m, n) → (n, m). NumPy'da .T ile yazılır.

A = np.array([[1, 2, 3],
              [4, 5, 6]])
print(A.T)        # [[1 4] [2 5] [3 6]]
print(A.T.shape)  # (3, 2)

Matris çarpımında şekiller uymayınca çoğu zaman çözüm bir tarafın transpozunu almaktır.

XᵀX ve normal denklem

Doğrusal regresyonun kapalı çözümü transpozla yazılır: w = (XᵀX)⁻¹ Xᵀy.

X = np.array([[1, 1], [1, 2], [1, 3]])   # ilk sütun: kesişim için 1
y = np.array([3, 5, 7])
w = np.linalg.solve(X.T @ X, X.T @ y)
print(w)   # [1. 2.]  ->  y = 1 + 2x

np.linalg.solve, tersini açıkça almaktan daha kararlı ve hızlıdır. scikit-learn'ün LinearRegression'ı da benzer bir yöntemle çözer.

Uygulama Normal denklem

İlk sütunu 1 olan X ve y verildi. np.linalg.solve(X.T @ X, X.T @ y) ile w'yi bul ve yazdır.

Başlangıç kodu

model.py
import numpy as np

X = np.array([[1, 0], [1, 1], [1, 2], [1, 3]])
y = np.array([4, 7, 10, 13])

# buraya yaz

Örnek çözüm

model.py
import numpy as np

X = np.array([[1, 0], [1, 1], [1, 2], [1, 3]])
y = np.array([4, 7, 10, 13])

w = np.linalg.solve(X.T @ X, X.T @ y)
print(w)

Beklenen çıktı

[4. 3.]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 (5, 3) şekilli X için <code>X.T @ X</code>'in şekli nedir?

  • Hata
  • (3, 3) Doğru cevap
  • (5, 5)
  • (5, 3)

Açıklama: (3, 5) @ (5, 3) = (3, 3); bu, özellikler arası ilişkiyi anlatan bir matristir.

2 Matrisin transpozunu al.

Soru
At = A.____
Cevap
At = A.T

Açıklama: .T, numpy.transpose(A) ile aynıdır.

3 İfadeleri eşleştir.

Kavram Anlamı
A.T Transpoz
X.T @ X Özellik × özellik matrisi
np.linalg.solve Doğrusal sistem çözümü
(A.T).T A'nın kendisi

Başlangıç bölümündeki tüm dersler