我正在尝试对svm的结果进行多处理。
我尝试了以下简单方法。
clf = svm.SVC(C=1.0, cache_size=1000000, class_weight=None, coef0=0.0,
decision_function_shape='ovo', degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
clf.fit(x, y)
def predict(x):
clf.predict(x)
from multiprocessing import Pool
pool= Pool(processes = 4)
setting = np.loadtxt('~/test.csv', delimiter=',')
x=setting[:,0:3]
y=setting[:,3]
x[i]
[cols,rows] = setting.shape
i = 0
while i < rows:
k = x[i]
pool.map(predict,[[k]])
print(pool.map(predict,[[k]]))
i = i+1
此代码将运行,但似乎没有正确的结果。
我要返回或打印预测值。
如果能提供一种方法或代码来获取预测值的结果,我将不胜感激。
答案 0 :(得分:1)
setting.shape将返回一个元组(m,n),其中m是行数,n是列数。看起来您正相反。
尝试将行更改为
[rows, cols] = setting.shape
此外,您可能希望尝试将预测数据分成大小均等的矩阵,每个矩阵均具有行/过程条目并在其上进行映射。逐行合并的开销可能不值得。