📅  最后修改于: 2023-12-03 14:48:16.175000             🧑  作者: Mango
这个错误通常发生在使用 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 格式的返回:
这个错误通常发生在使用 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()
函数。