要查找给定估计器的所有参数的名称和当前值,需要使用get_params()
import numpy as np
from sklearn.svm import SVC
X = np.array([[-3, -7], [-2, -10], [1, 1], [2, 5]])
y = np.array([1, 1, 2, 2])
#数据部分
clf=SVC(kernel='linear')
clf.fit(X, y)
#fit数据
clf.get_params()
'''
{'C': 1.0,
'break_ties': False,
'cache_size': 200,
'class_weight': None,
'coef0': 0.0,
'decision_function_shape': 'ovr',
'degree': 3,
'gamma': 'scale',
'kernel': 'linear',
'max_iter': -1,
'probability': False,
'random_state': None,
'shrinking': True,
'tol': 0.001,
'verbose': False}
'''
param_grid = [
{'C': [1, 10, 100, 1000], 'kernel': ['linear']},
{'C': [1, 10, 100, 1000], 'gamma': [0.001, 0.0001], 'kernel': ['rbf']},
]
当“拟合”到数据集上时,所有可能的参数值组合都会被评估并保留最佳组合。
class sklearn.model_selection.GridSearchCV(
estimator,
param_grid,
*,
scoring=None,
n_jobs=None,
refit=True,
cv=None,
verbose=0,
pre_dispatch='2*n_jobs',
error_score=nan,
return_train_score=False)
estimator | 估计器 |
param_grid |
|
scoring | 模型评价标准,默认None,使用estimator的误差估计函数。根据所选模型不同,评价准则不同 |
refit | 默认为True,即在搜索参数结束后,用最佳参数结果再次fit一遍全部数据集 |
cv | 交叉验证参数,默认None,使用5折交叉验证 |
from sklearn import svm, datasets
from sklearn.model_selection import GridSearchCV
iris = datasets.load_iris()
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svc = svm.SVC()
clf = GridSearchCV(svc, parameters)
#对svc进行grid search,其中参数范围是parameters中的两两组合
clf.fit(iris.data, iris.target)
#将训练数据和label输入进去,进行拟合
import pandas as pd
pd.DataFrame(clf.cv_results_)
cv_results_ | 各参数组合交叉验证的结果, (转化成DataFrame后的结果 可见2.1.2例子输出部分) |
best_estimator_ | 搜索选择的估计器,即在数据集上给出最高分数的估计器。 |
best_score_ | 最佳估计器的平均交叉验证结果 |
best_params_ | 最佳参数组合 |
classes_ | 类别的label |
n_features_in_ | 输入的参数维度 |
decision_function(X) | 对于X中的数据,计算他们在最优估计器上的数值 |
fit(X,y) | |
get_params | |
predict(X) | |
score(X,Y) | |
transform(X) |
class sklearn.model_selection.RandomizedSearchCV(
estimator,
param_distributions,
*,
n_iter=10,
scoring=None,
n_jobs=None,
refit=True,
cv=None,
verbose=0,
pre_dispatch='2*n_jobs',
random_state=None,
error_score=nan,
return_train_score=False)
estimator | 估计器 |
param_distributions |
|
n_iter | 采样的参数设置数。 n_iter 权衡运行时间与解决方案的质量。 |
scoring | 模型评价标准,默认None,使用estimator的误差估计函数。根据所选模型不同,评价准则不同 |
refit | 默认为True,即在搜索参数结束后,用最佳参数结果再次fit一遍全部数据集 |
cv | 交叉验证参数,默认None,使用5折交叉验证 |
from sklearn import svm, datasets
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import uniform
iris = datasets.load_iris()
distributions = {'kernel':('linear', 'rbf'), 'C':uniform(loc=0, scale=400)}
svc = svm.SVC()
clf = RandomizedSearchCV(svc, distributions)
#对svc进行random search,其中参数是从distributions中的分布中随机选择的
clf.fit(iris.data, iris.target)
import pandas as pd
pd.DataFrame(clf.cv_results_)
cv_results_ | 各参数组合交叉验证的结果, (转化成DataFrame后的结果 可见3.1.3例子输出部分) |
best_estimator_ | 搜索选择的估计器,即在数据集上给出最高分数的估计器。
|
best_score_ | 最佳估计器的平均交叉验证结果
|
best_params_ | 最佳参数组合 |
classes_ | 类别的label |
n_features_in_ | 输入的参数维度 |
decision_function(X) | 对于X中的数据,计算他们在最优估计器上的数值 |
fit(X,y) | |
get_params | |
predict(X) | |
score(X,Y) | |
transform(X) |