Ana içeriğe geç

Giriş6 dk

Matris nedir

Önkoşul:Nokta çarpım: benzerliğin matematiği

Kanca

  1. derste üç meyveyi ayrı ayrı vektörlerle temsil etmiştik: elma, armut, karpuz. Peki bu üçünü tek bir yapıda, bir arada nasıl saklarsın?

Sezgi

Bir matris, aynı boyuttaki birden fazla vektörün üst üste yığılmasıyla oluşan bir tablodur. Her satır bir vektördür (bir örnek); her sütun da bir vektördür (tüm örnekler için aynı özellik).

Mekanizma

Üç meyve vektörünü bir matriste birleştirelim:

Vektörleri üst üste yığmak = matris

# Bir matris, aynı boyuttaki birden fazla vektörün üst üste yığılmasıdır.
# 2. dersteki üç meyve vektörünü ([ağırlık, tatlılık]) bir matriste birleştirelim:
elma = [150, 6]
armut = [170, 5]
karpuz = [5000, 7]

M = np.array([elma, armut, karpuz])

print("Üç ayrı vektör:")
print(f"  elma   = {elma}")
print(f"  armut  = {armut}")
print(f"  karpuz = {karpuz}")
print(f"\nBunları üst üste yığınca ortaya çıkan matris:\n{M}")
print("\nBir matris, özünde, birden fazla vektörün bir tablo halinde saklanmasıdır.")
Üç ayrı vektör:
  elma   = [150, 6]
  armut  = [170, 5]
  karpuz = [5000, 7]

Bunları üst üste yığınca ortaya çıkan matris:
[[ 150    6]
 [ 170    5]
 [5000    7]]

Bir matris, özünde, birden fazla vektörün bir tablo halinde saklanmasıdır.

Bir matrisin “şeklini” (shape) inceleyelim:

Şekil (shape) = (satır sayısı, sütun sayısı)

# Bir matrisin şekli (shape), (satır sayısı, sütun sayısı) çiftidir.
print(f"\nM.shape = {M.shape}  -- {M.shape[0]} satır (3 meyve), {M.shape[1]} sütun (2 özellik)")
print(f"Toplam eleman sayısı: {M.size} ({M.shape[0]} x {M.shape[1]} = {M.shape[0] * M.shape[1]})")

M.shape = (3, 2)  -- 3 satır (3 meyve), 2 sütun (2 özellik)
Toplam eleman sayısı: 6 (3 x 2 = 6)

Matematik

Matris gösterimi
M=[m11m12m21m22m31m32]M = \begin{bmatrix} m_{11} & m_{12} \\ m_{21} & m_{22} \\ m_{31} & m_{32} \end{bmatrix}

Bir matrisin şekli (satır,su¨tun)(\text{satır}, \text{sütun}) ile gösterilir — yukarıdaki MM, 3×23 \times 2 boyutlu bir matristir: 3 satır (3 meyve), 2 sütun (2 özellik).

Kod

Satır ve sütuna erişim

# Bir matrisin her satırı bir vektördür (burada: bir meyve). Her sütunu da bir
# vektördür (burada: tüm meyveler için aynı özellik).
print("\nSatırlara erişim (her satır = bir meyvenin tam vektörü):")
print(f"  M[0] (elmanın vektörü)   = {M[0].tolist()}")
print(f"  M[2] (karpuzun vektörü)  = {M[2].tolist()}")

print("\nSütunlara erişim (her sütun = tüm meyveler için aynı özellik):")
print(f"  M[:, 0] (tüm ağırlıklar) = {M[:, 0].tolist()}")
print(f"  M[:, 1] (tüm tatlılıklar) = {M[:, 1].tolist()}")

ort_agirlik = M[:, 0].mean()
print(f"\nOrtalama ağırlık: {ort_agirlik:.1f} gram  (M[:, 0].mean() ile tek satırda hesaplandı)")

Satırlara erişim (her satır = bir meyvenin tam vektörü):
  M[0] (elmanın vektörü)   = [150, 6]
  M[2] (karpuzun vektörü)  = [5000, 7]

Sütunlara erişim (her sütun = tüm meyveler için aynı özellik):
  M[:, 0] (tüm ağırlıklar) = [150, 170, 5000]
  M[:, 1] (tüm tatlılıklar) = [6, 5, 7]

