- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我一直致力于我的第一个 ML 项目,作为该项目的一部分,我一直在尝试 sci-kit learn 中的各种模型,并为随机森林模型编写了这段代码:
#Random Forest
reg = RandomForestRegressor(random_state=0, criterion = 'mse')
#Apply grid search for best parameters
params = {'randomforestregressor__n_estimators' : range(100, 500, 200),
'randomforestregressor__min_samples_split' : range(2, 10, 3)}
pipe = make_pipeline(reg)
grid = GridSearchCV(pipe, param_grid = params, scoring='mean_squared_error', n_jobs=-1, iid=False, cv=5)
reg = grid.fit(X_train, y_train)
print('Best MSE: ', grid.best_score_)
print('Best Parameters: ', grid.best_estimator_)
y_train_pred = reg.predict(X_train)
y_test_pred = reg.predict(X_test)
tr_err = mean_squared_error(y_train_pred, y_train)
ts_err = mean_squared_error(y_test_pred, y_test)
print(tr_err, ts_err)
results_train['random_forest'] = tr_err
results_test['random_forest'] = ts_err
但是,当我运行这段代码时,出现以下错误:
KeyError Traceback (most recent call last)
~\anaconda3\lib\site-packages\sklearn\metrics\_scorer.py in get_scorer(scoring)
359 else:
--> 360 scorer = SCORERS[scoring]
361 except KeyError:
KeyError: 'mean_squared_error'
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-149-394cd9e0c273> in <module>
5 pipe = make_pipeline(reg)
6 grid = GridSearchCV(pipe, param_grid = params, scoring='mean_squared_error', n_jobs=-1, iid=False, cv=5)
----> 7 reg = grid.fit(X_train, y_train)
8 print('Best MSE: ', grid.best_score_)
9 print('Best Parameters: ', grid.best_estimator_)
~\anaconda3\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
71 FutureWarning)
72 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73 return f(**kwargs)
74 return inner_f
75
~\anaconda3\lib\site-packages\sklearn\model_selection\_search.py in fit(self, X, y, groups, **fit_params)
652 cv = check_cv(self.cv, y, classifier=is_classifier(estimator))
653
--> 654 scorers, self.multimetric_ = _check_multimetric_scoring(
655 self.estimator, scoring=self.scoring)
656
~\anaconda3\lib\site-packages\sklearn\metrics\_scorer.py in _check_multimetric_scoring(estimator, scoring)
473 if callable(scoring) or scoring is None or isinstance(scoring,
474 str):
--> 475 scorers = {"score": check_scoring(estimator, scoring=scoring)}
476 return scorers, False
477 else:
~\anaconda3\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
71 FutureWarning)
72 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73 return f(**kwargs)
74 return inner_f
75
~\anaconda3\lib\site-packages\sklearn\metrics\_scorer.py in check_scoring(estimator, scoring, allow_none)
403 "'fit' method, %r was passed" % estimator)
404 if isinstance(scoring, str):
--> 405 return get_scorer(scoring)
406 elif callable(scoring):
407 # Heuristic to ensure user has not passed a metric
~\anaconda3\lib\site-packages\sklearn\metrics\_scorer.py in get_scorer(scoring)
360 scorer = SCORERS[scoring]
361 except KeyError:
--> 362 raise ValueError('%r is not a valid scoring value. '
363 'Use sorted(sklearn.metrics.SCORERS.keys()) '
364 'to get valid options.' % scoring)
ValueError: 'mean_squared_error' is not a valid scoring value. Use sorted(sklearn.metrics.SCORERS.keys()) to get valid options.
因此,我尝试通过从 GridSearchCV(pipe, param_grid = params, scoring='mean_squared_error', n_jobs=-1, iid=False , cv=5)
。当我这样做时,代码运行完美,并给出了足够好的训练和测试错误。
无论如何,我无法弄清楚为什么 GridSearchCV
函数中的 scoring='mean_squared_error'
参数会抛出该错误。我做错了什么?
最佳答案
根据documentation :
All scorer objects follow the convention that higher return values are better than lower return values. Thus metrics which measure the distance between the model and the data, like
metrics.mean_squared_error
, are available as neg_mean_squared_error which return the negated value of the metric.
这意味着您必须传递 scoring='neg_mean_squared_error'
才能使用均方误差评估网格搜索结果。
关于machine-learning - 值错误 : 'mean_squared_error' is not a valid scoring value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63473565/
我正在使用 scikit 并使用 mean_squared_error 作为 cross_val_score 中模型评估的评分函数。 rms_score = cross_validation.cros
我正在使用自定义估算器 API 开发二元分类器,代码如下。 我想尝试使用不同的损失函数,下面的代码使用 sigmoid_cross_entropy 或 sparse_softmax_cross_ent
我正在使用 Keras,我正在尝试构建一个神经网络来预测给定数据的利率。数据如下所示: loan_amnt annual_inc emp_length int_rate 100
一般来说,mean_squared_error 越小越好。 当我使用 sklearn 指标包时,它在文档页面中显示:http://scikit-learn.org/stable/modules/mod
因此,我一直致力于我的第一个 ML 项目,作为该项目的一部分,我一直在尝试 sci-kit learn 中的各种模型,并为随机森林模型编写了这段代码: #Random Forest reg = Ran
我是tensorflow的新手 在 tensorflow session 的部分代码中,有: loss = tf.nn.softmax_cross_entropy_with_logits_v2(
我正在使用 LSTM 和 VNN 将主动文本转换为被动文本。我将标记化数据输入 lstm 并获得形状为 (68,1) 的特征向量,然后将其用作普通神经网络的输入数据以及形状为 (68,10,10) 的
我是一名优秀的程序员,十分优秀!