首页 > 解决方案 > 网格搜索 CV 中的错误 - RidgeClassifierCV 作为构造函数未设置或修改参数 alphas

问题描述

我在 ridgeclassifiercv 上执行 gridsearchcv 以获得模型的超参数。所以我导入了库

import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
import seaborn as sns

from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.preprocessing import StandardScaler

from sklearn import linear_model
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV

import warnings
warnings.filterwarnings('ignore')

np.random.seed(27)

然后我导入数据集并对目标变量进行拆分、缩放和标签编码

!wget -O ChurnData.csv https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/ChurnData.csv

churn = pd.read_csv("ChurnData.csv")
X = churn.drop(['churn'], axis='columns')
y1 = churn[['churn']]
y1['churn']=y1['churn'].astype('int')

scaler=StandardScaler()
X_scaled=scaler.fit_transform(X)


from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(churn['churn'].unique())
y = le.transform(y1)



# split
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size = 0.2)

然后我执行了gridsearchcv

alphas = [(0.1, 1, 2, 5 , 10)]
solver_churn = ['auto', 'svd','cholesky', 'lsqr', 'sparse_cg', 'sag', 'saga']
fit_intercept = [True, False]
class_weight = [{0:0.5,1:0.5},{0:0.6,1:0.4}]

param_grid_churn = dict(alphas=alphas, fit_intercept=fit_intercept,class_weight=class_weight)



ridgecv = linear_model.RidgeClassifierCV()
grids_churn = GridSearchCV(estimator=ridgecv, param_grid=param_grid_churn, scoring='roc_auc', verbose=1, n_jobs=-1)

grid_result_churn = grids_churn.fit(X_train, y_train)

alphas 在文档中作为参数给出,我仍然得到

Error in Grid search CV - RidgeClassifierCV as the constructor either does not set or modifies parameter alphas

如何解决这个问题?

标签: scikit-learn

解决方案


像这样调整你的代码:

alphas = (0.1, 1, 2, 5 , 10)
solver_churn = ['auto', 'svd','cholesky', 'lsqr', 'sparse_cg', 'sag', 'saga']
fit_intercept = [True, False]
class_weight = [{0:0.5,1:0.5},{0:0.6,1:0.4}]

param_grid_churn = dict(fit_intercept=fit_intercept,class_weight=class_weight)

ridgecv = linear_model.RidgeClassifierCV(alphas=alphas)
grids_churn = GridSearchCV(estimator=ridgecv, param_grid=param_grid_churn, scoring='roc_auc', verbose=1, n_jobs=-1)

grid_result_churn = grids_churn.fit(X_train, y_train)

推荐阅读