Matris nedir
Önkoşul:Nokta çarpım: benzerliğin matematiği
Kanca
- 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
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 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ı)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:
- Matrisi “vektörden TAMAMEN farklı bir şey” sanmak — HAYIR, bir matris, SADECE birden fazla vektörün bir arada TUTULMASIDIR.
- 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?
- Matriste 3 tane 2 boyutlu sayı olduğu
- 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)
- Matrisin 3 ile 2yi çarpması gerektiği
- 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?
- Bir hesaplama hatası
- 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)
- 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Ç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?
- Rastgele sayılar
- 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)
- Sadece sütunlar önemlidir, satırlar önemsizdir
- 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.