Ana içeriğe geç

Giriş6 dk

Matris nedir

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

Kanca

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

Sezgi

Bir matris, aynı boyuttaki BİRDEN FAZLA vektörün ÜST ÜSTE YIĞILMASIYLA oluşan bir TABLODUR. Her SATIR bir vektördür (bir örnek); her SÜTUN da bir vektördür (tüm örnekler için AYNI özellik).

Mekanizma

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

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

# Bir MATRİS, aynı boyuttaki BİRDEN FAZLA vektörün ÜST ÜSTE YIĞILMASIDIR.
# 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 MATRİS:\n{M}")
print("\nBir matris, ÖZÜNDE, birden fazla vektörün bir TABLO halinde SAKLANMASIDIR.")
Üç ayrı vektör:
  elma   = [150, 6]
  armut  = [170, 5]
  karpuz = [5000, 7]

Bunları ÜST ÜSTE yığınca ortaya çıkan MATRİS:
[[ 150    6]
 [ 170    5]
 [5000    7]]

Bir matris, ÖZÜNDE, birden fazla vektörün bir TABLO halinde SAKLANMASIDIR.

Bir matrisin “ŞEKLİNİ” (shape) inceleyelim:

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

# Bir matrisin ŞEKLİ (shape), (satır sayısı, sütun sayısı) çiftidir.
print(f"\nM.shape = {M.shape}  -- {M.shape[0]} SATIR (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 SATIR (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)(satır, 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 SATIRI bir vektördür (burada: bir meyve). HER SÜTUNU da bir
# vektördür (burada: TÜM meyveler için AYNI özellik).
print("\nSATIRLARA 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 AYNI ö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ı)")

SATIRLARA 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 AYNI ö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ı.
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 İLERİDEKİ veri temsilinin TEMELİDİR:

  • Veri Bilimi kategorisinde, bir pandas DataFrame’in HER SATIRI 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ı ÖZNİTELİKLER olan bir matristir.
  • DL Görüntü kategorisinde, bir GRİ TONLAMALI görüntü BİLE, özünde, piksel değerlerinden oluşan bir matristir.

Bu 2 hatayı yaparsın:

  1. Matrisi “vektörden TAMAMEN farklı bir şey” sanmak — HAYIR, bir matris, SADECE birden fazla vektörün bir arada TUTULMASIDIR.
  2. Satır ve sütun erişimini KARIŞTIRMAK — M[0] bir SATIRI (bir meyvenin TAM vektörünü) verir, M[:, 0] ise bir SÜTUNU (TÜM meyveler için AYNI ö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 SATIRI (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ÇIKÇA yazılıyor: '3 SATIR (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 SATIRI (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 FARKLI 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ÇIKÇA farklı gösteriliyor.

3. Makine Öğrenmesi kategorisindeki bir eğitim veri kümesinin (X matrisi) satırları ve sütunları NEYİ temsil eder?
  1. Rastgele sayılar
  2. Satırlar ÖRNEKLERİ (her satır bir veri noktası), sütunlar ÖZNİTELİKLERİ (her sütun bir ölçülebilir özellik) temsil eder -- TAM OLARAK bu dersteki meyve matrisiyle AYNI 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ÇIKÇA bağlanıyor: ML'deki X matrisi, bu dersteki 'satır=örnek, sütun=özellik' matrisiyle AYNI 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 ŞEKLİ (shape), (satır sayısı, sütun sayısı) çiftidir.
  • M[i] bir SATIRA (bir örneğin TAM vektörüne) erişir; M[:, j] bir SÜTUNA (tüm örnekler için AYNI ö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 BASİT hâlidir.
Sonraki adım: Matris çarpımı: dönüşüm olarak okumak →