Ortalama ağırlık: 1773.3 gram  (M[:, 0].mean() ile tek satırda hesaplandı)
Üç meyvenin ağırlık ve tatlılık değerlerini gösteren bir tablo: elma, armut, karpuz satırları; ağırlık ve tatlılık sütunları.(grafiği tam boyutta, yeni sekmede aç)
Matris, meyve vektörlerinin bir tablo halinde yığılmış hâlidir -- her satır bir meyve, her sütun bir özellik.

Nerede işe yarar

“Satır=örnek, sütun=özellik” fikri, kursun ilerideki veri temsilinin temelidir:

  • Veri Bilimi kategorisinde, bir pandas DataFrame’in her satırı bir kayıt, her sütunu bir özelliktir — tam olarak bu dersteki matris.
  • Makine Öğrenmesi kategorisinde, bir eğitim veri kümesi (X), satırları örnekler, sütunları öznitelikler olan bir matristir.
  • DL Görüntü kategorisinde, bir gri tonlamalı görüntü bile, özünde, piksel değerlerinden oluşan bir matristir.

Bu 2 hatayı yaparsın:

  1. Matrisi “vektörden tamamen farklı bir şey” sanmak — hayır, bir matris, sadece birden fazla vektörün bir arada tutulmasıdır.
  2. Satır ve sütun erişimini karıştırmak — M[0] bir satırı (bir meyvenin tam vektörünü) verir, M[:, 0] ise bir sütunu (tüm meyveler için aynı özelliği) verir.

Kendini test et

1. Notebook'ta M.shape = (3, 2) çıkıyor. Bu ne anlama gelir?
  1. Matriste 3 tane 2 boyutlu sayı olduğu
  2. Matrisin 3 satırı (3 meyve) ve 2 sütunu (2 özellik: ağırlık, tatlılık) olduğu -- shape her zaman (satır sayısı, sütun sayısı) sırasıyla verilir (doğru cevap)
  3. Matrisin 3 ile 2yi çarpması gerektiği
  4. Bir hata olduğu

Neden: sekil-shape bloğunda bu açıkça yazılıyor: '3 satır (3 meyve), 2 sütun (2 özellik)'.

2. satir-ve-sutun-erisimi bloğunda M[0] = [150, 6] veriyor ama M[:, 0] = [150, 170, 5000] veriyor. Bu fark neden?
  1. Bir hesaplama hatası
  2. M[0] bir satırı (elmanın tam vektörünü: ağırlık ve tatlılık) verir; M[:, 0] ise bir sütunu (tüm meyvelerin sadece ağırlığını) verir -- ikisi tamamen farklı bilgi türleridir (doğru cevap)
  3. M[0] ve M[:, 0] her zaman aynı sonucu vermelidir
  4. Sütunlar sadece tek sayı içerebilir

Neden: satir-ve-sutun-erisimi bloğunun çıktısında M[0]=[150,6] (elmanın tam vektörü) ile M[:, 0]=[150,170,5000] (tüm ağırlıklar) açıkça farklı gösteriliyor.

3. Makine Öğrenmesi kategorisindeki bir eğitim veri kümesinin (X matrisi) satırları ve sütunları neyi temsil eder?
  1. Rastgele sayılar
  2. Satırlar örnekleri (her satır bir veri noktası), sütunlar öznitelikleri (her sütun bir ölçülebilir özellik) temsil eder -- tam olarak bu dersteki meyve matrisiyle aynı mantık (doğru cevap)
  3. Sadece sütunlar önemlidir, satırlar önemsizdir
  4. Model tarafından rastgele atanır

Neden: kullanım bölümünde bu açıkça bağlanıyor: ML'deki X matrisi, bu dersteki 'satır=örnek, sütun=özellik' matrisiyle aynı yapıdadır.

Özet

Özet

  • Bir matris, aynı boyuttaki birden fazla vektörün üst üste yığılmasıyla oluşan bir tablodur.
  • Bir matrisin şekli (shape), (satır sayısı, sütun sayısı) çiftidir.
  • M[i] bir satıra (bir örneğin tam vektörüne) erişir; M[:, j] bir sütuna (tüm örnekler için aynı özelliğe) erişir.
  • "Satır=örnek, sütun=özellik" fikri, pandas DataFrame'lerinden ML veri kümelerine kadar her yerde karşına çıkar.
  • Bu dersteki 3x2 meyve matrisi, ilerideki tüm veri temsillerinin en basit hâlidir.
Sonraki adım: Matris çarpımı: dönüşüm olarak okumak →