📜  ValueError:“mean_absolute_error”不是有效的评分值.使用 sorted(sklearn.metrics.SCORERS.keys()) 获取有效选项. - Python (1)

📅  最后修改于: 2023-12-03 14:48:16.175000             🧑  作者: Mango

ValueError:“mean_absolute_error”不是有效的评分值.使用 sorted(sklearn.metrics.SCORERS.keys()) 获取有效选项. - Python

这个错误通常发生在使用 sklearn.metrics.make_scorer() 时。在该函数中,'mean_absolute_error'被用作评分函数参数。然而,有时候,你会遇到属性错误,提示你这个不是个有效的评分参数。

例如,以下代码示例中的 'mean_absolute_error' 就不是一个有效的评分参数:

from sklearn.metrics import make_scorer
from sklearn.metrics import mean_absolute_error

scorer = make_scorer(mean_absolute_error, greater_is_better=False)

为了解决这个问题,你需要使用 sklearn.metrics.SCORERS.keys() 来获取有效的选项列表。你需要强制转换这个列表成一个字符串形式(str(list)),把它们传递给 make_scorer() 函数中的 'scoring' 参数,就像这样:

from sklearn.metrics import make_scorer
from sklearn.metrics import mean_absolute_error
import sklearn.metrics as skmetrics

scorers = str(list(skmetrics.SCORERS.keys()))
print(f"Valid scorers: {scorers}")

scorer = make_scorer(mean_absolute_error, greater_is_better=False, scoring='neg_mean_absolute_error')

这个代码示例会打印一个有效选项列表,并使用 'neg_mean_absolute_error' 作为评分参数传给 make_scorer() 函数。

Markdown 格式的返回:

ValueError:“mean_absolute_error”不是有效的评分值.使用 sorted(sklearn.metrics.SCORERS.keys()) 获取有效选项. - Python

这个错误通常发生在使用 sklearn.metrics.make_scorer() 时。在该函数中,'mean_absolute_error'被用作评分函数参数。然而,有时候,你会遇到属性错误,提示你这个不是个有效的评分参数。

例如,以下代码示例中的 'mean_absolute_error' 就不是一个有效的评分参数:

from sklearn.metrics import make_scorer
from sklearn.metrics import mean_absolute_error

scorer = make_scorer(mean_absolute_error, greater_is_better=False)

为了解决这个问题,你需要使用 sklearn.metrics.SCORERS.keys() 来获取有效的选项列表。你需要强制转换这个列表成一个字符串形式(str(list)),把它们传递给 make_scorer() 函数中的 'scoring' 参数,就像这样:

from sklearn.metrics import make_scorer
from sklearn.metrics import mean_absolute_error
import sklearn.metrics as skmetrics

scorers = str(list(skmetrics.SCORERS.keys()))
print(f"Valid scorers: {scorers}")

scorer = make_scorer(mean_absolute_error, greater_is_better=False, scoring='neg_mean_absolute_error')

这个代码示例会打印一个有效选项列表,并使用 'neg_mean_absolute_error' 作为评分参数传给 make_scorer() 函数。