要查找给定估计器的所有参数的名称和当前值,需要使用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_)

2.1.3 类属性| 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) |