Matris nedir
Önkoşul:Nokta çarpım: benzerliğin matematiği
Kanca
- 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
Bir matrisin şekli ile gösterilir — yukarıdaki , 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ı)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:
- Matrisi “vektörden tamamen farklı bir şey” sanmak — hayır, bir matris, sadece birden fazla vektörün bir arada tutulmasıdır.
- 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?
- Matriste 3 tane 2 boyutlu sayı olduğu
- 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)
- Matrisin 3 ile 2yi çarpması gerektiği
- 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?
- Bir hesaplama hatası
- 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)
- M[0] ve M[:, 0] her zaman aynı sonucu vermelidir
- 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?
- Rastgele sayılar
- 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)
- Sadece sütunlar önemlidir, satırlar önemsizdir
- 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.