Learn AI with Python · Ders

SVD ile Matris Çarpanlarına Ayırma

Kullanıcı-öğe matrisi, SVD ayrıştırması, gizli faktörler, Surprise kütüphanesi uygulaması.

2. ders / 413 adım

SVD ile Matris Çarpanlarına Ayırma, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Matris Faktörleştirme Neden Kullanılır?

Kullanıcı-öğe matrisi çok büyüktür ve büyük ölçüde boştur. Matris faktörleştirme, bu matrisi biri kullanıcılar, diğeri öğeler için olmak üzere gizli faktörlerden oluşan iki daha küçük matrise sıkıştırır. Bu matrislerin çarpımı, puanları yeniden oluşturur ve eksik puanları doldurur. Bu yaklaşım, seyrekliği komşu yöntemlerinden çok daha iyi ele alır.

Gizli Faktörleri Sezgisel Olarak Anlama

Her kullanıcı ve öğe, gizli özellikleri açıklayan kısa bir vektörle tanımlanır (filmler için belki aksiyon içerme veya komedi içerme düzeyi). Tahmin edilen puan, yalnızca verilerden öğrenilen kullanıcı vektörü ile öğe vektörünün noktasal çarpımıdır.

Önerilerde SVD

SVD tarzı modeller, bilinen puanlardaki tahmin hatasını düzenlileştirme ile birlikte en aza indirerek bu faktörleri öğrenir. surprise kütüphanesi, öneriler için optimize edilmiş ve kullanıma hazır bir SVD sağlar; bu yaklaşım Netflix Ödülü sayesinde yaygınlaşmıştır.

Surprise Kütüphanesi

İhtiyacınız olan bileşenleri içe aktarın: algoritmayı, veri kümesi sarmalayıcısını ve veri biçiminizi açıklayan okuyucuyu.

from surprise import SVD, Dataset, Reader
from surprise.model_selection import cross_validate

Reader ve rating_scale

Reader, rating_scale aracılığıyla geçerli puan aralığını Surprise'a bildirir. Bu aralığı verilerinizle eşleştirin (örneğin 1 ile 5 yıldız arası); aksi takdirde tahminlerin kalibrasyonu bozulur.

reader = Reader(rating_scale=(1, 5))

DataFrame Yükleme

Sırasıyla user, item ve rating olmak üzere tam olarak üç sütun içeren bir DataFrame yükleyin.

data = Dataset.load_from_df(
    df[["user_id", "item_id", "rating"]],
    reader
)

Çapraz Doğrulama

cross_validate, modeli birkaç katman üzerinde değerlendirir ve hata ölçümlerini raporlar. Böylece ayrılmış veriler üzerindeki doğruluğu gerçeğe uygun biçimde değerlendirebilirsiniz.

results = cross_validate(
    SVD(), data,
    measures=["RMSE", "MAE"],
    cv=5,
    verbose=True
)

RMSE ve MAE

  • RMSE (kök ortalama karesel hata), büyük hataları ağır biçimde cezalandırır.
  • MAE (ortalama mutlak hata), yorumlanması daha kolay olan ortalama mutlak sapmadır.

Her ikisi için de düşük değer daha iyidir; RMSE, puan tahmininde öne çıkan standart ölçüttür.

Tam Küme Üzerinde Eğitim

Doğrulamadan sonra tahminleri sunmadan önce tüm veri kümesi üzerinde eğitim yapın.

trainset = data.build_full_trainset()
algo = SVD()
algo.fit(trainset)

Tahmin Yapma

algo.predict(uid, iid), .est alanı söz konusu kullanıcı-öğe çifti için tahmini puanı içeren bir tahmin nesnesi döndürür.

pred = algo.predict(uid="user_42", iid="item_99")
print(pred.est)  # estimated rating

Hiperparametreleri Ayarlama

Temel SVD ayarları şunlardır: n_factors (gizli boyut), n_epochs, lr_all (öğrenme hızı) ve reg_all (düzenlileştirme). RMSE'ye göre en iyi bileşimi bulmak için GridSearchCV kullanın.

from surprise.model_selection import GridSearchCV

grid = {"n_factors": [50, 100], "reg_all": [0.02, 0.1]}
gs = GridSearchCV(SVD, grid, measures=["rmse"], cv=3)
gs.fit(data)
print(gs.best_params["rmse"])

Hızlı Kontrol

Matris faktörleştirme konusundaki bilginizi test edin.

Özet

SVD aracılığıyla matris faktörleştirmeyi öğrendiniz: noktasal çarpımları puanları tahmin eden gizli kullanıcı/öğe vektörleri. surprise kullanarak rating_scale ayarladınız, verileri yüklediniz, RMSE/MAE ile cross_validate çalıştırdınız, fit uyguladınız ve algo.predict(uid, iid) çağrısını yaptınız. Sıradaki konu: içerik tabanlı filtreleme.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Python öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
53
Dersler
225

Sıkça Sorulan Sorular

“SVD ile Matris Çarpanlarına Ayırma” dersi ücretsiz mi?

Evet — “SVD ile Matris Çarpanlarına Ayırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“SVD ile Matris Çarpanlarına Ayırma” dersinde ne öğreneceğim?

Kullanıcı-öğe matrisi, SVD ayrıştırması, gizli faktörler, Surprise kütüphanesi uygulaması. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“SVD ile Matris Çarpanlarına Ayırma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İşbirlikçi Filtreleme: Kullanıcı ve Öğe Tabanlı
  2. SVD ile Matris Çarpanlarına Ayırma
  3. İçerik Tabanlı Filtreleme
  4. Hibrit Sistemler ve Değerlendirme Ölçütleri
← Learn AI with Python Sayfasına Dön