前提・実現したいこと
機械学習初心者です。
以下のサイトでアニメのレコメンド機能の実装を扱っていたのでおもしろいと思い、サンプルコードをjupyter notebookで打っていました。
https://www.codexa.net/collaborative-filtering-k-nearest-neighbor/
630万件のデータを扱っているからか、初めてmemory errorが出て困っています。
発生している問題・エラーメッセージ
MemoryError: Unable to allocate 695. MiB for an array with shape (2851, 31957) and data type float64
該当のソースコード
Python
anime_pivot = mergedf.pivot(index='name', columns='user_id', values='rating_user').fillna(0)
試したこと
sample()で700万件近くあるratingのインデックスを10万件に減らしてみましたが、結果は同じでした。
補足情報(FW/ツールのバージョンなど)
流れとしては
mergedf = rating.merge(anime, left_on = 'anime_id', right_on = 'anime_id', suffixes=['_user', ''])
mergedf.info()
[Int64Index: 76178 entries
memory usage: 4.6+ MB]
mergedf = mergedf[['user_id','name','rating_user']]
mergedf = mergedf.drop_duplicates(['user_id', 'name'])
animepivot = mergedf.pivot(index='name', columns='user_id', values='rating_user').fillna(0)
でエラーが起きてしまいました。
使っているパソコンのメモリは16GBですし、Anime Recommendations Database memory errorと調べても全然ヒットしなかったので自分だけなのか、jupyterの設定かなにかよく分かりません。
どんなアドバイスでも構いません。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー