python - AttributeError:“str”对象没有属性“mean_validation_score”
问题描述
此错误发生在我的代码中:AttributeError: 'str' object has no attribute 'mean_validation_score'
. 我能做些什么来解决它?
def report(grid_scores, n_top=3):
top_scores = sorted(grid_scores, key=itemgetter(1), reverse=True)[:n_top]
for i, score in enumerate(top_scores):
print("Rank: {0}".format(i + 1))
print("Mean validation score: {0:.3f} (std: {1:.3f})".format(
score.mean_validation_score,
np.std(score.cv_validation_scores)))
print("Parameters: {0}".format(score.parameters))
print("")
report(clf.cv_results_)
解决方案
错误很明显:AttributeError: 'str' object has no attribute 'mean_validation_score'
您只使用一个地方mean_validation_score
,而您使用它的对象是string
- 不是您认为的那样。string
不支持您在其上使用的方法 - 因此出现错误:
for i, score in enumerate(top_scores): # score from here print("Rank: {0}".format(i + 1)) print("Mean validation score: {0:.3f} (std: {1:.3f})".format( score.mean_validation_score, # usage here np.std(score.cv_validation_scores)))
显然top_scores
是字符串类型的可迭代 - 因此当您枚举它时
for i, score in enumerate(top_scores):
它产生索引i
和字符串score
。
您可以通过调试代码来解决它:
top_scores = sorted(grid_scores, key=itemgetter(1), reverse=True)[:n_top]
看看为什么里面有字符串 - 修复它,让它包含有的对象.mean_validation_score
并且错误消失。
有帮助:
推荐阅读
- excel - HypRetrieve 没有检索到正确的状态码
- javascript - 为什么console.log不能用倒序索引打印[-1]
- printing - 如何将页面打印成自定义尺寸的pdf
- python - 使用 mplfinance 绘制 OHLCV 数据会抛出“TypeError:Expect data.index as DatetimeIndex
- javascript - Slider 的值更改使 chrome 页面无响应
- react-native - 如何在 React Native 中本地存储大量数据?
- testing - 测试 Google Sheet 插件触发器
- sql - 查询查找具有给定重量的商品的订单
- google-oauth - OpenID Connect - 使用新的 Google Identity JS API 的授权代码流
- python - 使用请求自动“登录”到服务器