前提・実現したいこと
pythonにて機械学習を行なっています。
計算処理が遅いため、処理速度を向上させたいです。
自分なりに試行錯誤したものの、原因がわからず、、、
ご回答いただけますでしょうか。
発生している問題・エラーメッセージ
計算時間が多くかかっている箇所はsklearnモジュールを用いたKNNの処理でした。
処理時にはn_jobs = -1としているため、使用可能なCPUは全て使用しているつもりでしたが、
計算実行時にcpuを確認したところ、あまりCPUが稼働していない状況であることがわかりました。
このアイドル状態のCPUを使用できれば処理速度が向上すると言う認識です。
該当のソースコード
python
1from sklearn.neighbors import KNeighborsClassifier as KNN 2from sklearn import metrics 3 4def use_knn_single(X, Y, pred_X): 5 model = KNN(n_neighbors=30, weights='distance', algorithm='auto', leaf_size=30, n_jobs=-1) 6 model.fit(X.values, Y.values) 7 8 result_pred = model.predict(pred_X.values)[0] 9 10 return result_pred
試したこと
KNNのn_jobs = 1と設定したのち、
該当処理をmultiprocessingモジュールで外部から制御したものの結果は変わらず。
補足情報(FW/ツールのバージョンなど)
OS:macOS Catalina
CPU:3.2 GHz 6コア 12スレッド
メモリ:16 GB
python:3.7.5
学習データサイズ:1600 rows ×40 coulumns(最大)
学習データの型:pandas[float64/object/int64]
(目的変数の型はint64)
目的変数のクラス数:6
テストデータのサイズ:1 row
※上記関数は処理の中で複数回呼び出しています
(可能な限り最新の情報を用いて予測したいため)。
加えて使用するカラムのリストを変更しつつ(最大:40、最小:5)呼び出しているので、合わせてかなりの回数で上記関数を呼び出しています。
回答1件
あなたの回答
tips
プレビュー