Pemfaktoran Matriks dengan SVD
Matriks pengguna-item, penguraian SVD, faktor pendam, pelaksanaan menggunakan pustaka Surprise.
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_validatePembaca 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 ratingMelaras 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.
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
- Penapisan Kolaboratif: Berasaskan Pengguna dan Item
- Pemfaktoran Matriks dengan SVD
- Penapisan Berasaskan Kandungan
- Sistem Hibrid dan Metrik Penilaian