scikit-learn - 网格搜索 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
如何解决这个问题?
解决方案
像这样调整你的代码:
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)
推荐阅读
- ruby-on-rails - 查询第一条记录时枚举集合数组的索引不起作用,这是为什么呢?
- c# - C# Unity:在附加到 GameObject 的脚本中获取公共类
- prolog - 如何编写计算平均工资的 prolog 规则?
- c# - 如何通过子控件事件更改父控件的内容?
- excel - 在 Excel VBA 中使用“Get #COMfile, , record”读取串行端口似乎有无限超时?
- linux - 为一个目录中的所有文件生成MD5sum,并在另一个目录中获取它们的匹配项
- python - Jupyter实验室:是否可以仅在单独的视图中显示输出
- mysql - Wtforms- writing fieldlist data into mysql
- c++ - 我们能否检查 boost::locale::generator::generate 的语言环境输出是否无效?
- javascript - 如何从 node.js 服务器呈现变量而无需重新加载且不使用 EJS/AJAX?