Pelajari AI dengan Python · Pelajaran

Pemfaktoran Matriks dengan SVD

Matriks pengguna-item, penguraian SVD, faktor pendam, pelaksanaan menggunakan pustaka Surprise.

Pelajaran 2 daripada 413 langkah

Pemfaktoran Matriks dengan SVD ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Mengapa Pemfaktoran Matriks?

Matriks pengguna-item sangat besar dan kebanyakannya kosong. Pemfaktoran matriks memampatkannya menjadi dua matriks faktor tersembunyi yang lebih kecil, satu untuk pengguna dan satu untuk item. Hasil darab kedua-duanya membina semula dan mengisi penarafan. Kaedah ini menangani data yang jarang dengan jauh lebih baik berbanding kaedah jiran.

Intuisi Faktor Tersembunyi

Setiap pengguna dan item diterangkan oleh vektor pendek yang mengandungi ciri tersembunyi, mungkin kecenderungan kepada aksi atau komedi bagi filem. Penarafan ramalan ialah hasil darab titik antara vektor pengguna dengan vektor item, yang dipelajari sepenuhnya daripada data.

SVD dalam Sistem Pengesyoran

Model gaya SVD mempelajari faktor ini dengan meminimumkan ralat ramalan pada penarafan yang diketahui, bersama-sama regularisasi. Pustaka surprise menyediakan SVD sedia digunakan yang dioptimumkan untuk pengesyoran dan dipopularkan oleh Hadiah Netflix.

Pustaka Surprise

Import komponen yang diperlukan: algoritma, pembungkus set data dan pembaca yang menerangkan format data anda.

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

Pembaca dan Skala Penarafan

Pembaca memberitahu Surprise julat penarafan yang sah melalui skala penarafan. Padankan julat ini dengan data anda, contohnya 1 hingga 5 bintang, atau ramalan akan mempunyai kalibrasi yang salah.

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

Memuatkan DataFrame

Muatkan DataFrame dengan tepat tiga lajur mengikut susunan: pengguna, item, penarafan.

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

Pengesahan Silang

cross_validate menilai model merentasi beberapa lipatan dan melaporkan metrik ralat supaya anda boleh menilai ketepatan dengan jujur menggunakan data yang diketepikan.

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

RMSE dan MAE

  • RMSE (punca kuasa dua ralat kuasa dua min) memberikan penalti besar kepada ralat yang besar.
  • MAE (ralat mutlak min) ialah purata kesilapan mutlak dan lebih mudah ditafsir.

Nilai yang lebih rendah adalah lebih baik bagi kedua-duanya; RMSE ialah metrik utama standard untuk ramalan penarafan.

Melatih pada Set Penuh

Selepas pengesahan, latih model menggunakan keseluruhan set data sebelum menyediakan ramalan.

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

Membuat Ramalan

algo.predict(uid, iid) mengembalikan objek ramalan yang medan .est-nya ialah anggaran penarafan untuk pasangan pengguna-item tersebut.

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

Melaras Hiperparameter

Parameter utama SVD ialah n_factors (dimensi faktor tersembunyi), n_epochs, lr_all (kadar pembelajaran) dan reg_all (regularisasi). Gunakan GridSearchCV untuk mencari gabungan terbaik berdasarkan RMSE.

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"])

Semakan Pantas

Uji pengetahuan anda tentang pemfaktoran matriks.

Imbas Kembali

Anda mempelajari pemfaktoran matriks melalui SVD: vektor pengguna dan item tersembunyi yang hasil darab titiknya meramalkan penarafan. Dengan menggunakan surprise, anda menetapkan skala penarafan, memuatkan data, menjalankan cross_validate dengan RMSE/MAE, menggunakan fit dan memanggil algo.predict(uid, iid). Seterusnya: penapisan berasaskan kandungan.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
53
Pelajaran
225

Soalan Lazim

Adakah pelajaran “Pemfaktoran Matriks dengan SVD” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “Pemfaktoran Matriks dengan SVD”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pemfaktoran Matriks dengan SVD”?

Matriks pengguna-item, penguraian SVD, faktor pendam, pelaksanaan menggunakan pustaka Surprise. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Pemfaktoran Matriks dengan SVD” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?

Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Penapisan Kolaboratif: Berasaskan Pengguna dan Item
  2. Pemfaktoran Matriks dengan SVD
  3. Penapisan Berasaskan Kandungan
  4. Sistem Hibrid dan Metrik Penilaian
← Kembali ke Pelajari AI dengan Python