1. 程式人生 > >python svm演算法,多程序運算算不出(似乎是陷入了死迴圈)

python svm演算法,多程序運算算不出(似乎是陷入了死迴圈)

在調節核函式是poly的多分類支援向量機degree引數時,樣本資料僅1700餘個,degree較小時測試效果較差。當degree選擇到8時,分類器表現良好,試圖選擇更大的degree。但是計算時間過長(我上了兩節課回來還沒算完)。於是採用多程序技術,但是詭異的是使用了多程序後,CPU利用率從20%提高至70%,用引數degree=2訓練時計算時間卻遠遠超過不使用多程序技術,(不使用多程序計算只需1秒左右),大概計算10分鐘後關閉程式,不再運算。
下面貼出程式碼,參考各種資料後覺得這種情況完全沒道理啊。求大神幫忙看看是啥問題,謝謝了。

import numpy as np
import pandas as
pd from sklearn import svm import functions_of_data_mining as fo import multiprocessing as mp datafr_traning=datafr_traning #引入datafr_traning資料集,不引會報錯(我無法解釋) datafr_traning_pressure1=datafr_traning_pressure1 #引入datafr_traning_pressure1資料集,不引會報錯(我無法解釋) def Traning_canliang(M_degree): svm_of_WuHanfangjia=svm.SVC(C=1.45
,kernel='poly',degree=M_degree,coef0=1,decision_function_shape='ovo') svm_of_WuHanfangjia.fit(datafr_traning[['建造年份','戶型','單價']],datafr_traning['地域']) y_test_traning_pressure1=svm_of_WuHanfangjia.predict(datafr_traning_pressure1[['建造年份','戶型','單價']]) rate=fo.accurater(y_test_traning_pressure1,datafr_traning_pressure1['地域'
]) return rate def multicore(): pool=mp.Pool(processes=4) result=pool.apply_async(Traning_canliang,(2,)) print(result.get()) if __name__=='__main__': multicore()