Scikit-learn网格搜索与SVM回归

26
我正在学习交叉验证-网格搜索,并发现了这个 youtube 播放列表,该教程也已上传到 github 中作为 ipython 笔记本。我试图重新创建“同时搜索多个参数”部分的代码,但是我使用的是 SVM 回归,而不是 KNN。这是我的代码。
from sklearn.datasets import load_iris
from sklearn import svm
from sklearn.grid_search import GridSearchCV
import matplotlib.pyplot as plt
import numpy as np
iris = load_iris()
X = iris.data
y = iris.target

k=['rbf', 'linear','poly','sigmoid','precomputed']
c= range(1,100)
g=np.arange(1e-4,1e-2,0.0001)
g=g.tolist()
param_grid=dict(kernel=k, C=c, gamma=g)
print param_grid
svr=svm.SVC()
grid = GridSearchCV(svr, param_grid, cv=5,scoring='accuracy')
grid.fit(X, y)  
print()
print("Grid scores on development set:")
print()  
print grid.grid_scores_  
print("Best parameters set found on development set:")
print()
print(grid.best_params_)
print("Grid best score:")
print()
print (grid.best_score_)
# create a list of the mean scores only
grid_mean_scores = [result.mean_validation_score for result in grid.grid_scores_]
print grid_mean_scores

但是它会产生这个错误

raise ValueError("X should be a square kernel matrix") ValueError: X should be a square kernel matrix


2
在报告 Python 错误时,您应该始终引用完整的 Python 回溯,因为它提供了有关异常抛出位置的信息。 - ogrisel
1个回答

73

嘿,谢谢回复。但是你能告诉我如何导出这个模型吗?这是正确的方法吗?>>> from sklearn.externals import joblib >>> joblib.dump(grid, 'my_model.pkl', compress=9) - Eka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接